From: Bastian Dehn Date: Sat, 10 Feb 2024 06:34:20 +0000 (+0100) Subject: skip header to read data X-Git-Tag: v1.0.0^2~308 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=f60ef2ce532f628fa1a07cc8bcaa653628dc75c0;p=sane-kds-s2000w-net.git skip header to read data --- diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 3e34832..c372a2a 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -15,6 +15,24 @@ int scan_started = 0; int readed_bytes_per_line = 0; int readed_lines = 0; +int _sane_kds_s2000w_net_find_first_data_byte(const char* data) +{ + const int header_spaces = 3; + const char space = 0x0a; + int space_count = 0; + int byte_count = 0; + + while(space_count < header_spaces) { + if (data[byte_count] == space) { + space_count++; + } + + byte_count++; + } + + return byte_count; +} + SANE_Status _sane_kds_s2000w_net_init(SANE_Int* version_code, SANE_Auth_Callback authorize) { *version_code = SANE_VERSION_CODE(1, 0, 0); @@ -228,7 +246,12 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, SANE_Int max_length, SANE_Int* length) { printf("is all scanned: %i\n", current_metadata.scanned_all_complete); - char* image_data = (char*) current_metadata.image; + + int skip_header_bytes = _sane_kds_s2000w_net_find_first_data_byte(current_metadata.image); + + if (read_size <= 0) { + read_size += skip_header_bytes; + } if (readed_lines >= current_metadata.lines ) { printf("Image is loaded\n"); @@ -258,7 +281,7 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, } *length = maxlen; - memcpy(data, current_metadata.image + read_size, *length); + memcpy(data, current_metadata.image + skip_header_bytes + read_size, *length); readed_bytes_per_line += *length; read_size += *length;