/*******************************************************************************
* profiles
******************************************************************************/
+SANE_Status _kds_s2000w_option_descriptor_init_profile(descriptor_fn* fn, size_t size)
+{
+ kds_s2000w_option_descriptors = malloc(sizeof(option_descriptors_t));
+ if (kds_s2000w_option_descriptors == NULL)
+ return SANE_STATUS_NO_MEM;
+
+ kds_s2000w_option_descriptors->size = size;
+ kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
+ if (kds_s2000w_option_descriptors->descriptors == NULL) {
+ free(kds_s2000w_option_descriptors);
+ kds_s2000w_option_descriptors = NULL;
+ return SANE_STATUS_NO_MEM;
+ }
+
+
+ for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
+ kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
+ }
+
+ return _kds_s2000w_option_descriptor_validate();
+}
+
SANE_Status _kds_s2000w_option_descriptors_init_min_profile()
{
descriptor_fn fn[] = {
_kds_s2000w_option_descriptor_autostart
};
- kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);;
- kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
- if (kds_s2000w_option_descriptors->descriptors == NULL) {
- free(kds_s2000w_option_descriptors);
- kds_s2000w_option_descriptors = NULL;
- return SANE_STATUS_NO_MEM;
- }
-
-
- for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
- kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
- }
-
- return _kds_s2000w_option_descriptor_validate();
+ size_t size = sizeof(fn) / sizeof(descriptor_fn);
+ return _kds_s2000w_option_descriptor_init_profile(fn, size);
}
SANE_Status _kds_s2000w_option_descriptors_init_230802_v1_0_36_profile()
_kds_s2000w_option_descriptor_autostart
};
- kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);
- kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
- if (kds_s2000w_option_descriptors->descriptors == NULL) {
- free(kds_s2000w_option_descriptors);
- kds_s2000w_option_descriptors = NULL;
- return SANE_STATUS_NO_MEM;
- }
-
- for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
- kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
- }
-
-
- return _kds_s2000w_option_descriptor_validate();
+ size_t size = sizeof(fn) / sizeof(descriptor_fn);
+ return _kds_s2000w_option_descriptor_init_profile(fn, size);
}
SANE_Status _kds_s2000w_option_descriptors_init_full_profile()
_kds_s2000w_option_descriptor_document_feeder_timeout_response
};
- kds_s2000w_option_descriptors->size = sizeof(fn) / sizeof(descriptor_fn);
- kds_s2000w_option_descriptors->descriptors = malloc(sizeof(option_descriptor_t*) * kds_s2000w_option_descriptors->size);
- if (kds_s2000w_option_descriptors->descriptors == NULL) {
- free(kds_s2000w_option_descriptors);
- kds_s2000w_option_descriptors = NULL;
- return SANE_STATUS_NO_MEM;
- }
-
- for (size_t i = 0; i < kds_s2000w_option_descriptors->size; i++) {
- kds_s2000w_option_descriptors->descriptors[i] = fn[i]();
- }
-
- return _kds_s2000w_option_descriptor_validate();
+ size_t size = sizeof(fn) / sizeof(descriptor_fn);
+ return _kds_s2000w_option_descriptor_init_profile(fn, size);
}
/*******************************************************************************
******************************************************************************/
SANE_Status kds_s2000w_option_descriptors_init(profile_t profile)
{
- kds_s2000w_option_descriptors = malloc(sizeof(option_descriptors_t));
- if (kds_s2000w_option_descriptors == NULL)
- return SANE_STATUS_NO_MEM;
-
switch (profile) {
case PROFILE_FULL:
return _kds_s2000w_option_descriptors_init_full_profile();