]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change color contrast and color brightness enable
authorBastian Dehn <hhaalo@arcor.de>
Tue, 18 Feb 2025 19:04:56 +0000 (20:04 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 18 Feb 2025 19:04:56 +0000 (20:04 +0100)
src/kds_s2000w_handler_opts.c
src/kds_s2000w_option_descriptors.c
tests/kds_s2000w_option_descriptor_tests.c

index f17445ba787d57d81fb457e67a6c48dd07aa94b2..c72dac11b213988c3d01aba7382cff79bde7a2dc 100644 (file)
@@ -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");
index 28868acf7433a3c4c6d99403e4e88f34254e90ff..05ef9e470af0f0c4ba1aa9cd2de17fe3853b2ab6 100644 (file)
@@ -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}
        };
index 94b5ddb2b9584da82f8ce56a975aa2aecf8b868b..14a358a4138a5222b7a28a9967722f13f646b30c 100644 (file)
@@ -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);