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

index 265ba81f03a0c566b3cb2cb479eeeb6cfde0802f..09d501a9e47212a08551eccece1d2e9d122b5ccf 100644 (file)
@@ -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;
index 05ef9e470af0f0c4ba1aa9cd2de17fe3853b2ab6..dfc2bc16fabcc4d38d38861008f0114a092789c5 100644 (file)
@@ -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}
        };
index 14a358a4138a5222b7a28a9967722f13f646b30c..e6b4d32f3d45aa50ede866c8d6f86ffd109609d0 100644 (file)
@@ -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);