{
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;
- metadata mdata;
if (h->current_metadata->is_last) {
memcpy(&mdata, h->current_metadata, sizeof(metadata));
ck_assert_int_eq(params.format, 1);
ck_assert_int_eq(params.last_frame, 0);
- ck_assert_int_eq(params.bytes_per_line, 42);
+ ck_assert_int_eq(params.bytes_per_line, 3240);
ck_assert_int_eq(params.pixels_per_line, 1080);
ck_assert_int_eq(params.lines, 100);
ck_assert_int_eq(params.depth, 8);