From 922433dabaae82da6b76cd47294911ba4833c155 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 22 Sep 2025 08:39:17 +0200 Subject: [PATCH] optimize write options --- src/kds_s2000w_handler_opts.c | 161 +++++++++------------------------- 1 file changed, 40 insertions(+), 121 deletions(-) diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index e37a306..9c5ead3 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -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; } -- 2.47.3