From 917d07616ec57654e663b0079178321a25d960aa Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 18 Feb 2025 20:15:03 +0100 Subject: [PATCH] change enable disable reset options --- src/kds_s2000w_handler_opts.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index c72dac1..de3176c 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -54,10 +54,9 @@ void _kds_s2000w_handler_opts_load_options(handler* h) resp = NULL; } -void _kds_s2000w_handler_opts_set_autostart_on(handler* h) +void _kds_s2000w_handler_opts_set_autostart_on(json_object* config) { uint32_t auto_start_value = AUTOSTART_ON; - json_object* config = json_object_object_get(h->current_scanner_config, "Configuration"); json_object* value_object = json_object_object_get(config, "AutoStart"); _kds_s2000w_handler_opts_write_int_value_to_json(value_object, &auto_start_value); } @@ -204,7 +203,8 @@ void kds_s2000w_handler_opts_get_option(handler* h, uint32_t option, void* value if (h->current_scanner_config == NULL) { _kds_s2000w_handler_opts_load_options(h); - _kds_s2000w_handler_opts_set_autostart_on(h); + config = json_object_object_get(h->current_scanner_config, "Configuration"); + _kds_s2000w_handler_opts_set_autostart_on(config); _kds_s2000w_handler_opts_set_options(h); } @@ -393,12 +393,16 @@ 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 (h->current_scanner_config == NULL) { _kds_s2000w_handler_opts_load_options(h); - _kds_s2000w_handler_opts_set_autostart_on(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"); - json_object* config = json_object_object_get(h->current_scanner_config, "Configuration"); json_object* value_object = NULL; switch(option) { @@ -539,10 +543,14 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value break; case 31: _kds_s2000w_handler_opts_set_option_to_default(h); - _kds_s2000w_handler_opts_set_autostart_on(h); + config = json_object_object_get(h->current_scanner_config, "Configuration"); - SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get_by_name("cropping-image"); - cropping_image->cap |= SANE_CAP_SOFT_SELECT; + _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_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; -- 2.39.5