]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add implement read rgb with integer
authorBastian Dehn <hhaalo@arcor.de>
Thu, 15 Feb 2024 17:58:22 +0000 (18:58 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 15 Feb 2024 17:58:22 +0000 (18:58 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_tests.c
tests/runtests.c

index c0f665cf5226b4369b793c79badceb9d69f9d5c4..ecb1036ca37c7e21d52c67b9b5392e1c2079ed51 100644 (file)
@@ -193,7 +193,17 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
                maxlen = read_info.current_metadata.bytes_per_line - read_info.readed_bytes_per_line;
 
        *length = maxlen;
-       memcpy(data, read_info.current_metadata.image + read_info.read_size, *length);
+       if (read_info.current_metadata.format == 0) {
+               memcpy(data, read_info.current_metadata.image + read_info.read_size, *length);
+       } else {
+               uint* dataptr = (uint*) data;
+               unsigned char* imageptr = (unsigned char*) read_info.current_metadata.image;
+               int current_length = 0;
+               for (int i = 0; current_length < *length; i++) {
+                       dataptr[i] = imageptr[read_info.read_size + i];
+                       current_length += sizeof(int);
+               }
+       }
 
        read_info.readed_bytes_per_line += *length;
        read_info.read_size += *length;
index e10fe57cc57eadcf08a777a122c628073d9d5414..69f140eaf151cb03036e538bea9840ff12aa9aea 100644 (file)
@@ -152,7 +152,7 @@ START_TEST(sane_kds_s2000w_net_read_rgb_test)
        readinfo* read_info = get_read_info();
        read_info->read_size = 0;
        read_info->current_metadata.format = 1;
-       read_info->current_metadata.lines = 10;
+       read_info->current_metadata.lines = 1;
        read_info->current_metadata.bytes_per_line = 65536;
        char* image = malloc(sizeof(char) * 65539);
        for (int i = 0; i < 3; i++) {
index 3608e25f5ea4ed70b1020cafc4aeff5459ec6e66..731759d1cf51f0fe5d787453bdc5ab556d0b2537 100644 (file)
@@ -14,7 +14,7 @@ Suite* first_tests()
        tcase_add_test(tc_core, sane_kds_s2000w_net_read_all_lines_test);
        tcase_add_test(tc_core, sane_kds_s2000w_net_read_test);
        tcase_add_test(tc_core, sane_kds_s2000w_net_read_bytes_per_line_bigger_test);
-       //tcase_add_test(tc_core, sane_kds_s2000w_net_read_rgb_test);
+       tcase_add_test(tc_core, sane_kds_s2000w_net_read_rgb_test);
 
        suite_add_tcase(suite, tc_core);