From b86778022e1c44eb060a6bd176027ca895bf16f9 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 22 Sep 2025 08:03:12 +0200 Subject: [PATCH] add get full descriptor by number --- src/kds_s2000w_option_descriptors.c | 10 ++++++++++ src/kds_s2000w_option_descriptors.h | 1 + tests/kds_s2000w_option_descriptor_tests.c | 14 ++++++++++++++ tests/kds_s2000w_option_descriptor_tests.h | 2 ++ tests/kds_s2000w_option_descriptor_tests_run.c | 2 ++ 5 files changed, 29 insertions(+) diff --git a/src/kds_s2000w_option_descriptors.c b/src/kds_s2000w_option_descriptors.c index b4aa552..e776150 100644 --- a/src/kds_s2000w_option_descriptors.c +++ b/src/kds_s2000w_option_descriptors.c @@ -1246,6 +1246,16 @@ void kds_s2000w_option_descriptors_free() descriptors = NULL; } +option_descriptor* kds_s2000w_option_descriptor_full_get_by_number(uint32_t number) +{ + kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_full_get_by_number"); + + if (number >= MAX_OPTION_COUNT) + return NULL; + + return descriptors[number]; +} + SANE_Option_Descriptor* kds_s2000w_option_descriptors_get_by_number(uint32_t number) { kds_s2000w_debug_printf(ALL, "kds_s2000w_option_get_descriptor"); diff --git a/src/kds_s2000w_option_descriptors.h b/src/kds_s2000w_option_descriptors.h index 9e0ae18..ee36a9c 100644 --- a/src/kds_s2000w_option_descriptors.h +++ b/src/kds_s2000w_option_descriptors.h @@ -11,6 +11,7 @@ typedef struct { void kds_s2000w_option_descriptors_init(); void kds_s2000w_option_descriptors_free(); +option_descriptor* kds_s2000w_option_descriptor_full_get_by_number(uint32_t number); SANE_Option_Descriptor* kds_s2000w_option_descriptors_get_by_number(uint32_t number); SANE_Option_Descriptor* kds_s2000w_option_descriptors_get_by_name(const char* name); diff --git a/tests/kds_s2000w_option_descriptor_tests.c b/tests/kds_s2000w_option_descriptor_tests.c index bc5abfd..1e7c9ec 100644 --- a/tests/kds_s2000w_option_descriptor_tests.c +++ b/tests/kds_s2000w_option_descriptor_tests.c @@ -833,5 +833,19 @@ void kds_s2000w_option_get_descriptor_over_max_options_test() { SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get_by_number(MAX_OPTION_COUNT); + assert_null(option); +} + +void kds_s2000w_option_full_get_descriptor_by_number() +{ + option_descriptor* option = kds_s2000w_option_descriptor_full_get_by_number(31); + + assert_string_equal(option->config_name, "Reset"); +} + +void kds_s2000w_option_full_get_descriptor_over_max_options_test() +{ + option_descriptor* option = kds_s2000w_option_descriptor_full_get_by_number(MAX_OPTION_COUNT); + assert_null(option); } \ No newline at end of file diff --git a/tests/kds_s2000w_option_descriptor_tests.h b/tests/kds_s2000w_option_descriptor_tests.h index 938952a..0e5cefe 100644 --- a/tests/kds_s2000w_option_descriptor_tests.h +++ b/tests/kds_s2000w_option_descriptor_tests.h @@ -57,4 +57,6 @@ void kds_s2000w_option_get_descriptor_fourtyfive_test(); void kds_s2000w_option_get_descriptor_fourtysix_test(); void kds_s2000w_option_get_descriptor_get_by_name_test(); void kds_s2000w_option_get_descriptor_over_max_options_test(); +void kds_s2000w_option_full_get_descriptor_by_number(); +void kds_s2000w_option_full_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 f3ef88d..f18fa00 100644 --- a/tests/kds_s2000w_option_descriptor_tests_run.c +++ b/tests/kds_s2000w_option_descriptor_tests_run.c @@ -52,6 +52,8 @@ int main() cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourtysix_test, setup, teardown), cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_get_by_name_test, setup, teardown), cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_over_max_options_test, setup, teardown), + cmocka_unit_test_setup_teardown(kds_s2000w_option_full_get_descriptor_by_number, setup, teardown), + cmocka_unit_test_setup_teardown(kds_s2000w_option_full_get_descriptor_over_max_options_test, setup, teardown), }; return cmocka_run_group_tests(option_descriptor_tests, NULL, NULL); -- 2.47.3