]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add read option nine fix string length
authorBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 11:26:59 +0000 (12:26 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 11:26:59 +0000 (12:26 +0100)
src/kds_s2000w_handler.c
src/kds_s2000w_net.c

index f445c9855321bb5222ceafe5a215f589f131d663..bd85f57b5e0f17a87dcc3ce02fdad32b6cdbe916 100644 (file)
@@ -77,7 +77,7 @@ void kds_s2000w_handler_get_option(int option, void* value)
                return;
        }
 
-       printf("DEBUG response: \n%s\n", resp->data);
+
        json_object* value_object = NULL;
        int value_length = 0;
        const char* string_value = NULL;
@@ -89,7 +89,7 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        int_value_ptr = (int*) value;
                        int_value = json_object_object_length(config);
                        printf("option number count: %i\n", int_value);
-                       *int_value_ptr = 9;
+                       *int_value_ptr = 10;
                        break;
                case 1:
                        value_object = json_object_object_get(config, "DPI");
@@ -101,14 +101,14 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        value_object = json_object_object_get(config, "ScanSide");
                        string_value = json_object_get_string(value_object);
                        char_value = (char*) value;
-                       value_length = strlen(char_value);
+                       value_length = strlen(string_value) + 1;
                        memcpy(char_value, string_value, sizeof(char) * value_length);
                        break;
                case 3:
                        value_object = json_object_object_get(config, "ColorMode");
                        string_value = json_object_get_string(value_object);
                        char_value = (char*) value;
-                       value_length = strlen(char_value);
+                       value_length = strlen(string_value) + 1;
                        memcpy(char_value, string_value, sizeof(char) * value_length);
                        break;
                case 4:
@@ -127,7 +127,7 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        value_object = json_object_object_get(config, "ColorDropOut");
                        string_value = json_object_get_string(value_object);
                        char_value = (char*) value;
-                       value_length = strlen(char_value);
+                       value_length = strlen(string_value) + 1;
                        memcpy(char_value, string_value, sizeof(char) * value_length);
                        break;
                case 7:
@@ -140,7 +140,16 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        value_object = json_object_object_get(config, "OutputType");
                        string_value = json_object_get_string(value_object);
                        char_value = (char*) value;
-                       value_length = strlen(char_value);
+                       value_length = strlen(string_value) + 1;
+                       memcpy(char_value, string_value, sizeof(char) * value_length);
+                       break;
+               case 9:
+                       printf("DEBUG response: \n%s\n", resp->data);
+                       value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
+                       string_value = json_object_get_string(value_object);
+                       printf("DEBUG value: %s\n", string_value);
+                       char_value = (char*) value;
+                       value_length = strlen(string_value) + 1;
                        memcpy(char_value, string_value, sizeof(char) * value_length);
                        break;
                default:
index 8c05cf8c90513a5cc7afcae2d1b669b299a88afa..6e00bba50f31f196b462bbf77e1fa18930466cc7 100644 (file)
@@ -200,6 +200,17 @@ 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 9:
+                       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 = "colorautobrightnessmode";
+                       option_descriptor_array.option_descriptors[option]->title = "colorautobrightnessmode";
+                       option_descriptor_array.option_descriptors[option]->desc = "colorautobrightnessmode";
+                       option_descriptor_array.option_descriptors[option]->cap = SANE_CAP_SOFT_DETECT;
+                       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;
@@ -219,6 +230,7 @@ const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor(
                case 3:
                case 6:
                case 8:
+               case 9:
                        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 = sizeof(SANE_String) * 50;