From 0a779ea5179c2e06fe2aa4b253e3d87bdeb4b872 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 16 Feb 2025 12:40:10 +0100 Subject: [PATCH] add set cropping image option by cropping mode --- src/kds_s2000w_handler_opts.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/kds_s2000w_handler_opts.c b/src/kds_s2000w_handler_opts.c index 9b59199..6f2a1b2 100644 --- a/src/kds_s2000w_handler_opts.c +++ b/src/kds_s2000w_handler_opts.c @@ -1,6 +1,7 @@ #include #include #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"); -- 2.39.5