From 81d75bb1d247b50b8a2bc684e3b45e6503349ed7 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 18 Feb 2025 19:46:08 +0100 Subject: [PATCH] change enable color balance --- src/kds_s2000w_handler_opts.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index 015a58e..1b4f215 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -143,6 +143,27 @@ void _kds_s2000w_handler_opts_set_enable_suboptions_cropping_image(json_object* image_height->cap &= ~SANE_CAP_SOFT_SELECT; } +void _kds_s2000w_handler_opts_set_enable_color_balance(json_object* config) +{ + json_object* cropping_image = json_object_object_get(config, "ColorBalanceMode");; + const char* cropping_image_value = json_object_get_string(cropping_image); + + SANE_Option_Descriptor* color_balance_red = kds_s2000w_option_descriptors_get_by_name("color-balance-red"); + SANE_Option_Descriptor* color_balance_green = kds_s2000w_option_descriptors_get_by_name("color-balance-green"); + SANE_Option_Descriptor* color_balance_blue = kds_s2000w_option_descriptors_get_by_name("color-balance-blue"); + + if (strcmp(cropping_image_value, "Manual") == 0) { + color_balance_red->cap |= SANE_CAP_SOFT_SELECT; + color_balance_green->cap |= SANE_CAP_SOFT_SELECT; + color_balance_blue->cap |= SANE_CAP_SOFT_SELECT; + return; + } + + color_balance_red->cap &= ~SANE_CAP_SOFT_SELECT; + color_balance_green->cap &= ~SANE_CAP_SOFT_SELECT; + color_balance_blue->cap &= ~SANE_CAP_SOFT_SELECT; +} + void kds_s2000w_handler_opts_get_option(handler* h, uint32_t option, void* value, int32_t* info) { json_object* config = NULL; @@ -449,6 +470,10 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value case 24: value_object = json_object_object_get(config, "ColorBalanceMode"); _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value); + _kds_s2000w_handler_opts_set_enable_color_balance(config); + + if (info != NULL) + *info = RELOAD_OPTIONS; break; case 25: value_object = json_object_object_get(config, "ColorBalanceAggressiveness"); -- 2.39.5