]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
read all option
authorBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 11:59:41 +0000 (12:59 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 27 Jan 2024 12:35:02 +0000 (13:35 +0100)
src/kds_s2000w_handler.c
src/kds_s2000w_net.c

index f6aa1019f54c0672a4f55730f8acdd683128dfd2..b2296ba12e71f3f8d223fe8819ba275ec98bac91 100644 (file)
@@ -96,9 +96,7 @@ void kds_s2000w_handler_get_option(int option, void* value)
        switch(option) {
                case 0:
                        int* int_value_ptr = (int*) value;
-                       int option_count = json_object_object_length(config);
-                       printf("option number count: %i\n", option_count);
-                       *int_value_ptr = 12;
+                       *int_value_ptr = json_object_object_length(config) + 1;
                        break;
                case 1:
                        value_object = json_object_object_get(config, "DPI");
@@ -133,12 +131,10 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        _write_string_value(value_object, value);
                        break;
                case 9:
-                       printf("DEBUG response: \n%s\n", resp->data);
                        value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
                        _write_string_value(value_object, value);
                        break;
                case 10:
-                       printf("DEBUG response: \n%s\n", resp->data);
                        value_object = json_object_object_get(config, "ColorBalanceMode");
                        _write_string_value(value_object, value);
                        break;
@@ -146,6 +142,50 @@ void kds_s2000w_handler_get_option(int option, void* value)
                        value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
                        _write_int_value(value_object, value);
                        break;
+               case 12:
+                       value_object = json_object_object_get(config, "ColorBalanceRed");
+                       _write_int_value(value_object, value);
+                       break;
+               case 13:
+                       value_object = json_object_object_get(config, "ColorBalanceGreen");
+                       _write_int_value(value_object, value);
+                       break;
+               case 14:
+                       value_object = json_object_object_get(config, "ColorBalanceBlue");
+                       _write_int_value(value_object, value);
+                       break;
+               case 15:
+                       value_object = json_object_object_get(config, "ForegroundBoldnessMode");
+                       _write_string_value(value_object, value);
+                       break;
+               case 16:
+                       value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
+                       _write_int_value(value_object, value);
+                       break;
+               case 17:
+                       value_object = json_object_object_get(config, "BackgroundSmoothingMode");
+                       _write_string_value(value_object, value);
+                       break;
+               case 18:
+                       value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
+                       _write_int_value(value_object, value);
+                       break;
+               case 19:
+                       value_object = json_object_object_get(config, "BinarizationMode");
+                       _write_string_value(value_object, value);
+                       break;
+               case 20:
+                       value_object = json_object_object_get(config, "BinarizationContrast");
+                       _write_int_value(value_object, value);
+                       break;
+               case 21:
+                       value_object = json_object_object_get(config, "MaxDocumentLength");
+                       _write_int_value(value_object, value);
+                       break;
+               case 22:
+                       value_object = json_object_object_get(config, "ScanSource");
+                       _write_string_value(value_object, value);
+                       break;
                default:
                        break;
        }
index 77e197356d89d228b53d5551568de4b7920d315d..cc17776eb5b9374610626918362a4fa6d88fbfbf 100644 (file)
@@ -233,6 +233,127 @@ 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 12:
+                       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 = "colorbalancered";
+                       option_descriptor_array.option_descriptors[option]->title = "colorbalancered";
+                       option_descriptor_array.option_descriptors[option]->desc = "colorbalancered";
+                       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;
+               case 13:
+                       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 = "colorbalancegreen";
+                       option_descriptor_array.option_descriptors[option]->title = "colorbalancegreen";
+                       option_descriptor_array.option_descriptors[option]->desc = "colorbalancegreen";
+                       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;
+               case 14:
+                       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 = "colorbalanceblue";
+                       option_descriptor_array.option_descriptors[option]->title = "colorbalanceblue";
+                       option_descriptor_array.option_descriptors[option]->desc = "colorbalanceblue";
+                       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;
+               case 15:
+                       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 = "foregroundboldnessmode";
+                       option_descriptor_array.option_descriptors[option]->title = "foregroundboldnessmode";
+                       option_descriptor_array.option_descriptors[option]->desc = "foregroundboldnessmode";
+                       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;
+               case 16:
+                       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 = "foregroundboldnessaggressiveness";
+                       option_descriptor_array.option_descriptors[option]->title = "foregroundboldnessaggressiveness";
+                       option_descriptor_array.option_descriptors[option]->desc = "foregroundboldnessaggressiveness";
+                       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;
+               case 17:
+                       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 = "backgroundsmoothingmode";
+                       option_descriptor_array.option_descriptors[option]->title = "backgroundsmoothingmode";
+                       option_descriptor_array.option_descriptors[option]->desc = "backgroundsmoothingmode";
+                       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;
+               case 18:
+                       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 = "backgroundsmoothingaggressiveness";
+                       option_descriptor_array.option_descriptors[option]->title = "backgroundsmoothingaggressiveness";
+                       option_descriptor_array.option_descriptors[option]->desc = "backgroundsmoothingaggressiveness";
+                       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;
+               case 19:
+                       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 = "binarizationmode";
+                       option_descriptor_array.option_descriptors[option]->title = "binarizationmode";
+                       option_descriptor_array.option_descriptors[option]->desc = "binarizationmode";
+                       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;
+               case 20:
+                       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 = "binarizationcontrast";
+                       option_descriptor_array.option_descriptors[option]->title = "binarizationcontrast";
+                       option_descriptor_array.option_descriptors[option]->desc = "binarizationcontrast";
+                       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;
+               case 21:
+                       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 = "maxdocumentlength";
+                       option_descriptor_array.option_descriptors[option]->title = "maxdocumentlength";
+                       option_descriptor_array.option_descriptors[option]->desc = "maxdocumentlength";
+                       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;
+               case 22:
+                       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 = "scansource";
+                       option_descriptor_array.option_descriptors[option]->title = "scansource";
+                       option_descriptor_array.option_descriptors[option]->desc = "ScanSoscansourceurce";
+                       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;
@@ -246,6 +367,13 @@ const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor(
                case 5:
                case 7:
                case 11:
+               case 12:
+               case 13:
+               case 14:
+               case 16:
+               case 18:
+               case 20:
+               case 21:
                        option_descriptor_array.option_descriptors[option]->type = SANE_TYPE_INT;
                        option_descriptor_array.option_descriptors[option]->size = sizeof(SANE_Int);
                        break;
@@ -255,6 +383,10 @@ const SANE_Option_Descriptor* _sane_kds_s2000w_net_get_option_descriptor(
                case 8:
                case 9:
                case 10:
+               case 15:
+               case 17:
+               case 19:
+               case 22:
                        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;