]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
change read bytes to scan status
authorBastian Dehn <hhaalo@arcor.de>
Fri, 17 Oct 2025 16:48:16 +0000 (18:48 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Fri, 17 Oct 2025 16:48:16 +0000 (18:48 +0200)
src/kds_s2000w_handler.c
src/kds_s2000w_handler.h
src/kds_s2000w_net.c
tests/kds_s2000w_net_read_tests.c
tests/kds_s2000w_net_tests.c

index aa52a747fee6112e5b0e0f19c99019f3a5a31213..92e8d717f6e56bf6c7b45b220564cd78a6d7078d 100644 (file)
@@ -101,7 +101,6 @@ handler* kds_s2000w_handler_init()
 
        h->scanner_config = NULL;
        h->scan_status = malloc(sizeof(scan_status_t));
-       h->read_info = malloc(sizeof(readinfo));
        h->image = malloc(sizeof(imagedata));
        h->coord = malloc(sizeof(coord_t));
 
@@ -112,7 +111,7 @@ handler* kds_s2000w_handler_init()
        h->scan_status->image_number = 1;
        h->scan_status->available_images = 0;
        h->scan_status->downloaded_images = 0;
-       h->read_info->read_size = 0;
+       h->scan_status->read_bytes = 0;
        h->image->size = 0;
        h->image->data = NULL;
        h->coord->offset_x = 0;
@@ -134,8 +133,6 @@ void kds_s2000w_handler_free(handler* h)
        h->scanner_config = NULL;
        free(h->scan_status);
        h->scan_status = NULL;
-       free(h->read_info);
-       h->read_info = NULL;
        free(h->image->data);
        h->image->data = NULL;
        free(h->image);
@@ -159,7 +156,7 @@ void kds_s2000w_handler_reset(handler* h)
        h->scan_status->image_number = 1;
        h->scan_status->available_images = 0;
        h->scan_status->downloaded_images = 0;
-       h->read_info->read_size = 0;
+       h->scan_status->read_bytes = 0;
 }
 
 void kds_s2000w_handler_open(const char* devicename, void** handle)
@@ -295,7 +292,7 @@ void kds_s2000w_handler_get_current_metadata(handler* h, metadata* params)
 {
        kds_s2000w_debug_printf(ALL, "get_current_metadata");
 
-       h->read_info->read_size = 0;
+       h->scan_status->read_bytes = 0;
 
        params->format = 1;
        params->last_frame = 1;
@@ -350,7 +347,7 @@ void kds_s2000w_handler_get_current_metadata(handler* h, metadata* params)
        else
                params->bytes_per_line = channels * params->pixels_per_line * params->depth / 8;
        
-       h->read_info->read_size = _kds_s2000w_handler_find_first_data_byte(h->image);
+       h->scan_status->read_bytes = _kds_s2000w_handler_find_first_data_byte(h->image);
 
        free(mdata);
        mdata = NULL;
index dfa778b852f4ad92c7903a309ab091c2f1319d15..dc12fb27c70a0d0995e7fc9beb136cead1528eb5 100644 (file)
@@ -54,19 +54,15 @@ typedef struct {
        uint8_t image_number;
        uint8_t available_images;
        uint8_t downloaded_images;
+       uint64_t read_bytes;
 } scan_status_t;
 
-typedef struct {
-       uint64_t read_size;
-} readinfo;
-
 typedef struct {
        uint8_t profile;
        uint64_t sessionid;
        uint8_t state;
        json_object* scanner_config;
        scan_status_t* scan_status;
-       readinfo* read_info;
        imagedata* image;
        coord_t* coord;
 } handler;
index 38536b351e7fa415bb659a1b91dd8bf2746d2127..baa873a77270e4ed37ff8185e9d978c5c02864bb 100644 (file)
@@ -192,11 +192,11 @@ SANE_Status sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
 
        handler* h = (handler*) handle;
 
-       *length = h->image->size - h->read_info->read_size;
+       *length = h->image->size - h->scan_status->read_bytes;
        if (*length > max_length)
                *length = max_length;
 
-       if (h->read_info->read_size >= h->image->size) {
+       if (h->scan_status->read_bytes >= h->image->size) {
                free(h->image->data);
                h->image->data = NULL;
                h->image->size = 0;
@@ -206,8 +206,8 @@ SANE_Status sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
        }
 
        const char* image_data = (const char*) h->image->data;
-       memcpy(data, image_data + h->read_info->read_size, *length);
-       h->read_info->read_size += *length;
+       memcpy(data, image_data + h->scan_status->read_bytes, *length);
+       h->scan_status->read_bytes += *length;
        return SANE_STATUS_GOOD;
 }
 
index 47d3977adf5971cc27d995db6a36bad7bdfcd4f9..e75450c340c90b3ab10a5f703e6b21b8a670d5ff 100644 (file)
@@ -51,7 +51,7 @@ void sane_kds_s2000w_net_read_test()
 
        assert_int_equal(*length, 65536);
        assert_memory_equal(dataptr, h->image->data, 65536);
-       assert_int_equal(h->read_info->read_size, 65536);
+       assert_int_equal(h->scan_status->read_bytes, 65536);
 
        free(dataptr);
        dataptr = NULL;
@@ -102,7 +102,7 @@ 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->read_size = 0;
+       h->scan_status->read_bytes = 0;
        h->image->size = 95003;
        h->image->data = malloc(sizeof(char) * 95003);
        char* image = (char*) h->image->data;
@@ -137,7 +137,7 @@ void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
        sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
        sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
 
-       assert_int_equal(h->read_info->read_size, 95003);
+       assert_int_equal(h->scan_status->read_bytes, 95003);
 
        free(dataptr);
        dataptr = NULL;
index 713798e9d70f06ae1bb134f0f2d963d090748bd8..77eca03b9a87a08527a8c11ecb676666ee13b0d6 100644 (file)
@@ -178,7 +178,7 @@ void sane_kds_s2000w_net_get_parameter_color_test()
        assert_int_equal(params->pixels_per_line, 2);
        assert_int_equal(params->lines, 1);
        assert_int_equal(params->depth, 8);
-       assert_int_equal(h->read_info->read_size, 11);
+       assert_int_equal(h->scan_status->read_bytes, 11);
 
        kds_s2000w_handler_free(h);
        h = NULL;
@@ -230,7 +230,7 @@ void sane_kds_s2000w_net_get_parameter_bw_test()
        assert_int_equal(params->pixels_per_line, 2);
        assert_int_equal(params->lines, 1);
        assert_int_equal(params->depth, 1);
-       assert_int_equal(h->read_info->read_size, 7);
+       assert_int_equal(h->scan_status->read_bytes, 7);
 
        kds_s2000w_handler_free(h);
        h = NULL;