From: Bastian Dehn Date: Mon, 22 Sep 2025 10:55:00 +0000 (+0200) Subject: optimize write option X-Git-Tag: v1.1.5^2~5^2~4 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=cc518a9407d8d720b25759036912386df5b7d47e;p=sane-kds-s2000w-net.git optimize write option --- diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index 09a4dc5..b49e3ed 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -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);