]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
Revert "Merge branch 'feature/cancel' into develop"
authorBastian Dehn <hhaalo@arcor.de>
Sat, 30 Mar 2024 07:32:04 +0000 (08:32 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 30 Mar 2024 07:32:04 +0000 (08:32 +0100)
This reverts commit f8597e8d5c0135febcf82dbd9f4269cf5fcf517c, reversing
changes made to 32a98e0f5f63359c3125c10924984bbdfa139d61.

src/kds_s2000w_handler.c
src/kds_s2000w_net.c
tests/kds_s2000w_net_read_tests.c
tests/kds_s2000w_net_tests.c

index ef0cb579923446b0cbe6194df37ac532bfbf7241..a54c234614a3d46b351d0a43e58fef7e9c0d7b9d 100644 (file)
@@ -224,6 +224,35 @@ void free_handler(handler* h)
        h = NULL;
 }
 
+void reset_handler(handler* h)
+{
+       debug_printf(ALL, "reset handler");
+       free(h->pnm_image->data);
+       h->pnm_image->data = NULL;
+       free(h->jpg_image->data);
+       h->jpg_image->data = NULL;
+
+       h->state = NOTCONNECTED;
+       h->current_scan_status->current_image_number = 1;
+       h->current_scan_status->available_images = 0;
+       h->current_scan_status->downloaded_images = 0;
+       h->current_scan_status->complete_scanned = 0;
+       h->current_metadata->format = 1;
+       h->current_metadata->channels = 3;
+       h->current_metadata->is_last = 1;
+       h->current_metadata->bytes_per_line = 0;
+       h->current_metadata->pixels_per_line = 0;
+       h->current_metadata->lines = 0;
+       h->current_metadata->depth = 8;
+       h->current_metadata->valid = 0;
+       h->current_metadata->scanned_all_complete = 0;
+       h->read_info->scan_started = 0;
+       h->read_info->cancel = 0;
+       h->read_info->read_size = 0;
+       h->read_info->readed_bytes_per_line = 0;
+       h->read_info->readed_lines = 0;
+}
+
 void kds_s2000w_handler_recreate_session(handler* h)
 {
        kds_s2000w_client_close_session(h->sessionid);
index 0b5ac81e7953d5331c3915fa37ede75ef4965388..1cc71cbc6edf24f760dfa522e0a832d13ce6432e 100644 (file)
@@ -127,8 +127,10 @@ 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)
-               return SANE_STATUS_GOOD;
+       if (h->read_info->cancel) {
+               reset_handler(h);
+               return SANE_STATUS_CANCELLED;
+       }
 
        params->format = h->current_metadata->format;
        params->last_frame = h->current_metadata->is_last;
@@ -156,6 +158,11 @@ 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;
@@ -163,9 +170,6 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle)
                kds_s2000w_handler_start_scan(h);
        }
 
-       if (h->read_info->cancel)
-               return SANE_STATUS_GOOD;
-
        for (int i = 0; i < 200; i++) {
                usleep(500000);
                kds_s2000w_handler_get_parameters(h);
@@ -205,27 +209,8 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
 
        // cancel
        if (h->read_info->cancel) {
+               reset_handler(h);
                *length = 0;
-               h->read_info->cancel = 0;
-               h->current_scan_status->current_image_number = 1;
-               h->current_scan_status->available_images = 0;
-               h->current_scan_status->downloaded_images = 0;
-               h->current_scan_status->complete_scanned = 0;
-               h->current_metadata->pixels_per_line = 0;
-               h->current_metadata->lines = 0;
-               h->current_metadata->valid = 0;
-               h->current_metadata->scanned_all_complete = 0;
-               h->read_info->scan_started = 0;
-               h->read_info->read_size = 0;
-               h->read_info->readed_bytes_per_line = 0;
-               h->read_info->readed_lines = 0;
-               free(h->jpg_image->data);
-               h->jpg_image->data = NULL;
-               h->jpg_image->size = 0;
-               free(h->pnm_image->data);
-               h->pnm_image->data = NULL;
-               h->pnm_image->size = 0;
-               kds_s2000w_handler_recreate_session(h);
                return SANE_STATUS_CANCELLED;
        }
 
index 65eca99b2816f4f7ff9ac9a62e2dbcbd290a7146..8b6f712a7edb2aefcf212b852f050b8ba02738fd 100644 (file)
@@ -24,71 +24,17 @@ void sane_kds_s2000w_net_read_cancel_test()
        handler* h = init_handler();
        h->read_info->scan_started = 1;
        h->read_info->cancel = 1;
-       h->sessionid = 123123;
-       h->current_scan_status->current_image_number = 5;
-       h->current_scan_status->available_images = 20;
-       h->current_scan_status->downloaded_images = 4;
-       h->current_scan_status->complete_scanned = 1;
-       h->current_metadata->pixels_per_line = 1920;
-       h->current_metadata->lines = 1080;
-       h->current_metadata->valid = 1;
-       h->current_metadata->scanned_all_complete = 1;
-       h->read_info->scan_started = 1;
-       h->read_info->read_size = 10240;
-       h->read_info->readed_bytes_per_line = 1085;
-       h->read_info->readed_lines = 150;
-       h->jpg_image->data = malloc(sizeof(char) * 50);
-       h->jpg_image->size = 50;
-       h->jpg_image->data = memset(h->jpg_image->data, 15, h->jpg_image->size);
-       h->pnm_image->data = malloc(sizeof(char) * 100);
-       h->pnm_image->size = 100;
-       h->pnm_image->data = memset(h->pnm_image->data, 66, h->pnm_image->size);
        int* length = malloc(sizeof(int));
        *length = 0;
-       response* resp_open_session = kds_s2000w_client_response_init();
-       resp_open_session->data = realloc(resp_open_session->data, 25);
-       const char* session_data = "{\"SessionId\":\"8154711\"}\0";
-       memcpy(resp_open_session->data, session_data, 25);
-       resp_open_session->code = 200;
-       resp_open_session->size = 25;
-       will_return(mock_response, resp_open_session);
-       will_return(__wrap_kds_s2000w_client_open_session, 0);
-       response* resp_set_option = kds_s2000w_client_response_init();
-       resp_set_option->code = 200;
-       will_return(mock_response, resp_set_option);
-       will_return(__wrap_kds_s2000w_client_set_option, 0);
-       expect_function_call(__wrap_kds_s2000w_client_close_session);
-       expect_function_call(__wrap_kds_s2000w_client_open_session);
-       expect_function_call(__wrap_kds_s2000w_client_set_option);
 
        SANE_Status status = _sane_kds_s2000w_net_read(h, NULL, 0, length);
 
        assert_int_equal(h->read_info->cancel, 0);
-       assert_int_equal(status, SANE_STATUS_CANCELLED);
-       assert_int_equal(h->sessionid, 8154711);
-       assert_int_equal(h->current_scan_status->current_image_number, 1);
-       assert_int_equal(h->current_scan_status->available_images, 0);
-       assert_int_equal(h->current_scan_status->downloaded_images, 0);
-       assert_int_equal(h->current_scan_status->complete_scanned, 0);
-       assert_int_equal(h->current_metadata->pixels_per_line, 0);
-       assert_int_equal(h->current_metadata->lines, 0);
-       assert_int_equal(h->current_metadata->valid, 0);
-       assert_int_equal(h->current_metadata->scanned_all_complete, 0);
        assert_int_equal(h->read_info->scan_started, 0);
-       assert_int_equal(h->read_info->read_size, 0);
-       assert_int_equal(h->read_info->readed_bytes_per_line, 0);
-       assert_int_equal(h->read_info->readed_lines, 0);
-       assert_null(h->jpg_image->data);
-       assert_int_equal(h->jpg_image->size, 0);
-       assert_null(h->pnm_image->data);
-       assert_int_equal(h->pnm_image->size, 0);
+       assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free(length);
        length = NULL;
-       kds_s2000w_client_response_free(resp_open_session);
-       resp_open_session = NULL;
-       kds_s2000w_client_response_free(resp_set_option);
-       resp_set_option = NULL;
        free_handler(h);
        h = NULL;
 }
index 0a46ab509ef4885983b06e135fd87d5cd6c0cce7..609cb63b3234d72c444f33e1e26ef9ce70754216 100644 (file)
@@ -112,13 +112,12 @@ void kds_s2000w_net_get_select_fd()
 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, 1);
-       assert_int_equal(status, SANE_STATUS_GOOD);
+       assert_int_equal(h->read_info->cancel, 0);
+       assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free_handler(h);
        h = NULL;
@@ -451,8 +450,8 @@ 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, 1);
-       assert_int_equal(status, SANE_STATUS_GOOD);
+       assert_int_equal(h->read_info->cancel, 0);
+       assert_int_equal(status, SANE_STATUS_CANCELLED);
 
        free_handler(h);
        h = NULL;