]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add option descriptor for multifeed sensitivity
authorBastian Dehn <hhaalo@arcor.de>
Sat, 15 Feb 2025 20:29:26 +0000 (21:29 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 15 Feb 2025 20:29:26 +0000 (21:29 +0100)
src/kds_s2000w_option_descriptors.c
tests/kds_s2000w_option_descriptor_tests.c
tests/kds_s2000w_option_descriptor_tests.h
tests/kds_s2000w_option_descriptor_tests_run.c

index 009faa2143a43cd8cb8da08d8771213d4657851c..a7c70c50021007e7b4d8d319529f800a9ba6175a 100644 (file)
@@ -3,7 +3,7 @@
 #include "kds_s2000w_option_descriptors.h"
 #include "kds_s2000w_debug.h"
 
-#define MAX_OPTION_COUNT 23
+#define MAX_OPTION_COUNT 24
 
 SANE_Option_Descriptor* descriptor_array = NULL;
 
@@ -27,6 +27,7 @@ SANE_String_Const* constraint_binarization_mode = NULL;
 SANE_String_Const* constraint_max_document_length = NULL;
 SANE_String_Const* constraint_scan_source = NULL;
 SANE_String_Const* constraint_color_sharpen = NULL;
+SANE_String_Const* constraint_multifeed_sensitivity = NULL;
 
 SANE_Option_Descriptor _kds_s2000w_option_descriptor_standard_group()
 {
@@ -520,6 +521,32 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_color_sharpen()
        return descriptor;
 }
 
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_multifeed_sensitivity()
+{
+       kds_s2000w_debug_printf(ALL, "_kds_s2000w_option_descriptor_multifeed_sensitivity");
+
+       constraint_multifeed_sensitivity = malloc(sizeof(SANE_String_Const*) * 5);
+       constraint_multifeed_sensitivity[0] = "None";
+       constraint_multifeed_sensitivity[1] = "Low";
+       constraint_multifeed_sensitivity[2] = "Medium";
+       constraint_multifeed_sensitivity[3] = "High";
+       constraint_multifeed_sensitivity[4] = NULL;
+
+       SANE_Option_Descriptor descriptor = {
+               "multifeed-sensitivity",
+               "multifeed-sensitivity",
+               "multifeed-sensitivity",
+               SANE_TYPE_STRING,
+               SANE_UNIT_NONE,
+               sizeof(SANE_String_Const*) * 5,
+               SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT,
+               SANE_CONSTRAINT_STRING_LIST,
+               {.string_list = constraint_multifeed_sensitivity}
+       };
+
+       return descriptor;
+}
+
 void kds_s2000w_option_descriptors_init()
 {
        kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_init_option_descriptors");
@@ -547,7 +574,8 @@ void kds_s2000w_option_descriptors_init()
        descriptor_array[19] = _kds_s2000w_option_descriptor_background_smoothing_mode();
        descriptor_array[20] = _kds_s2000w_option_descriptor_background_smoothing_aggressiveness();
        descriptor_array[21] = _kds_s2000w_option_descriptor_binarization_contrast();
-       descriptor_array[22] = _kds_s2000w_option_descriptor_config_reset();
+       descriptor_array[22] = _kds_s2000w_option_descriptor_multifeed_sensitivity();
+       descriptor_array[23] = _kds_s2000w_option_descriptor_config_reset();
 }
 
 void kds_s2000w_option_descriptors_free()
@@ -576,6 +604,8 @@ void kds_s2000w_option_descriptors_free()
        constraint_scan_source = NULL;
        free(constraint_color_sharpen);
        constraint_color_sharpen = NULL;
+       free(constraint_multifeed_sensitivity);
+       constraint_multifeed_sensitivity = NULL;
        free(descriptor_array);
        descriptor_array = NULL;
 }
index d3ff6eb5f50a6f0417630379d4f385fc6192c320..ffb8235d60aa6270634ac38763e49e25234408d1 100644 (file)
@@ -4,7 +4,7 @@
 #include "kds_s2000w_client_mock.h"
 #include "../src/kds_s2000w_option_descriptors.h"
 
-#define MAX_OPTION_COUNT 23
+#define MAX_OPTION_COUNT 24
 
 int setup(void** state)
 {
@@ -403,6 +403,25 @@ void kds_s2000w_option_get_descriptor_twentytwo_test()
 {
        SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(22);
 
+       assert_string_equal("multifeed-sensitivity", option->name);
+       assert_string_equal("multifeed-sensitivity", option->title);
+       assert_string_equal("multifeed-sensitivity", 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*) * 5, 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("Low", option->constraint.string_list[1]);
+       assert_string_equal("Medium", option->constraint.string_list[2]);
+       assert_string_equal("High", option->constraint.string_list[3]);
+       assert_null(option->constraint.string_list[4]);
+}
+
+void kds_s2000w_option_get_descriptor_twentythree_test()
+{
+       SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(23);
+
        assert_string_equal("config-reset", option->name);
        assert_string_equal("reset config", option->title);
        assert_string_equal("load default configuration from scanner", option->desc);
index caff54ef6ff71681c29bb2c934cd867c75e7faff..a6457cb26796b34d507fac31b8635002834be1cd 100644 (file)
@@ -31,5 +31,6 @@ void kds_s2000w_option_get_descriptor_nineteen_test();
 void kds_s2000w_option_get_descriptor_twenty_test();
 void kds_s2000w_option_get_descriptor_twentyone_test();
 void kds_s2000w_option_get_descriptor_twentytwo_test();
+void kds_s2000w_option_get_descriptor_twentythree_test();
 void kds_s2000w_option_get_descriptor_over_max_options_test();
 #endif
\ No newline at end of file
index 9f177a7cea99face1e3586143ee049202804dfcf..2696251d031619828eb6e955c0184f91734ef288 100644 (file)
@@ -26,6 +26,7 @@ int main()
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twenty_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twentyone_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twentytwo_test, setup, teardown),
+               cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_twentythree_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_over_max_options_test, setup, teardown)
        };