]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add set cropping image option by cropping mode
authorBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 11:40:10 +0000 (12:40 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 11:40:10 +0000 (12:40 +0100)
src/kds_s2000w_handler_opts.c

index 9b59199f9ed269e856bd2c801476025fd76f73fa..6f2a1b2958bf49427b0649627c641526b912f891 100644 (file)
@@ -1,6 +1,7 @@
 #include <string.h>
 #include <json-c/json.h>
 #include "kds_s2000w_handler_opts.h"
+#include "kds_s2000w_option_descriptors.h"
 #include "kds_s2000w_client.h"
 #include "kds_s2000w_debug.h"
 
@@ -95,6 +96,22 @@ void _kds_s2000w_handler_opts_set_options(handler* h)
        resp = NULL;
 }
 
+void _kds_s2000w_handler_opts_set_cropping_image_value(json_object* value_object, void* value)
+{
+       SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get(32);
+
+       cropping_image->cap |= SANE_CAP_SOFT_SELECT;
+       if (strcmp(value, "Automatic") == 0) {
+               _kds_s2000w_handler_opts_write_string_value_to_json(value_object, "EntireDocument");
+               cropping_image->cap &= ~SANE_CAP_SOFT_SELECT;
+       }
+
+       if (strcmp(value, "Manual") == 0) {
+               _kds_s2000w_handler_opts_write_string_value_to_json(value_object, "PartialDocument");
+               cropping_image->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;
@@ -396,6 +413,12 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                case 31:
                        value_object = json_object_object_get(config, "CroppingMode");
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
+
+                       value_object = json_object_object_get(config, "CroppingImage");
+                       _kds_s2000w_handler_opts_set_cropping_image_value(value_object, value);
+
+                       if (info != NULL)
+                               *info = RELOAD_OPTIONS;
                        break;
                case 32:
                        value_object = json_object_object_get(config, "CroppingImage");