From f8e661b23f6233d372e6ebaa6b439a2625a26955 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 18 Feb 2024 11:32:28 +0100 Subject: [PATCH] move readed bytes per line into handler --- src/kds_s2000w_net.c | 12 ++++++------ tests/kds_s2000w_net_read_tests.c | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index aa7ee01..e401b9e 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -146,8 +146,8 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, params->lines = read_info.current_metadata.lines; params->depth = read_info.current_metadata.depth; h->read_info.read_size = 0; + h->read_info.readed_bytes_per_line = 0; read_info.readed_lines = 0; - read_info.readed_bytes_per_line = 0; debug_printf_int(DEBUG, "format", params->format); debug_printf_int(DEBUG, "last frame", params->last_frame); @@ -195,17 +195,17 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, } int maxlen = max_length; - 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; + if (read_info.current_metadata.bytes_per_line - h->read_info.readed_bytes_per_line < max_length) + maxlen = read_info.current_metadata.bytes_per_line - h->read_info.readed_bytes_per_line; *length = maxlen; memcpy(data, read_info.current_metadata.image + h->read_info.read_size, *length); - read_info.readed_bytes_per_line += *length; + h->read_info.readed_bytes_per_line += *length; h->read_info.read_size += *length; - if (read_info.readed_bytes_per_line >= read_info.current_metadata.bytes_per_line) { - read_info.readed_bytes_per_line = 0; + if (h->read_info.readed_bytes_per_line >= read_info.current_metadata.bytes_per_line) { + h->read_info.readed_bytes_per_line = 0; read_info.readed_lines++; } diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c index fe45454..baf1efc 100644 --- a/tests/kds_s2000w_net_read_tests.c +++ b/tests/kds_s2000w_net_read_tests.c @@ -79,6 +79,7 @@ START_TEST(sane_kds_s2000w_net_read_test) handler h; h.read_info.cancel = 0; h.read_info.read_size = 0; + h.read_info.readed_bytes_per_line = 0; read_info->current_metadata.format = 0; read_info->current_metadata.lines = 1; read_info->current_metadata.bytes_per_line = 65536; @@ -115,6 +116,7 @@ START_TEST(sane_kds_s2000w_net_read_bytes_per_line_bigger_test) handler h; h.read_info.cancel = 0; h.read_info.read_size = 0; + h.read_info.readed_bytes_per_line = 0; read_info->current_metadata.format = 0; read_info->current_metadata.lines = 1; read_info->current_metadata.bytes_per_line = 95000; -- 2.39.5