From 4c9d5527a3554d04a0e3bf7bcc01282356031f24 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Fri, 17 Oct 2025 18:48:16 +0200 Subject: [PATCH] change read bytes to scan status --- src/kds_s2000w_handler.c | 11 ++++------- src/kds_s2000w_handler.h | 6 +----- src/kds_s2000w_net.c | 8 ++++---- tests/kds_s2000w_net_read_tests.c | 6 +++--- tests/kds_s2000w_net_tests.c | 4 ++-- 5 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index aa52a74..92e8d71 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -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; diff --git a/src/kds_s2000w_handler.h b/src/kds_s2000w_handler.h index dfa778b..dc12fb2 100644 --- a/src/kds_s2000w_handler.h +++ b/src/kds_s2000w_handler.h @@ -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; diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 38536b3..baa873a 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -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; } diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c index 47d3977..e75450c 100644 --- a/tests/kds_s2000w_net_read_tests.c +++ b/tests/kds_s2000w_net_read_tests.c @@ -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; diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 713798e..77eca03 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -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; -- 2.47.3