From fb1fd251e6a6dc04ed20534d9d1db9fac7aff2c0 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 25 Feb 2024 14:44:34 +0100 Subject: [PATCH] every picture is last frame --- src/kds_s2000w_handler.c | 4 ++-- src/kds_s2000w_net.c | 32 ------------------------- tests/kds_s2000w_net_get_params_tests.c | 2 +- 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 830b7bb..98110a3 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -92,7 +92,7 @@ void _get_current_metadata(handler* h) h->current_metadata->bytes_per_line = h->current_metadata->channels * h->current_metadata->pixels_per_line * h->current_metadata->depth / 8; h->current_metadata->valid = 1; - h->current_metadata->is_last = 0; + h->current_metadata->is_last = 1; metadata = NULL; kds_s2000w_client_response_free(resp); @@ -180,7 +180,7 @@ handler* init_handler() h->current_scan_status->complete_scanned = 0; h->current_metadata->format = 1; h->current_metadata->channels = 3; - h->current_metadata->is_last = 0; + h->current_metadata->is_last = 1; h->current_metadata->size = 0; h->current_metadata->bytes_per_line = 0; h->current_metadata->pixels_per_line = 0; diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index f7fe53f..19dacce 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -125,41 +125,9 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, debug_printf(ALL, "sane_kds_s2000w_net_get_parameters"); handler* h = (handler*) handle; metadata mdata; - memcpy(&mdata, h->current_metadata, sizeof(metadata)); - - if (h->current_metadata->depth == 1) - h->current_metadata->bytes_per_line = h->current_metadata->channels * floor((h->current_metadata->pixels_per_line + 7) / 8); - else - h->current_metadata->bytes_per_line = h->current_metadata->channels * h->current_metadata->pixels_per_line * h->current_metadata->depth / 8; - - params->format = mdata.format; - params->last_frame = mdata.is_last; - params->bytes_per_line = mdata.bytes_per_line; - params->pixels_per_line = mdata.pixels_per_line; - params->lines = mdata.lines; - params->depth = mdata.depth; - if (!h->read_info->scan_started) return SANE_STATUS_GOOD; - if (h->current_metadata->is_last) { - memcpy(&mdata, h->current_metadata, sizeof(metadata)); - - params->format = mdata.format; - params->last_frame = mdata.is_last; - params->bytes_per_line = mdata.bytes_per_line; - params->pixels_per_line = mdata.pixels_per_line; - params->lines = mdata.lines; - params->depth = mdata.depth; - h->current_metadata->is_last = 0; - - h->read_info->read_size = 0; - h->read_info->readed_bytes_per_line = 0; - h->read_info->readed_lines = 0; - - return SANE_STATUS_GOOD; - } - for (int i = 0; i < 10; i++) { sleep(1); kds_s2000w_handler_get_parameters(h); diff --git a/tests/kds_s2000w_net_get_params_tests.c b/tests/kds_s2000w_net_get_params_tests.c index 34f5028..5901a5b 100644 --- a/tests/kds_s2000w_net_get_params_tests.c +++ b/tests/kds_s2000w_net_get_params_tests.c @@ -34,7 +34,7 @@ START_TEST(kds_s2000w_net_get_parameters_with_image_data) ck_assert_int_eq(params.format, 1); ck_assert_int_eq(params.last_frame, 0); - ck_assert_int_eq(params.bytes_per_line, 3240); + ck_assert_int_eq(params.bytes_per_line, 42); ck_assert_int_eq(params.pixels_per_line, 1080); ck_assert_int_eq(params.lines, 100); ck_assert_int_eq(params.depth, 8); -- 2.39.5