From a81f39dced8f2c2798a1cf98043d6751098ab83d Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Thu, 20 Nov 2025 16:49:02 +0100 Subject: [PATCH] Revert "remove calc byte per line" This reverts commit bfb7ca46e7880dba9a081a789f9c2529f4488de4. --- src/kds_s2000w_handler.c | 14 +++++++++++++- tests/kds_s2000w_net_tests.c | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 10e351f..60a5629 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -108,6 +108,18 @@ blobdata_t* _kds_s2000w_handler_move_image(handler_t* h) return scanner_image; } +uint32_t _kds_s2000w_handler_calc_bytes_per_line(const metadata_t* params) +{ + uint8_t channels = 1; + if (params->format == 1) + channels = 3; + + if (params->depth == 1) + return channels * (params->pixels_per_line + 7) >> 3; + + return channels * params->pixels_per_line * params->depth >> 3; +} + void _kds_s2000w_handler_set_default_metadata(metadata_t* params) { params->format = 0; @@ -368,7 +380,7 @@ void kds_s2000w_handler_get_current_metadata(handler_t* h, metadata_t* params) params->depth = mdata->depth; params->pixels_per_line = mdata->width; params->lines = mdata->height; - params->bytes_per_line = 0; + params->bytes_per_line = _kds_s2000w_handler_calc_bytes_per_line(params); free(mdata); mdata = NULL; diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index 0db9081..1b0b5b8 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -208,7 +208,7 @@ void sane_kds_s2000w_net_get_parameter_color_test() assert_int_equal(status, SANE_STATUS_GOOD); assert_int_equal(params->format, 1); assert_int_equal(params->last_frame, 1); - assert_int_equal(params->bytes_per_line, 0); + assert_int_equal(params->bytes_per_line, 6); assert_int_equal(params->pixels_per_line, 2); assert_int_equal(params->lines, 1); assert_int_equal(params->depth, 8); @@ -260,7 +260,7 @@ void sane_kds_s2000w_net_get_parameter_bw_test() assert_int_equal(status, SANE_STATUS_GOOD); assert_int_equal(params->format, 0); assert_int_equal(params->last_frame, 1); - assert_int_equal(params->bytes_per_line, 0); + assert_int_equal(params->bytes_per_line, 1); assert_int_equal(params->pixels_per_line, 2); assert_int_equal(params->lines, 1); assert_int_equal(params->depth, 1); -- 2.47.3