]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change all scan states into one var
authorBastian Dehn <hhaalo@arcor.de>
Fri, 17 Oct 2025 16:42:25 +0000 (18:42 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 17 Oct 2025 16:42:25 +0000 (18:42 +0200)
src/kds_s2000w_handler.c
src/kds_s2000w_handler.h
src/kds_s2000w_handler_opts.c
src/kds_s2000w_net.c
tests/kds_s2000w_net_read_tests.c
tests/kds_s2000w_net_tests.c

index 1ca34fdba24cc057aa14d5487080b86660ae8bb9..aa52a747fee6112e5b0e0f19c99019f3a5a31213 100644 (file)
@@ -108,12 +108,10 @@ handler* kds_s2000w_handler_init()
        h->profile = 0;
        h->sessionid = 0;
        h->state = NOTCONNECTED;
+       h->scan_status->state = STOPPED;
        h->scan_status->image_number = 1;
        h->scan_status->available_images = 0;
        h->scan_status->downloaded_images = 0;
-       h->scan_status->completed = false;
-       h->read_info->scan_started = false;
-       h->read_info->cancel = false;
        h->read_info->read_size = 0;
        h->image->size = 0;
        h->image->data = NULL;
@@ -157,12 +155,10 @@ void kds_s2000w_handler_reset(handler* h)
        free(h->image->data);
        h->image->data = NULL;
 
+       h->scan_status->state = STOPPED;
        h->scan_status->image_number = 1;
        h->scan_status->available_images = 0;
        h->scan_status->downloaded_images = 0;
-       h->scan_status->completed = false;
-       h->read_info->scan_started = false;
-       h->read_info->cancel = false;
        h->read_info->read_size = 0;
 }
 
@@ -384,7 +380,7 @@ void kds_s2000w_handler_get_current_scan_status(handler* h)
        status_value_obj = json_object_object_get(status_obj, "State");
        const char* scanner_state = json_object_get_string(status_value_obj);
        if (strcmp(scanner_state, "Scanning") != 0)
-               h->scan_status->completed = true;
+               h->scan_status->state = COMPLETED;
 
        json_object_put(status_resp_obj);
        status_resp_obj = NULL;
index d12f68627b32c6d85743930cff403ddb5f143efd..dfa778b852f4ad92c7903a309ab091c2f1319d15 100644 (file)
@@ -21,6 +21,13 @@ enum {
        Automatic
 };
 
+enum {
+       STOPPED,
+       STARTED,
+       CANCLED,
+       COMPLETED
+};
+
 typedef struct {
        size_t size;
        void* data;
@@ -43,15 +50,13 @@ typedef struct {
 } coord_t;
 
 typedef struct {
+       uint8_t state;
        uint8_t image_number;
        uint8_t available_images;
        uint8_t downloaded_images;
-       bool completed;
 } scan_status_t;
 
 typedef struct {
-       bool scan_started;
-       bool cancel;
        uint64_t read_size;
 } readinfo;
 
index 05d7ffd318ddb75efca2bf56bb0d289264b4d635..894df4edb8be2e08528c8848128ddacc90c5c48e 100644 (file)
@@ -494,7 +494,7 @@ void kds_s2000w_handler_opts_get_option(handler* h, uint32_t option, void* value
 
 void kds_s2000w_handler_opts_set_option(handler* h, uint32_t option, void* value, int32_t* info)
 {
-       if (h->read_info->scan_started)
+       if (h->scan_status->state == STARTED)
                return;
 
        json_object* config = _kds_s2000w_handler_opts_load_config(h);
index a8780d1a476ca5a8592acaf85393061f544d9645..38536b351e7fa415bb659a1b91dd8bf2746d2127 100644 (file)
@@ -155,20 +155,18 @@ SANE_Status sane_kds_s2000w_net_start(SANE_Handle handle)
 
        handler* h = (handler*) handle;
 
-       if (h->read_info->cancel)
+       if (h->scan_status->state == CANCLED)
                return SANE_STATUS_CANCELLED;
 
-       if (!h->read_info->scan_started) {
-               h->read_info->cancel = false;
-               h->read_info->scan_started = true;
+       if (h->scan_status->state == STOPPED) {
+               h->scan_status->state = STARTED;
                kds_s2000w_handler_start_scan(h);
        }
 
        for (uint32_t i = 0; i < 30; i++) {
                kds_s2000w_handler_get_current_scan_status(h);
-
-       if (h->scan_status->available_images > 0)
-                       break;
+               if (h->scan_status->available_images > 0)
+                               break;
        }
 
        if (h->scan_status->available_images < 1)
@@ -178,7 +176,7 @@ SANE_Status sane_kds_s2000w_net_start(SANE_Handle handle)
        kds_s2000w_handler_delete_current_image(h);
        h->scan_status->image_number++;
 
-       if (h->scan_status->completed) {
+       if (h->scan_status->state == COMPLETED) {
                kds_s2000w_handler_stop_scan(h);
                return SANE_STATUS_GOOD;
        }
@@ -219,7 +217,7 @@ void sane_kds_s2000w_net_cancel(SANE_Handle handle)
 
        handler* h = (handler*) handle;
 
-       if (h->read_info->cancel) {
+       if (h->scan_status->state == CANCLED) {
                kds_s2000w_debug_printf(DEBUG, "scan completed canceled");
                kds_s2000w_handler_reset(h);
                kds_s2000w_handler_recreate_session(h);
@@ -228,7 +226,7 @@ void sane_kds_s2000w_net_cancel(SANE_Handle handle)
 
        kds_s2000w_handler_get_current_scan_status(h);
 
-       if (h->scan_status->completed) {
+       if (h->scan_status->state == COMPLETED) {
                kds_s2000w_debug_printf(DEBUG, "scan completed");
                kds_s2000w_handler_reset(h);
                return;
@@ -242,7 +240,7 @@ void sane_kds_s2000w_net_cancel(SANE_Handle handle)
        }
 
        kds_s2000w_debug_printf(DEBUG, "scan canceled");
-       h->read_info->cancel = true;
+       h->scan_status->state = CANCLED;
        kds_s2000w_handler_stop_scan(h);
 }
 
index 7a171f728c9e24d5640aa38a609776a941b4a69e..47d3977adf5971cc27d995db6a36bad7bdfcd4f9 100644 (file)
@@ -102,7 +102,6 @@ void sane_kds_s2000w_net_read_empty_image_test()
 void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
 {
        handler* h = kds_s2000w_handler_init();
-       h->read_info->cancel = false;
        h->read_info->read_size = 0;
        h->image->size = 95003;
        h->image->data = malloc(sizeof(char) * 95003);
index e51f046c19b521f9856e252984ba4a209d41555c..713798e9d70f06ae1bb134f0f2d963d090748bd8 100644 (file)
@@ -358,7 +358,7 @@ void sane_kds_s2000w_net_start_test(void** state)
        int result = sane_kds_s2000w_net_start(h);
 
        assert_int_equal(result, SANE_STATUS_GOOD);
-       assert_false(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, STARTED);
 
        json_object_put(h->scanner_config);
        h->scanner_config = NULL;
@@ -403,7 +403,7 @@ void sane_kds_s2000w_net_start_one_page_per_flatscan_test(void** state)
        int result = sane_kds_s2000w_net_start(h);
 
        assert_int_equal(result, SANE_STATUS_GOOD);
-       assert_false(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, STARTED);
 
        json_object_put(h->scanner_config);
        h->scanner_config = NULL;
@@ -450,7 +450,7 @@ void sane_kds_s2000w_net_start_one_page_per_feeder_test(void** state)
        int result = sane_kds_s2000w_net_start(h);
 
        assert_int_equal(result, SANE_STATUS_GOOD);
-       assert_true(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, COMPLETED);
 
        json_object_put(h->scanner_config);
        h->scanner_config = NULL;
@@ -526,7 +526,7 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder_test(void** state)
        int32_t result = sane_kds_s2000w_net_start(h);
 
        assert_int_equal(result, SANE_STATUS_GOOD);
-       assert_true(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, COMPLETED);
 
        json_object_put(h->scanner_config);
        h->scanner_config = NULL;
@@ -566,7 +566,7 @@ void sane_kds_s2000w_net_cancel_test()
 
        sane_kds_s2000w_net_cancel(h);
 
-       assert_true(h->read_info->cancel);
+       assert_int_equal(h->scan_status->state, CANCLED);
 
        kds_s2000w_client_response_free(resp);
        resp = NULL;
@@ -579,7 +579,7 @@ void sane_kds_s2000w_net_cancel_test()
 void sane_kds_s2000w_net_cancel_start_test()
 {
        handler* h = kds_s2000w_handler_init();
-       h->read_info->cancel = true;
+       h->scan_status->state = CANCLED;
 
        SANE_Status status = sane_kds_s2000w_net_start(h);
 
@@ -608,11 +608,11 @@ void sane_kds_s2000w_net_cancel_canceled_test()
        expect_function_call(__wrap_kds_s2000w_client_open_session);
        expect_function_call(__wrap_kds_s2000w_client_set_option);
        handler* h = kds_s2000w_handler_init();
-       h->read_info->cancel = true;
+       h->scan_status->state = CANCLED;
 
        sane_kds_s2000w_net_cancel(h);
 
-       assert_false(h->read_info->cancel);
+       assert_int_equal(h->scan_status->state, STOPPED);
 
        kds_s2000w_client_response_free(resp_status);
        resp_status = NULL;
@@ -647,8 +647,7 @@ void sane_kds_s2000w_net_cancel_completed_scan_feeder_test()
 
        sane_kds_s2000w_net_cancel(h);
 
-       assert_false(h->read_info->cancel);
-       assert_false(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, STOPPED);
 
        kds_s2000w_client_response_free(resp_status);
        resp_status = NULL;
@@ -697,8 +696,7 @@ void sane_kds_s2000w_net_cancel_completed_scan_flatbed_test()
 
        sane_kds_s2000w_net_cancel(h);
 
-       assert_false(h->read_info->cancel);
-       assert_false(h->scan_status->completed);
+       assert_int_equal(h->scan_status->state, STOPPED);
 
        kds_s2000w_client_response_free(resp_status);
        resp_status = NULL;