From 40cded3785cfcc7020c6acdae8ceed8244960737 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 25 Feb 2024 16:11:17 +0100 Subject: [PATCH] change get metadata by start --- src/kds_s2000w_net.c | 21 +++++++++++---------- tests/kds_s2000w_net_get_params_tests.c | 15 --------------- tests/runtests.c | 1 - 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 5e1cd71..b413c97 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -133,16 +133,6 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, return SANE_STATUS_GOOD; } - for (int i = 0; i < 10; i++) { - sleep(1); - kds_s2000w_handler_get_parameters(h); - if (h->current_metadata->valid) - break; - } - - if (!h->current_metadata->valid) - return SANE_STATUS_UNSUPPORTED; - metadata mdata; memcpy(&mdata, h->current_metadata, sizeof(metadata)); @@ -173,9 +163,20 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) { debug_printf(ALL, "sane_kds_s2000w_net_start"); handler* h = (handler*) handle; + + if (h->read_info->scan_started) { + for (int i = 0; i < 10; i++) { + sleep(1); + kds_s2000w_handler_get_parameters(h); + if (h->current_metadata->valid) + break; + } + } + if (!h->read_info->scan_started) { h->read_info->cancel = 0; h->read_info->scan_started = 1; + h->current_metadata->is_last = 0; kds_s2000w_handler_start_scan(h); } return SANE_STATUS_GOOD; diff --git a/tests/kds_s2000w_net_get_params_tests.c b/tests/kds_s2000w_net_get_params_tests.c index 5901a5b..e79f596 100644 --- a/tests/kds_s2000w_net_get_params_tests.c +++ b/tests/kds_s2000w_net_get_params_tests.c @@ -2,21 +2,6 @@ #include #include -START_TEST(kds_s2000w_net_get_parameters_invalid_metdata) -{ - handler* h = init_handler(); - h->read_info->scan_started = 1; - SANE_Parameters params; - - SANE_Status status = _sane_kds_s2000w_net_get_parameters(h, ¶ms); - - ck_assert_int_eq(status, SANE_STATUS_UNSUPPORTED); - - free_handler(h); - h = NULL; -} -END_TEST - START_TEST(kds_s2000w_net_get_parameters_with_image_data) { handler* h = init_handler(); diff --git a/tests/runtests.c b/tests/runtests.c index 26f9a86..ae910a2 100644 --- a/tests/runtests.c +++ b/tests/runtests.c @@ -39,7 +39,6 @@ Suite* get_params() Suite* get_params = suite_create("kds_s2000w_net_get_parameters"); TCase* net_get_params = tcase_create("get parameters"); - tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_invalid_metdata); tcase_add_test(net_get_params, kds_s2000w_net_get_parameters_with_image_data); suite_add_tcase(get_params, net_get_params); return get_params; -- 2.39.5