From a1e506fa5ea6b99557820d54e66992353e29e2de Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 11 Feb 2024 20:49:12 +0100 Subject: [PATCH] move current metadata to read info --- src/kds_s2000w_net.c | 41 ++++++++++++++---------------------- tests/kds_s2000w_net_tests.c | 21 ++++++++---------- 2 files changed, 25 insertions(+), 37 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 5aa1597..3323eff 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -24,15 +24,6 @@ readinfo* get_read_info() return &read_info; } -[[deprecated("use reade_info instead")]] -metadata current_metadata; - -[[deprecated("use reade_info instead")]] -metadata* get_current_metadata() -{ - return ¤t_metadata; -} - int _sane_kds_s2000w_net_find_first_data_byte(const char* data) { const int header_spaces = 3; @@ -223,22 +214,22 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, printf("get parameters 2\n"); for (int i = 0; i < 10; i++) { sleep(1); - current_metadata = kds_s2000w_handler_get_parameters(); - printf("valid %i\n", current_metadata.valid); - if (current_metadata.valid) + read_info.current_metadata = kds_s2000w_handler_get_parameters(); + printf("valid %i\n", read_info.current_metadata.valid); + if (read_info.current_metadata.valid) break; } printf("get parameters 3\n"); - if (!current_metadata.valid) + if (!read_info.current_metadata.valid) return SANE_STATUS_UNSUPPORTED; - params->format = current_metadata.format; - params->last_frame = current_metadata.is_last; - params->bytes_per_line = current_metadata.bytes_per_line; - params->pixels_per_line = current_metadata.pixels_per_line; - params->lines = current_metadata.lines; - params->depth = current_metadata.depth; + params->format = read_info.current_metadata.format; + params->last_frame = read_info.current_metadata.is_last; + params->bytes_per_line = read_info.current_metadata.bytes_per_line; + params->pixels_per_line = read_info.current_metadata.pixels_per_line; + params->lines = read_info.current_metadata.lines; + params->depth = read_info.current_metadata.depth; read_info.read_size = 0; read_info.readed_lines = 0; read_info.readed_bytes_per_line = 0; @@ -271,27 +262,27 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, return SANE_STATUS_CANCELLED; } - int skip_header_bytes = _sane_kds_s2000w_net_find_first_data_byte(current_metadata.image); + int skip_header_bytes = _sane_kds_s2000w_net_find_first_data_byte(read_info.current_metadata.image); if (read_info.read_size <= 0) read_info.read_size += skip_header_bytes; - if (read_info.readed_lines >= current_metadata.lines) { + if (read_info.readed_lines >= read_info.current_metadata.lines) { *length = 0; read_info.readed_lines = 0; return SANE_STATUS_EOF; } int maxlen = max_length; - if (current_metadata.bytes_per_line - read_info.readed_bytes_per_line < max_length) - maxlen = current_metadata.bytes_per_line - read_info.readed_bytes_per_line; + if (read_info.current_metadata.bytes_per_line - read_info.readed_bytes_per_line < max_length) + maxlen = read_info.current_metadata.bytes_per_line - read_info.readed_bytes_per_line; *length = maxlen; - memcpy(data, current_metadata.image + read_info.read_size, *length); + memcpy(data, read_info.current_metadata.image + read_info.read_size, *length); read_info.readed_bytes_per_line += *length; read_info.read_size += *length; - if (read_info.readed_bytes_per_line >= current_metadata.bytes_per_line) { + if (read_info.readed_bytes_per_line >= read_info.current_metadata.bytes_per_line) { read_info.readed_bytes_per_line = 0; read_info.readed_lines++; } diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 3928806..28f355e 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -48,16 +48,15 @@ START_TEST(sane_kds_s2000w_net_read_all_lines_test) { readinfo* read_info = get_read_info(); read_info->cancel = 0; - metadata* current_metadata_ptr = get_current_metadata(); read_info->read_size = 0; char* image = malloc(sizeof(char) * 53); for (int i = 0; i < 3; i++) { image[i] = 0x0a; } image[4] = 0xff; - current_metadata_ptr->image = image; - current_metadata_ptr->bytes_per_line = 10; - current_metadata_ptr->lines = 5; + read_info->current_metadata.image = image; + read_info->current_metadata.bytes_per_line = 10; + read_info->current_metadata.lines = 5; int* length = malloc(sizeof(int)); *length = 0; @@ -85,16 +84,15 @@ END_TEST START_TEST(sane_kds_s2000w_net_read_test) { readinfo* read_info = get_read_info(); - metadata* current_metadata_ptr = get_current_metadata(); read_info->read_size = 0; - current_metadata_ptr->lines = 1; - current_metadata_ptr->bytes_per_line = 65536; + read_info->current_metadata.lines = 1; + read_info->current_metadata.bytes_per_line = 65536; char* image = malloc(sizeof(char) * 65539); for (int i = 0; i < 3; i++) { image[i] = 0x0a; } image[4] = 0xff; - current_metadata_ptr->image = image; + read_info->current_metadata.image = image; SANE_Int maxlen = 65536; char* dataptr = malloc(sizeof(char) * maxlen); @@ -120,15 +118,14 @@ START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test) { readinfo* read_info = get_read_info(); read_info->read_size = 0; - metadata* current_metadata_ptr = get_current_metadata(); - current_metadata_ptr->lines = 1; - current_metadata_ptr->bytes_per_line = 95000; + read_info->current_metadata.lines = 1; + read_info->current_metadata.bytes_per_line = 95000; char* image = malloc(sizeof(char) * 95003); for (int i = 0; i < 3; i++) { image[i] = 0x0a; } image[4] = 0xff; - current_metadata_ptr->image = image; + read_info->current_metadata.image = image; SANE_Int maxlen = 65536; char* dataptr = malloc(sizeof(char) * maxlen); -- 2.39.5