From: Bastian Dehn Date: Tue, 18 Feb 2025 19:32:28 +0000 (+0100) Subject: change enable color drop out aggressiveness X-Git-Tag: v1.1.0^2~2^2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=1574ae92d3bd84a9b23594dd3f5e8bd960d901d4;p=sane-kds-s2000w-net.git change enable color drop out aggressiveness --- diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index 265ba81..09d501a 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -226,6 +226,21 @@ void _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(json_object* c background_smoothing_aggressiveness->cap &= ~SANE_CAP_SOFT_SELECT; } +void _kds_s2000w_handler_opts_set_enable_color_drop_out_aggressiveness(json_object* config) +{ + json_object* color_drop_out = json_object_object_get(config, "ColorDropOut");; + const char* color_drop_out_value = json_object_get_string(color_drop_out); + + SANE_Option_Descriptor* color_drop_out_aggressiveness = kds_s2000w_option_descriptors_get_by_name("color-drop-out-aggressiveness"); + + if (strcmp(color_drop_out_value, "Predominant") == 0 || strcmp(color_drop_out_value, "Multiple") == 0) { + color_drop_out_aggressiveness->cap |= SANE_CAP_SOFT_SELECT; + return; + } + + color_drop_out_aggressiveness->cap &= ~SANE_CAP_SOFT_SELECT; +} + void kds_s2000w_handler_opts_get_option(handler* h, uint32_t option, void* value, int32_t* info) { @@ -526,6 +541,10 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value case 19: value_object = json_object_object_get(config, "ColorDropOut"); _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"); @@ -587,11 +606,12 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value _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); - _kds_s2000w_handler_opts_set_enable_boldness_aggressiveness(config); - _kds_s2000w_handler_opts_set_enable_smoothing_aggressiveness(config); if (info != NULL) *info = RELOAD_OPTIONS | RELOAD_PARAMS; diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index 05ef9e4..dfc2bc1 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -202,7 +202,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_drop_out_aggressivene SANE_TYPE_INT, SANE_UNIT_NONE, sizeof(SANE_Int), - SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, + SANE_CAP_SOFT_DETECT, SANE_CONSTRAINT_RANGE, {.range = constraint} }; diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index 14a358a..e6b4d32 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -369,7 +369,7 @@ void kds_s2000w_option_get_descriptor_twenty_test() assert_int_equal(SANE_TYPE_INT, option->type); assert_int_equal(SANE_UNIT_NONE, option->unit); assert_int_equal(sizeof(SANE_Int), option->size); - assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap); + assert_int_equal(SANE_CAP_SOFT_DETECT, option->cap); assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type); assert_int_equal(-10, option->constraint.range->min); assert_int_equal(10, option->constraint.range->max);