From: Bastian Dehn Date: Tue, 18 Feb 2025 19:04:56 +0000 (+0100) Subject: change color contrast and color brightness enable X-Git-Tag: v1.1.0^2~2^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=6cdbb136386948f71244f5dccfa1f3a83a6b212e;p=sane-kds-s2000w-net.git change color contrast and color brightness enable --- diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index f17445b..c72dac1 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -179,6 +179,24 @@ void _kds_s2000w_handler_opts_set_enable_color_aggressiveness(json_object* confi color_balance_aggressivness->cap &= ~SANE_CAP_SOFT_SELECT; } +void _kds_s2000w_handler_opts_set_enable_color_brightness_and_contrast(json_object* config) +{ + json_object* color_auto_brightness_mode = json_object_object_get(config, "ColorAutoBrightnessMode");; + const char* color_auto_brightness_mode_value = json_object_get_string(color_auto_brightness_mode); + + SANE_Option_Descriptor* color_brightness = kds_s2000w_option_descriptors_get_by_name("color-brightness"); + SANE_Option_Descriptor* color_constrast = kds_s2000w_option_descriptors_get_by_name("color-contrast"); + + if (strcmp(color_auto_brightness_mode_value, "Manual") == 0) { + color_brightness->cap |= SANE_CAP_SOFT_SELECT; + color_constrast->cap |= SANE_CAP_SOFT_SELECT; + return; + } + + color_brightness->cap &= ~SANE_CAP_SOFT_SELECT; + color_constrast->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; @@ -473,6 +491,10 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value case 21: value_object = json_object_object_get(config, "ColorAutoBrightnessMode"); _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"); diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index 28868ac..05ef9e4 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -861,7 +861,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_brightness() 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} }; @@ -933,7 +933,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_contrast() 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 94b5ddb..14a358a 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -404,7 +404,7 @@ void kds_s2000w_option_get_descriptor_twentytwo_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(option->constraint.range->min, -50); assert_int_equal(option->constraint.range->max, 50); @@ -421,7 +421,7 @@ void kds_s2000w_option_get_descriptor_twentythree_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(option->constraint.range->min, -50); assert_int_equal(option->constraint.range->max, 50);