]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
optimize write option
authorBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 10:55:00 +0000 (12:55 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 22 Sep 2025 10:55:00 +0000 (12:55 +0200)
src/kds_s2000w_handler_opts.c

index 09a4dc599818161a5df04c07e3e55eac002f3f34..b49e3ed08d7c788e4984977f30f3236108f36aad 100644 (file)
@@ -300,156 +300,100 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
        if (h->read_info->scan_started)
                return;
 
-       json_object* config = NULL;
+       if (option == STANDARD_GROUP_NUMBER
+               || option == GEOMETRY_GROUP_NUMBER
+               || option == BOLDNESS_SMOOTHING_NUMBER
+               || option == BOLDNESS_COLOR_NUMBER
+               || option == IMAGE_PROCESSING_NUMBER
+               || option == FEEDER_GROUP_NUMBER)
+               return;
 
+       json_object* config = NULL;
        if (h->current_scanner_config == NULL) {
                _kds_s2000w_handler_opts_load_options(h);
                config = json_object_object_get(h->current_scanner_config, "Configuration");
                _kds_s2000w_handler_opts_set_autostart_on(config);
        }
+
        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;
+
+       value_object = json_object_object_get(config, descriptor->config_name);
+       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
+
        switch(option) {
-               case 2:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-
-                       if (strcmp(value, "Flatbed") == 0)
-                               h->current_scan_status->feeder = Flatbed;
-
-                       if (strcmp(value, "DocumentFeeder") == 0)
-                               h->current_scan_status->feeder = DocumentFeeder;
-
-                       if (strcmp(value, "Automatic") == 0)
-                               h->current_scan_status->feeder = Automatic;
-
-                       break;
-               case 3:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-
-                       if (info != NULL)
-                               *info = RELOAD_PARAMS;
-                       break;
-               case 4:
-               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_value_to_json(value_object, descriptor->descriptor.type, value);
-                       break;
-               case 5:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       break;
-               case 7:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_cropping_image(config);
-                       _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
+       case 2:
+               if (strcmp(value, "Flatbed") == 0)
+                       h->current_scan_status->feeder = Flatbed;
+
+               if (strcmp(value, "DocumentFeeder") == 0)
+                       h->current_scan_status->feeder = DocumentFeeder;
+
+               if (strcmp(value, "Automatic") == 0)
+                       h->current_scan_status->feeder = Automatic;
+
+               break;
+       case 7:
+               _kds_s2000w_handler_opts_set_enable_cropping_image(config);
+               _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
+               break;
+       case 8:
+               _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
+               break;
+       case 14:
+               _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
+               break;
+       case 16:
+               _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
+               break;
+       case 19:
+               _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
+               break;
+       case 21:
+               _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
+               break;
+       case 24:
+               _kds_s2000w_handler_opts_set_enable_color_balance(config);
+               _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
+               break;
+       case 31:
+               _kds_s2000w_handler_opts_set_option_to_default(h);
+               config = json_object_object_get(h->current_scanner_config, "Configuration");
+
+               _kds_s2000w_handler_opts_set_autostart_on(config);
+               _kds_s2000w_handler_opts_set_enable_cropping_image(config);
+               _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
+               _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
+               _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
+               _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
+               _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
+               _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
+               _kds_s2000w_handler_opts_set_enable_color_balance(config);
+
+               if (info != NULL)
+                       *info = RELOAD_OPTIONS | RELOAD_PARAMS;
+               break;
+       default:
+               break;
+       }
+
+       switch (option) {
+       case 3:
+       case 7:
+       case 8:
+       case 14:
+       case 16:
+       case 19:
+       case 21:
+       case 24:
+               if (info != NULL)
+                       *info = RELOAD_OPTIONS;
+               break;
+       default:
                break;
-               case 8:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 14:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 16:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 19:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 21:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
-                       
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 24:
-                       value_object = json_object_object_get(config, descriptor->config_name);
-                       _kds_s2000w_handler_opts_write_value_to_json(value_object, descriptor->descriptor.type, value);
-                       _kds_s2000w_handler_opts_set_enable_color_balance(config);
-                       _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS;
-                       break;
-               case 29:
-               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_value_to_json(value_object, descriptor->descriptor.type, value);
-                       break;
-               case 31:
-                       _kds_s2000w_handler_opts_set_option_to_default(h);
-                       config = json_object_object_get(h->current_scanner_config, "Configuration");
-
-                       _kds_s2000w_handler_opts_set_autostart_on(config);
-                       _kds_s2000w_handler_opts_set_enable_cropping_image(config);
-                       _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(config);
-                       _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config);
-                       _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config);
-                       _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(config);
-                       _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(config);
-                       _kds_s2000w_handler_opts_set_enable_color_aggressiveness(config);
-                       _kds_s2000w_handler_opts_set_enable_color_balance(config);
-
-                       if (info != NULL)
-                               *info = RELOAD_OPTIONS | RELOAD_PARAMS;
-                       break;
-               default:
-                       break;
        }
 
        _kds_s2000w_handler_opts_set_options(h);