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;
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");
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}
};
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}
};
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);
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);