]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add br y option
authorBastian Dehn <hhaalo@arcor.de>
Tue, 25 Feb 2025 17:02:03 +0000 (18:02 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 6 Mar 2025 20:44:55 +0000 (21:44 +0100)
src/kds_s2000w_handler_opts.c
src/kds_s2000w_option_descriptors.c
tests/kds_s2000w_net_get_opt_tests.c
tests/kds_s2000w_net_get_opt_tests.h
tests/kds_s2000w_net_get_opt_tests_run.c
tests/kds_s2000w_option_descriptor_tests.c
tests/kds_s2000w_option_descriptor_tests.h
tests/kds_s2000w_option_descriptor_tests_run.c

index 6d6dcc55a6d0756f813e8fbf6e58249997cbff3c..bc193953088c49c6afcc06bda7189ebb3896f801 100644 (file)
@@ -7,7 +7,7 @@
 #include "kds_s2000w_debug.h"
 
 #define AUTOSTART_ON 1
-#define OPTION_COUNT 48
+#define OPTION_COUNT 49
 
 #define OFFSET_X_MAX_INCH 75
 #define OFFSET_Y_MAX_INCH 390
@@ -528,6 +528,10 @@ void kds_s2000w_handler_opts_get_option(handler* h, uint32_t option, void* value
                        int* br_x = (int*) value;
                        *br_x = _kds_s2000w_handler_opts_inch_to_pixel(config, h->br->x);
                        break;
+               case 48:
+                       int* br_y = (int*) value;
+                       *br_y = _kds_s2000w_handler_opts_inch_to_pixel(config, h->br->y);
+                       break;
                default:
                        break;
        }
@@ -767,6 +771,10 @@ void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value
                        int* br_x = (int*) value;
                        *br_x = _kds_s2000w_handler_opts_pixel_to_inch(config, h->br->x);
                        break;
+               case 48:
+                       int* br_y = (int*) value;
+                       *br_y = _kds_s2000w_handler_opts_pixel_to_inch(config, h->br->y);
+                       break;
                default:
                        break;
        }
index 57d02e0243554e9b3f041c1fee67e0ca9aa42351..2ccb127224b114b97ada344027c1cb3a4dc9a018 100644 (file)
@@ -3,7 +3,7 @@
 #include "kds_s2000w_option_descriptors.h"
 #include "kds_s2000w_debug.h"
 
-#define MAX_OPTION_COUNT 48
+#define MAX_OPTION_COUNT 49
 
 SANE_Option_Descriptor* descriptor_array = NULL;
 
@@ -1132,6 +1132,30 @@ SANE_Option_Descriptor _kds_s2000w_option_descriptor_br_x()
        return descriptor;
 }
 
+SANE_Option_Descriptor _kds_s2000w_option_descriptor_br_y()
+{
+       kds_s2000w_debug_printf(ALL, "kds_s2000w_option_descriptor_br_y");
+
+       SANE_Range* constraint = malloc(sizeof(SANE_Range));
+       constraint->min = 0;
+       constraint->max = 7800;
+       constraint->quant = 20;
+
+       SANE_Option_Descriptor descriptor = {
+               SANE_NAME_SCAN_BR_Y,
+               SANE_TITLE_SCAN_BR_Y,
+               SANE_DESC_SCAN_BR_Y,
+               SANE_TYPE_INT,
+               SANE_UNIT_PIXEL,
+               sizeof(SANE_Int),
+               SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT | SANE_CAP_ADVANCED,
+               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");
@@ -1185,6 +1209,7 @@ void kds_s2000w_option_descriptors_init()
        descriptor_array[45] = _kds_s2000w_option_descriptor_document_feeder_timeout();
        descriptor_array[46] = _kds_s2000w_option_descriptor_document_feeder_timeout_response();
        descriptor_array[47] = _kds_s2000w_option_descriptor_br_x();
+       descriptor_array[48] = _kds_s2000w_option_descriptor_br_y();
 }
 
 void kds_s2000w_option_descriptors_free()
index 03cca1542aae792b8386759a755c87f015927612..6bd5463e74a0fd50565bc7b3513cd52851318f44 100644 (file)
@@ -7,7 +7,7 @@
 #include "../src/kds_s2000w_net.h"
 #include "../src/kds_s2000w_handler.h"
 
-#define MAX_OPTION_COUNT 48
+#define MAX_OPTION_COUNT 49
 
 void sane_kds_s2000w_net_control_get_option_zero_test(void** state)
 {
@@ -627,6 +627,21 @@ void sane_kds_s2000w_net_control_get_option_fourtyseven_test(void** state)
 
        assert_int_equal(value, 0);
 
+       kds_s2000w_handler_free(h);
+       h = NULL;
+}
+
+void sane_kds_s2000w_net_control_get_option_fourtyeight_test(void** state)
+{
+       handler* h = kds_s2000w_handler_init();
+       response* resp = (response*) *state;
+       h->current_scanner_config = json_tokener_parse(resp->data);
+       int32_t value;
+
+       sane_kds_s2000w_net_control_option(h, 48, SANE_ACTION_GET_VALUE, &value, NULL);
+
+       assert_int_equal(value, 0);
+
        kds_s2000w_handler_free(h);
        h = NULL;
 }
\ No newline at end of file
index d8cd0081fbe278a010db3064ba6aa6fef90b1f2b..700b8c06da38895a00b03d204c42ff5bd0608d7f 100644 (file)
@@ -47,5 +47,6 @@ void sane_kds_s2000w_net_control_get_option_fourtyfour_test(void** state);
 void sane_kds_s2000w_net_control_get_option_fourtyfive_test(void** state);
 void sane_kds_s2000w_net_control_get_option_fourtysix_test(void** state);
 void sane_kds_s2000w_net_control_get_option_fourtyseven_test(void** state);
+void sane_kds_s2000w_net_control_get_option_fourtyeight_test(void** state);
 
 #endif
\ No newline at end of file
index b077855ef0878d2b56b5ba675b2661f97068dad2..01ea614bbfec4a3b275e26f388840074f44f80c6 100644 (file)
@@ -120,7 +120,8 @@ int main()
                cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtyfour_test, setup_default_get_option, teardown_default_get_option),
                cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtyfive_test, setup_default_get_option, teardown_default_get_option),
                cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtysix_test, setup_default_get_option, teardown_default_get_option),
-               cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtyseven_test, setup_default_get_option, teardown_default_get_option)
+               cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtyseven_test, setup_default_get_option, teardown_default_get_option),
+               cmocka_unit_test_setup_teardown(sane_kds_s2000w_net_control_get_option_fourtyeight_test, setup_default_get_option, teardown_default_get_option)
        };
 
        return cmocka_run_group_tests(net_tests, NULL, NULL);
index 6af316bde4d1b25bc209bf2bfdfdabdd3e9a1c36..36c873ae93359caad7fce02c4c68e463b6f113b0 100644 (file)
@@ -4,7 +4,7 @@
 #include "kds_s2000w_client_mock.h"
 #include "../src/kds_s2000w_option_descriptors.h"
 
-#define MAX_OPTION_COUNT 48
+#define MAX_OPTION_COUNT 49
 
 int setup(void** state)
 {
@@ -839,6 +839,23 @@ void kds_s2000w_option_get_descriptor_fourtyseven_test()
        assert_int_equal(option->constraint.range->quant, 20);
 }
 
+void kds_s2000w_option_get_descriptor_fourtyeight_test()
+{
+       SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get(48);
+
+       assert_string_equal(SANE_NAME_SCAN_BR_Y, option->name);
+       assert_string_equal(SANE_TITLE_SCAN_BR_Y, option->title);
+       assert_string_equal(SANE_DESC_SCAN_BR_Y, option->desc);
+       assert_int_equal(SANE_TYPE_INT, option->type);
+       assert_int_equal(SANE_UNIT_PIXEL, option->unit);
+       assert_int_equal(sizeof(SANE_Int), option->size);
+       assert_int_equal(SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT | SANE_CAP_ADVANCED, 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, 7800);
+       assert_int_equal(option->constraint.range->quant, 20);
+}
+
 void kds_s2000w_option_get_descriptor_get_by_name_test()
 {
        SANE_Option_Descriptor* option = kds_s2000w_option_descriptors_get_by_name("config-reset");
index d412f3d255e19e206c5f719f5dd79e29d2fa3892..deb2e7559225ea571b62a4456a137bd16846e068 100644 (file)
@@ -56,6 +56,7 @@ void kds_s2000w_option_get_descriptor_fourtyfour_test();
 void kds_s2000w_option_get_descriptor_fourtyfive_test();
 void kds_s2000w_option_get_descriptor_fourtysix_test();
 void kds_s2000w_option_get_descriptor_fourtyseven_test();
+void kds_s2000w_option_get_descriptor_fourtyeight_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 126e943031871df9ba6dfb6869f5148590cb98df..c1cc9abd0e99c35482ef675d169e3f95f033d6bb 100644 (file)
@@ -51,6 +51,7 @@ int main()
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourtyfive_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourtysix_test, setup, teardown),
                cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourtyseven_test, setup, teardown),
+               cmocka_unit_test_setup_teardown(kds_s2000w_option_get_descriptor_fourtyeight_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),
        };