From: Bastian Dehn Date: Sat, 27 Jan 2024 07:54:16 +0000 (+0100) Subject: add option descriptor for option 2 X-Git-Tag: v1.0.0^2~456 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=b2b02adaff950d347662497f05a66404178a5118;p=sane-kds-s2000w-net.git add option descriptor for option 2 --- diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 61a33b0..b7f6fa8 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -76,19 +76,24 @@ void kds_s2000w_handler_get_option(int option, void* value) return; printf("DEBUG response: \n%s\n", resp->data); - json_object* dpi_value_object = NULL; + json_object* value_object = NULL; switch(option) { case 0: int* ignore_value = (int*) value; - *ignore_value = 2; + *ignore_value = 3; break; case 1: - dpi_value_object = json_object_object_get(config, "DPI"); - int dpi_value = json_object_get_int(dpi_value_object); - printf("DEBUG dpi_value: %i\n", dpi_value); + value_object = json_object_object_get(config, "DPI"); + int dpi_value = json_object_get_int(value_object); int* int_value = (int*) value; *int_value = dpi_value; break; + case 2: + value_object = json_object_object_get(config, "ScanSide"); + const char* string_value = json_object_get_string(value_object); + const char* char_value = (const char*) value; + char_value = string_value; + break; default: break; } diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 8bfab0c..4aad460 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -84,7 +84,7 @@ const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor( SANE_Handle handle, SANE_Int option) { if (option_descriptor_array.length < (option + 1)) { - option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor)); + option_descriptor_array.option_descriptors[option] = NULL; option_descriptor_array.length++; } @@ -118,6 +118,20 @@ const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor( option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE; option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL; break; + case 2: + free(option_descriptor_array.option_descriptors[option]); + option_descriptor_array.option_descriptors[option] = NULL; + option_descriptor_array.option_descriptors[option] = malloc(sizeof(SANE_Option_Descriptor)); + option_descriptor_array.option_descriptors[option]->name = "scanside"; + option_descriptor_array.option_descriptors[option]->title = "scanside"; + option_descriptor_array.option_descriptors[option]->desc = "scanside"; + option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_STRING; + option_descriptor_array.option_descriptors[option]->unit = SANE_UNIT_NONE; + option_descriptor_array.option_descriptors[option]->size = 1; + option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT; + option_descriptor_array.option_descriptors[option]->constraint_type = SANE_CONSTRAINT_NONE; + option_descriptor_array.option_descriptors[option]->constraint.string_list = NULL; + break; default: return NULL; break;