]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
Revert "remove calc byte per line"
authorBastian Dehn <hhaalo@arcor.de>
Thu, 20 Nov 2025 15:49:02 +0000 (16:49 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 20 Nov 2025 15:49:02 +0000 (16:49 +0100)
This reverts commit bfb7ca46e7880dba9a081a789f9c2529f4488de4.

src/kds_s2000w_handler.c
tests/kds_s2000w_net_tests.c

index 10e351fbaef221e1d8de7a21b1a647a47e64c644..60a5629c066c12241eccd12b23d329b8c0c52fb2 100644 (file)
@@ -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;
index 0db9081832b7b19530cd4b755b4ff5d34dfeb2c0..1b0b5b8de44bbbf2c52f030855c9ca63a5878bb9 100644 (file)
@@ -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);