]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add option descriptor for option 2
authorBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 07:54:16 +0000 (08:54 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 07:54:16 +0000 (08:54 +0100)
src/kds_s2000w_handler.c
src/kds_s2000w_net.c

index 61a33b04754180ec183abd28f3f026e9e1e0b52d..b7f6fa8aa0c601d4bcffa72e791aabcea771a7f4 100644 (file)
@@ -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;
        }
index 8bfab0c948544faa95df8a3f64fc89b867f503b7..4aad4602afff1664990912859c535b96969e0ade 100644 (file)
@@ -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;