From 3220701ffe29c4184bd76cf799bfb1ab11c6563a Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 16 Feb 2025 14:11:52 +0100 Subject: [PATCH] add option descriptor skip blank page content --- src/kds_s2000w_option_descriptors.c | 30 +++++++++++++++++-- tests/kds_s2000w_option_descriptor_tests.c | 19 +++++++++++- tests/kds_s2000w_option_descriptor_tests.h | 1 + .../kds_s2000w_option_descriptor_tests_run.c | 1 + 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index b7c6b6e..d058484 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 34 +#define MAX_OPTION_COUNT 35 SANE_Option_Descriptor* descriptor_array = NULL; @@ -756,7 +756,6 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_hole_fill() { kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_hole_fill"); - SANE_Option_Descriptor descriptor = { "hole-fill", "Hole Fill", @@ -821,6 +820,30 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_cropping_image() return descriptor; } +SANE_Option_Descriptor _kds_s2000w_option_descriptor_skip_blank_page_content() +{ + kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_skip_blank_page_content"); + + SANE_Range* constraint = malloc(sizeof(SANE_Range)); + constraint->min = 0; + constraint->max = 100; + constraint->quant = 1; + + SANE_Option_Descriptor descriptor = { + "skip-blank-page-content", + "skip blank page content", + "skip blank page content", + SANE_TYPE_INT, + SANE_UNIT_PERCENT, + sizeof(SANE_Int), + SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, + SANE_CONSTRAINT_RANGE, + {.range = constraint} + }; + + return descriptor; +} + void kds_s2000w_option_descriptors_init() { kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_init_option_descriptors"); @@ -859,7 +882,8 @@ void kds_s2000w_option_descriptors_init() descriptor_array[30] = _kds_s2000w_option_descriptor_hole_fill(); descriptor_array[31] = _kds_s2000w_option_descriptor_cropping_mode(); descriptor_array[32] = _kds_s2000w_option_descriptor_cropping_image(); - descriptor_array[33] = _kds_s2000w_option_descriptor_config_reset(); + descriptor_array[33] = _kds_s2000w_option_descriptor_skip_blank_page_content(); + descriptor_array[34] = _kds_s2000w_option_descriptor_config_reset(); } void kds_s2000w_option_descriptors_free() diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index 19a3435..39f201c 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 34 +#define MAX_OPTION_COUNT 35 int setup(void** state) { @@ -602,6 +602,23 @@ void kds_s2000w_option_get_descriptor_thirdythree_test() { SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(33); + assert_string_equal("skip-blank-page-content", option->name); + assert_string_equal("skip blank page content", option->title); + assert_string_equal("skip blank page content", option->desc); + assert_int_equal(SANE_TYPE_INT, option->type); + assert_int_equal(SANE_UNIT_PERCENT, option->unit); + assert_int_equal(sizeof(SANE_Int), option->size); + assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT, option->cap); + assert_int_equal(SANE_CONSTRAINT_RANGE, option->constraint_type); + assert_int_equal(option->constraint.range->min, 0); + assert_int_equal(option->constraint.range->max, 100); + assert_int_equal(option->constraint.range->quant, 1); +} + +void kds_s2000w_option_get_descriptor_thirdyfour_test() +{ + SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(34); + 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 533b4b5..4f83d67 100644 --- a/tests/kds_s2000w_option_descriptor_tests.h +++ b/tests/kds_s2000w_option_descriptor_tests.h @@ -42,5 +42,6 @@ void kds_s2000w_option_get_descriptor_thirdy_test(); void kds_s2000w_option_get_descriptor_thirdyone_test(); void kds_s2000w_option_get_descriptor_thirdytwo_test(); void kds_s2000w_option_get_descriptor_thirdythree_test(); +void kds_s2000w_option_get_descriptor_thirdyfour_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 b06608e..724bdeb 100644 --- a/tests/kds_s2000w_option_descriptor_tests_run.c +++ b/tests/kds_s2000w_option_descriptor_tests_run.c @@ -37,6 +37,7 @@ int main() cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdyone_test, setup, teardown), cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdytwo_test, setup, teardown), cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdythree_test, setup, teardown), + cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdyfour_test, setup, teardown), cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_over_max_options_test, setup, teardown), }; -- 2.39.5