return byte_count;
}
+int _sane_kds_s2000w_net_get_max_length(int max_length) {
+ while (max_length % 3 != 0) {
+ max_length--;
+ }
+
+ return max_length;
+}
+
SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize)
{
*version_code = SANE_VERSION_CODE(1, 0, 0);
read_size += skip_header_bytes;
}
- if (readed_lines >= current_metadata.lines ) {
+ if (readed_lines >= current_metadata.lines) {
printf("Image is loaded\n");
read_size = 0;
*length = 0;
return SANE_STATUS_CANCELLED;
}
-
int maxlen = 0;
if (current_metadata.bytes_per_line < max_length) {
maxlen = current_metadata.bytes_per_line - readed_bytes_per_line;
maxlen = max_length - readed_bytes_per_line;
}
+ if (current_metadata.format == 1)
+ maxlen = _sane_kds_s2000w_net_get_max_length(maxlen);
+
*length = maxlen;
memcpy(data, current_metadata.image + skip_header_bytes + read_size, *length);