From 93868ceef83cb200f7fa53ae24e0fc2e60e2176d Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Wed, 8 Oct 2025 18:31:58 +0200 Subject: [PATCH] change valid width and height extra --- src/kds_s2000w_handler_opts.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index c51380c..93bb0fd 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -38,14 +38,11 @@ void _kds_s2000w_handler_opts_write_value(json_object* value_object, SANE_Value_ } } -void _kds_s2000w_handler_opts_set_valid_coord(option_descriptor* descriptor, handler* h) +void _kds_s2000w_handler_opts_set_valid_coord_x(option_descriptor* descriptor, handler* h) { bool valid = h->coord->offset_x >= 0 && h->coord->offset_x <= 75; - valid = valid && h->coord->offset_y >= 0 && h->coord->offset_y <= 130; valid = valid && h->coord->width >= 10 && h->coord->width <= 85; - valid = valid && h->coord->height >= 10 && h->coord->height <= 140; valid = valid && h->coord->offset_x + h->coord->width <= 85; - valid = valid && h->coord->offset_y + h->coord->height <= 140; if (!valid) return; @@ -58,10 +55,25 @@ void _kds_s2000w_handler_opts_set_valid_coord(option_descriptor* descriptor, han json_object* config = json_object_object_get(h->current_scanner_config, CONFIGURATION); json_object* value_object = json_object_object_get(config, IMAGE_OFFSET_X); json_object_set_int(value_object, h->coord->offset_x); - value_object = json_object_object_get(config, IMAGE_OFFSET_Y); - json_object_set_int(value_object, h->coord->offset_y); value_object = json_object_object_get(config, IMAGE_WIDTH); json_object_set_int(value_object, h->coord->width); +} + +void _kds_s2000w_handler_opts_set_valid_coord_y(option_descriptor* descriptor, handler* h) +{ + bool valid = h->coord->offset_y >= 0 && h->coord->offset_y <= 130; + valid = valid && h->coord->height >= 10 && h->coord->height <= 140; + valid = valid && h->coord->offset_y + h->coord->height <= 140; + + if (!valid) + return; + + kds_s2000w_debug_printf_int(DEBUG, "valid offset y", h->coord->offset_y); + kds_s2000w_debug_printf_int(DEBUG, "valid height", h->coord->height); + + json_object* config = json_object_object_get(h->current_scanner_config, CONFIGURATION); + json_object* value_object = json_object_object_get(config, IMAGE_OFFSET_Y); + json_object_set_int(value_object, h->coord->offset_y); value_object = json_object_object_get(config, IMAGE_HEIGHT); json_object_set_int(value_object, h->coord->height); } @@ -496,10 +508,12 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value json_object* value_object = json_object_object_get(config, descriptor->config_name); _kds_s2000w_handler_opts_set_offset_x(descriptor, h, value); - _kds_s2000w_handler_opts_set_offset_y(descriptor, h, value); _kds_s2000w_handler_opts_set_width(descriptor, h, value); + _kds_s2000w_handler_opts_set_valid_coord_x(descriptor, h); + + _kds_s2000w_handler_opts_set_offset_y(descriptor, h, value); _kds_s2000w_handler_opts_set_height(descriptor, h, value); - _kds_s2000w_handler_opts_set_valid_coord(descriptor, h); + _kds_s2000w_handler_opts_set_valid_coord_y(descriptor, h); if (strcmp(descriptor->config_name, IMAGE_OFFSET_X) != 0 && strcmp(descriptor->config_name, IMAGE_OFFSET_Y) != 0 -- 2.47.3