From: Bastian Dehn Date: Sat, 15 Feb 2025 20:29:26 +0000 (+0100) Subject: add option descriptor for multifeed sensitivity X-Git-Tag: v1.1.0^2~4^2~46 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=269b62fd909b76be15727da7181e5c7310de84f3;p=sane-kds-s2000w-net.git add option descriptor for multifeed sensitivity --- diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index 009faa2..a7c70c5 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -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; } diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index d3ff6eb..ffb8235 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -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); diff --git a/tests/kds_s2000w_option_descriptor_tests.h b/tests/kds_s2000w_option_descriptor_tests.h index caff54e..a6457cb 100644 --- a/tests/kds_s2000w_option_descriptor_tests.h +++ b/tests/kds_s2000w_option_descriptor_tests.h @@ -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 diff --git a/tests/kds_s2000w_option_descriptor_tests_run.c b/tests/kds_s2000w_option_descriptor_tests_run.c index 9f177a7..2696251 100644 --- a/tests/kds_s2000w_option_descriptor_tests_run.c +++ b/tests/kds_s2000w_option_descriptor_tests_run.c @@ -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) };