]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add option descriptor for image border
authorBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 08:12:50 +0000 (09:12 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 08:12:50 +0000 (09:12 +0100)
src/kds_s2000w_option_descriptors.c
tests/kds_s2000w_option_descriptor_tests.c

index 1bd3617f03ef896f82023db3ed06ce179974e38a..84efe63b9f5488efbdeaaecd198027b616133a2d 100644 (file)
@@ -3,7 +3,7 @@
 #include "kds_s2000w_option_descriptors.h"
 #include "kds_s2000w_debug.h"
 
-#define MAX_OPTION_COUNT 27
+#define MAX_OPTION_COUNT 28
 
 SANE_Option_Descriptor* descriptor_array = NULL;
 
@@ -31,6 +31,7 @@ SANE_String_Const* constraint_multifeed_sensitivity = NULL;
 SANE_String_Const* constraint_multifeed_response = NULL;
 SANE_String_Const* constraint_post_scan_rotation = NULL;
 SANE_String_Const* constraint_edge_fill = NULL;
+SANE_String_Const* constraint_image_border = NULL;
 
 SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
 {
@@ -603,7 +604,7 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_post_scan_rotation()
 
 SANE_Option_Descriptor _kds_s2000w_option_descriptor_edge_fill()
 {
-       kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_post_scan_rotation");
+       kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_edge_fill");
 
        constraint_edge_fill = malloc(sizeof(SANE_String_Const*) * 4);
        constraint_edge_fill[0] = "None";
@@ -626,6 +627,31 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_edge_fill()
        return descriptor;
 }
 
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_image_border()
+{
+       kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_image_border");
+
+       constraint_image_border = malloc(sizeof(SANE_String_Const*) * 4);
+       constraint_image_border[0] = "None";
+       constraint_image_border[1] = "Add";
+       constraint_image_border[2] = "Remove";
+       constraint_image_border[3] = NULL;
+
+       SANE_Option_Descriptor descriptor = {
+               "image-border",
+               "Image Border",
+               "Image Border",
+               SANE_TYPE_STRING,
+               SANE_UNIT_NONE,
+               sizeof(SANE_String_Const*) * 4,
+               SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+               SANE_CONSTRAINT_STRING_LIST,
+               {.string_list = constraint_image_border}
+       };
+
+       return descriptor;
+}
+
 void kds_s2000w_option_descriptors_init()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_init_option_descriptors");
@@ -657,7 +683,8 @@ void kds_s2000w_option_descriptors_init()
        descriptor_array[23] = _kds_s2000w_option_descriptor_multifeed_response();
        descriptor_array[24] = _kds_s2000w_option_descriptor_post_scan_rotation();
        descriptor_array[25] = _kds_s2000w_option_descriptor_edge_fill();
-       descriptor_array[26] = _kds_s2000w_option_descriptor_config_reset();
+       descriptor_array[26] = _kds_s2000w_option_descriptor_image_border();
+       descriptor_array[27] = _kds_s2000w_option_descriptor_config_reset();
 }
 
 void kds_s2000w_option_descriptors_free()
@@ -694,6 +721,8 @@ void kds_s2000w_option_descriptors_free()
        constraint_post_scan_rotation = NULL;
        free(constraint_edge_fill);
        constraint_edge_fill = NULL;
+       free(constraint_image_border);
+       constraint_image_border = NULL;
        free(descriptor_array);
        descriptor_array = NULL;
 }
index ce423caa2280cd572b85859c6df80f9e1c0e12ce..e91461191c4f9804ed97e22f849c435bee9ca4f2 100644 (file)
@@ -4,7 +4,7 @@
 #include "kds_s2000w_client_mock.h"
 #include "../src/kds_s2000w_option_descriptors.h"
 
-#define MAX_OPTION_COUNT 27
+#define MAX_OPTION_COUNT 28
 
 int setup(void** state)
 {
@@ -477,6 +477,24 @@ void kds_s2000w_option_get_descriptor_twentysix_test()
 {
        SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(26);
 
+       assert_string_equal("image-border", option->name);
+       assert_string_equal("Image Border", option->title);
+       assert_string_equal("Image Border", option->desc);
+       assert_int_equal(SANE_TYPE_STRING, option->type);
+       assert_int_equal(SANE_UNIT_NONE, option->unit);
+       assert_int_equal(sizeof(SANE_String_Const*) * 4, option->size);
+       assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap);
+       assert_int_equal(SANE_CONSTRAINT_STRING_LIST, option->constraint_type);
+       assert_string_equal("None", option->constraint.string_list[0]);
+       assert_string_equal("Add", option->constraint.string_list[1]);
+       assert_string_equal("Remove", option->constraint.string_list[2]);
+       assert_null(option->constraint.string_list[3]);
+}
+
+void kds_s2000w_option_get_descriptor_twentyseven_test()
+{
+       SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(27);
+
        assert_string_equal("config-reset", option->name);
        assert_string_equal("reset config", option->title);
        assert_string_equal("load default configuration from scanner", option->desc);