]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
optimize write options
authorBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 06:39:17 +0000 (08:39 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 06:39:17 +0000 (08:39 +0200)
src/kds_s2000w_handler_opts.c

index e37a3068e54ce08cf6724a4e74367e6c23cdef4a..9c5ead362b8f682dd7deb3365dac1f9b17326ddb 100644 (file)
@@ -342,11 +342,11 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
        if (h->current_scanner_config != NULL)
                config = json_object_object_get(h->current_scanner_config, "Configuration");
 
+       option_descriptor* descriptor = kds_s2000w_option_descriptor_full_get_by_number(option);
        json_object* value_object = NULL;
-
        switch(option) {
                case 2:
-                       value_object = json_object_object_get(config, "ScanSource");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
 
                        if (strcmp(value, "Flatbed") == 0)
@@ -360,22 +360,41 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
 
                        break;
                case 3:
-                       value_object = json_object_object_get(config, "ColorMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
 
                        if (info != NULL)
                                *info = RELOAD_PARAMS;
                        break;
                case 4:
-                       value_object = json_object_object_get(config, "DPI");
+               case 9:
+               case 10:
+               case 11:
+               case 12:
+               case 15:
+               case 17:
+               case 20:
+               case 22:
+               case 23:
+               case 25:
+               case 26:
+               case 27:
+               case 28:
+               case 30:
+               case 33:
+               case 34:
+               case 35:
+               case 41:
+               case 45:
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
                        break;
                case 5:
-                       value_object = json_object_object_get(config, "ScanSide");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        break;
                case 7:
-                       value_object = json_object_object_get(config, "CroppingMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_cropping_image(config);
                        _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
@@ -384,83 +403,47 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                                *info = RELOAD_OPTIONS;
                break;
                case 8:
-                       value_object = json_object_object_get(config, "CroppingImage");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
 
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 9:
-                       value_object = json_object_object_get(config, "ImageOffsetX");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 10:
-                       value_object = json_object_object_get(config, "ImageOffsetY");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 11:
-                       value_object = json_object_object_get(config, "ImageWidth");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 12:
-                       value_object = json_object_object_get(config, "ImageHeight");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 14:
-                       value_object = json_object_object_get(config, "ForegroundBoldnessMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
 
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 15:
-                       value_object = json_object_object_get(config, "ForegroundBoldnessAggressiveness");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 16:
-                       value_object = json_object_object_get(config, "BackgroundSmoothingMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
 
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 17:
-                       value_object = json_object_object_get(config, "BackgroundSmoothingAggressiveness");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 19:
-                       value_object = json_object_object_get(config, "ColorDropOut");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
 
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 20:
-                       value_object = json_object_object_get(config, "ColorDropOutAggressiveness");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 21:
-                       value_object = json_object_object_get(config, "ColorAutoBrightnessMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
                        
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 22:
-                       value_object = json_object_object_get(config, "ColorBrightness");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 23:
-                       value_object = json_object_object_get(config, "ColorContrast");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 24:
-                       value_object = json_object_object_get(config, "ColorBalanceMode");
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        _kds_s2000w_handler_opts_set_enable_color_balance(config);
                        _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
@@ -468,30 +451,18 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
                        break;
-               case 25:
-                       value_object = json_object_object_get(config, "ColorBalanceAggressiveness");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 26:
-                       value_object = json_object_object_get(config, "ColorBalanceRed");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 27:
-                       value_object = json_object_object_get(config, "ColorBalanceGreen");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 28:
-                       value_object = json_object_object_get(config, "ColorBalanceBlue");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 29:
-                       value_object = json_object_object_get(config, "ColorSharpen");
+               case 36:
+               case 37:
+               case 38:
+               case 39:
+               case 42:
+               case 43:
+               case 44:
+               case 46:
+                       value_object = json_object_object_get(config, descriptor->config_name);
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
                        break;
-               case 30:
-                       value_object = json_object_object_get(config, "BinarizationContrast");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
                case 31:
                        _kds_s2000w_handler_opts_set_option_to_default(h);
                        config = json_object_object_get(h->current_scanner_config, "Configuration");
@@ -509,58 +480,6 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        if (info != NULL)
                                *info = RELOAD_OPTIONS | RELOAD_PARAMS;
                        break;
-               case 33:
-                       value_object = json_object_object_get(config, "SkipBlankPages");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 34:
-                       value_object = json_object_object_get(config, "SkipBlankPagesContent");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 35:
-                       value_object = json_object_object_get(config, "HoleFill");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 36:
-                       value_object = json_object_object_get(config, "PostScanRotation");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 37:
-                       value_object = json_object_object_get(config, "EdgeFill");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 38:
-                       value_object = json_object_object_get(config, "ImageBorder");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 39:
-                       value_object = json_object_object_get(config, "JpegQuality");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 41:
-                       value_object = json_object_object_get(config, "MaxDocumentLength");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 42:
-                       value_object = json_object_object_get(config, "TransportHandling");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 43:
-                       value_object = json_object_object_get(config, "MultifeedSensitivity");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 44:
-                       value_object = json_object_object_get(config, "MultifeedResponse");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
-               case 45:
-                       value_object = json_object_object_get(config, "DocumentFeederTimeout");
-                       _kds_s2000w_handler_opts_write_int_value_to_json(value_object, value);
-                       break;
-               case 46:
-                       value_object = json_object_object_get(config, "DocumentFeederTimeoutResponse");
-                       _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
-                       break;
                default:
                        break;
        }