]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add get option descriptor by name
authorBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 17:14:56 +0000 (18:14 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 16 Feb 2025 17:14:56 +0000 (18:14 +0100)
src/kds_s2000w_handler_opts.c
src/kds_s2000w_option_descriptors.c
src/kds_s2000w_option_descriptors.h
tests/kds_s2000w_option_descriptor_tests.c
tests/kds_s2000w_option_descriptor_tests.h
tests/kds_s2000w_option_descriptor_tests_run.c

index e34f9ce3e8bbe47e3e22a11f8277d9327ee590b4..7af8c737fced58f3629932dce123fe151c5106b2 100644 (file)
@@ -96,9 +96,9 @@ void _kds_s2000w_handler_opts_set_options(handler* h)
        resp = NULL;
 }
 
-void _kds_s2000w_handler_opts_set_cropping_image_value(json_object* value_object, void* value)
+void _kds_s2000w_handler_opts_set_soft_select_cropping_image(json_object* value_object, void* value)
 {
-       SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get(32);
+       SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get_by_name("cropping-image");
 
        cropping_image->cap |= SANE_CAP_SOFT_SELECT;
        if (strcmp(value, "Automatic") == 0) {
@@ -423,7 +423,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        _kds_s2000w_handler_opts_write_string_value_to_json(value_object, value);
 
                        value_object = json_object_object_get(config, "CroppingImage");
-                       _kds_s2000w_handler_opts_set_cropping_image_value(value_object, value);
+                       _kds_s2000w_handler_opts_set_soft_select_cropping_image(value_object, value);
 
                        if (info != NULL)
                                *info = RELOAD_OPTIONS;
@@ -448,7 +448,7 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        _kds_s2000w_handler_opts_set_option_to_default(h);
                        _kds_s2000w_handler_opts_set_autostart_on(h);
 
-                       SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get(32);
+                       SANE_Option_Descriptor* cropping_image = kds_s2000w_option_descriptors_get_by_name("cropping-image");
                        cropping_image->cap |= SANE_CAP_SOFT_SELECT;
 
                        if (info != NULL)
index 974286ad3033b1903b9966ed0912f91fd9abdfd4..0c3a229b255097374a7aeb201355e99b363fe402 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdlib.h>
+#include <string.h>
 #include <sane/saneopts.h>
 #include "kds_s2000w_option_descriptors.h"
 #include "kds_s2000w_debug.h"
@@ -973,4 +974,16 @@ SANE_Option_Descriptor* kds_s2000w_option_descriptors_get(uint32_t option)
                return NULL;
 
        return &descriptor_array[option];
+}
+
+SANE_Option_Descriptor* kds_s2000w_option_descriptors_get_by_name(const char* name)
+{
+       kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_get_by_name");
+
+       for (int i = 0; i < MAX_OPTION_COUNT; i++) {
+               if (strcmp(descriptor_array[i].name, name) == 0)
+                       return &descriptor_array[i];
+       }
+
+       return NULL;
 }
\ No newline at end of file
index edced053cee5870dd3f8cbadd9a2a80382679ce6..b99e4abd628452bedb845941e2800d9bab7610ec 100644 (file)
@@ -7,5 +7,6 @@ void kds_s2000w_option_descriptors_init();
 void kds_s2000w_option_descriptors_free();
 
 SANE_Option_Descriptor* kds_s2000w_option_descriptors_get(uint32_t option);
+SANE_Option_Descriptor* kds_s2000w_option_descriptors_get_by_name(const char* name);
 
 #endif
\ No newline at end of file
index 1d2e3751dbe02d58d38ca64f78769d6d5028d6d0..91b1e5f9be6f2d0588917656e8b0b42ca63f15c0 100644 (file)
@@ -663,6 +663,13 @@ void kds_s2000w_option_get_descriptor_thirdysix_test()
        assert_int_equal(SANE_CONSTRAINT_NONE, option->constraint_type);
 }
 
+void kds_s2000w_option_get_descriptor_get_by_name_test()
+{
+       SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get_by_name("config-reset");
+
+       assert_string_equal(option->name, "config-reset");
+}
+
 void kds_s2000w_option_get_descriptor_over_max_options_test()
 {
        SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(MAX_OPTION_COUNT);
index f08c7675e07b61ccbdc85402b1180777021eb106..6f76784e16072c2fd9481c1fc16e9664cd3571b7 100644 (file)
@@ -45,5 +45,6 @@ void kds_s2000w_option_get_descriptor_thirdythree_test();
 void kds_s2000w_option_get_descriptor_thirdyfour_test();
 void kds_s2000w_option_get_descriptor_thirdyfive_test();
 void kds_s2000w_option_get_descriptor_thirdysix_test();
+void kds_s2000w_option_get_descriptor_get_by_name_test();
 void kds_s2000w_option_get_descriptor_over_max_options_test();
 #endif
\ No newline at end of file
index eaac382fc0d153571bae29d19a6c8d110fa233d0..e782077c715b636ecb41494a09b93bb55f796cdc 100644 (file)
@@ -40,6 +40,7 @@ int main()
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdyfour_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdyfive_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_thirdysix_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),
        };