]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change valid width and height extra
authorBastian Dehn <hhaalo@arcor.de>
Wed, 8 Oct 2025 16:31:58 +0000 (18:31 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 8 Oct 2025 16:31:58 +0000 (18:31 +0200)
src/kds_s2000w_handler_opts.c

index c51380c0c771e9c518804afe86d5de2112b8cfbb..93bb0fda9a79b629412ba93a56b3cb038f84dec7 100644 (file)
@@ -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