color_drop_out_aggressiveness->cap &= ~SANE_CAP_SOFT_SELECT;
}
+void _kds_s2000w_handler_opts_set_width(json_object* config, handler* h)
+{
+ json_object* object_value = json_object_object_get(config, "DPI");
+ int32_t dpi = json_object_get_int(object_value);
+ object_value = json_object_object_get(config, "ImageOffsetX");
+ int32_t tl_x = json_object_get_int(object_value);
+ SANE_Option_Descriptor* width_option = kds_s2000w_option_descriptors_get_by_name(SANE_NAME_PAGE_WIDTH);
+
+ int32_t width_pixel = kds_s2000w_handler_opts_calc_diff(width_option->constraint.range->max, tl_x, h->br->x);
+ int32_t width_inch = kds_s2000w_handler_opts_calc_pixel_to_inch(dpi, width_pixel);
+
+ object_value = json_object_object_get(config, "ImageWidth");
+ _kds_s2000w_handler_opts_write_int_value(object_value, (void*) &width_inch);
+}
+
+void _kds_s2000w_handler_opts_set_height(json_object* config, handler* h)
+{
+ json_object* object_value = json_object_object_get(config, "DPI");
+ int32_t dpi = json_object_get_int(object_value);
+ object_value = json_object_object_get(config, "ImageOffsetY");
+ int32_t tl_y = json_object_get_int(object_value);
+ SANE_Option_Descriptor* height_option = kds_s2000w_option_descriptors_get_by_name(SANE_NAME_PAGE_HEIGHT);
+
+ int32_t height_pixel = kds_s2000w_handler_opts_calc_diff(height_option->constraint.range->max, tl_y, h->br->y);
+ int32_t height_inch = kds_s2000w_handler_opts_calc_pixel_to_inch(dpi, height_pixel);
+
+ object_value = json_object_object_get(config, "ImageHeight");
+ _kds_s2000w_handler_opts_write_int_value(object_value, (void*) &height_inch);
+}
+
int32_t _kds_s2000w_handler_opts_inch_to_pixel(json_object* config, int32_t inch)
{
json_object* object_value = json_object_object_get(config, "DPI");
break;
case 9:
_kds_s2000w_handler_opts_set_inch_value_from_pixel(config, "ImageOffsetX", value);
+ _kds_s2000w_handler_opts_set_width(config, h);
+
+ if (info != NULL)
+ *info = RELOAD_OPTIONS;
break;
case 10:
_kds_s2000w_handler_opts_set_inch_value_from_pixel(config, "ImageOffsetY", value);
+ _kds_s2000w_handler_opts_set_height(config, h);
+
+ if (info != NULL)
+ *info = RELOAD_OPTIONS;
break;
case 11:
_kds_s2000w_handler_opts_set_inch_value_from_pixel(config, "ImageWidth", value);
case 47:
int32_t* br_x = (int32_t*) value;
*br_x = _kds_s2000w_handler_opts_pixel_to_inch(config, h->br->x);
+ _kds_s2000w_handler_opts_set_width(config, h);
+
+ if (info != NULL)
+ *info = RELOAD_OPTIONS;
break;
case 48:
int32_t* br_y = (int32_t*) value;
*br_y = _kds_s2000w_handler_opts_pixel_to_inch(config, h->br->y);
+ _kds_s2000w_handler_opts_set_height(config, h);
+
+ if (info != NULL)
+ *info = RELOAD_OPTIONS;
break;
default:
break;