]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
cancel without do anything
authorBastian Dehn <hhaalo@arcor.de>
Wed, 27 Mar 2024 18:06:51 +0000 (19:06 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 28 Mar 2024 10:18:54 +0000 (11:18 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_read_tests.c
tests/kds_s2000w_net_tests.c

index 1cc71cbc6edf24f760dfa522e0a832d13ce6432e..e940e75ab2ce1059901d88bab98314a3c874566b 100644 (file)
@@ -127,10 +127,8 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle,
        debug_printf(ALL, "sane_kds_s2000w_net_get_parameters");
        handler* h = (handler*) handle;
 
-       if (h->read_info->cancel) {
-               reset_handler(h);
+       if (h->read_info->cancel)
                return SANE_STATUS_CANCELLED;
-       }
 
        params->format = h->current_metadata->format;
        params->last_frame = h->current_metadata->is_last;
@@ -158,11 +156,6 @@ 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->cancel) {
-               reset_handler(h);
-               return SANE_STATUS_CANCELLED;
-       }
-
        if (!h->read_info->scan_started) {
                h->read_info->cancel = 0;
                h->read_info->scan_started = 1;
@@ -170,6 +163,9 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle)
                kds_s2000w_handler_start_scan(h);
        }
 
+       if (h->read_info->cancel)
+               return SANE_STATUS_CANCELLED;
+
        for (int i = 0; i < 200; i++) {
                usleep(500000);
                kds_s2000w_handler_get_parameters(h);
@@ -209,7 +205,6 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
 
        // cancel
        if (h->read_info->cancel) {
-               reset_handler(h);
                *length = 0;
                return SANE_STATUS_CANCELLED;
        }
index 8b6f712a7edb2aefcf212b852f050b8ba02738fd..7679f0874a8e1bdb06f0e54cfec06b998c5c146a 100644 (file)
@@ -29,8 +29,7 @@ void sane_kds_s2000w_net_read_cancel_test()
 
        SANE_Status status = _sane_kds_s2000w_net_read(h, NULL, 0, length);
 
-       assert_int_equal(h->read_info->cancel, 0);
-       assert_int_equal(h->read_info->scan_started, 0);
+       assert_int_equal(h->read_info->cancel, 1);
        assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free(length);
index ccceb5aa092a50fc8c9490e537306ffa81c726e5..3107ff28961b43df9fe7dd7e3e3cf1d591f51528 100644 (file)
@@ -528,11 +528,12 @@ void sane_kds_s2000w_net_control_get_option_twentytwo(void** state)
 void sane_kds_s2000w_net_start_cancel()
 {
        handler* h = init_handler();
+       h->read_info->scan_started = 1;
        h->read_info->cancel = 1;
 
        SANE_Status status = _sane_kds_s2000w_net_start(h);
 
-       assert_int_equal(h->read_info->cancel, 0);
+       assert_int_equal(h->read_info->cancel, 1);
        assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free_handler(h);
@@ -866,7 +867,7 @@ void sane_kds_s2000w_net_get_parameter_cancel()
 
        SANE_Status status = _sane_kds_s2000w_net_get_parameters(h, NULL);
 
-       assert_int_equal(h->read_info->cancel, 0);
+       assert_int_equal(h->read_info->cancel, 1);
        assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free_handler(h);