h->scanner_config = NULL;
h->scan_status = malloc(sizeof(scan_status_t));
- h->read_info = malloc(sizeof(readinfo));
h->image = malloc(sizeof(imagedata));
h->coord = malloc(sizeof(coord_t));
h->scan_status->image_number = 1;
h->scan_status->available_images = 0;
h->scan_status->downloaded_images = 0;
- h->read_info->read_size = 0;
+ h->scan_status->read_bytes = 0;
h->image->size = 0;
h->image->data = NULL;
h->coord->offset_x = 0;
h->scanner_config = NULL;
free(h->scan_status);
h->scan_status = NULL;
- free(h->read_info);
- h->read_info = NULL;
free(h->image->data);
h->image->data = NULL;
free(h->image);
h->scan_status->image_number = 1;
h->scan_status->available_images = 0;
h->scan_status->downloaded_images = 0;
- h->read_info->read_size = 0;
+ h->scan_status->read_bytes = 0;
}
void kds_s2000w_handler_open(const char* devicename, void** handle)
{
kds_s2000w_debug_printf(ALL, "get_current_metadata");
- h->read_info->read_size = 0;
+ h->scan_status->read_bytes = 0;
params->format = 1;
params->last_frame = 1;
else
params->bytes_per_line = channels * params->pixels_per_line * params->depth / 8;
- h->read_info->read_size = _kds_s2000w_handler_find_first_data_byte(h->image);
+ h->scan_status->read_bytes = _kds_s2000w_handler_find_first_data_byte(h->image);
free(mdata);
mdata = NULL;
uint8_t image_number;
uint8_t available_images;
uint8_t downloaded_images;
+ uint64_t read_bytes;
} scan_status_t;
-typedef struct {
- uint64_t read_size;
-} readinfo;
-
typedef struct {
uint8_t profile;
uint64_t sessionid;
uint8_t state;
json_object* scanner_config;
scan_status_t* scan_status;
- readinfo* read_info;
imagedata* image;
coord_t* coord;
} handler;
handler* h = (handler*) handle;
- *length = h->image->size - h->read_info->read_size;
+ *length = h->image->size - h->scan_status->read_bytes;
if (*length > max_length)
*length = max_length;
- if (h->read_info->read_size >= h->image->size) {
+ if (h->scan_status->read_bytes >= h->image->size) {
free(h->image->data);
h->image->data = NULL;
h->image->size = 0;
}
const char* image_data = (const char*) h->image->data;
- memcpy(data, image_data + h->read_info->read_size, *length);
- h->read_info->read_size += *length;
+ memcpy(data, image_data + h->scan_status->read_bytes, *length);
+ h->scan_status->read_bytes += *length;
return SANE_STATUS_GOOD;
}
assert_int_equal(*length, 65536);
assert_memory_equal(dataptr, h->image->data, 65536);
- assert_int_equal(h->read_info->read_size, 65536);
+ assert_int_equal(h->scan_status->read_bytes, 65536);
free(dataptr);
dataptr = NULL;
void sane_kds_s2000w_net_read_bytes_per_line_bigger_test()
{
handler* h = kds_s2000w_handler_init();
- h->read_info->read_size = 0;
+ h->scan_status->read_bytes = 0;
h->image->size = 95003;
h->image->data = malloc(sizeof(char) * 95003);
char* image = (char*) h->image->data;
sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
sane_kds_s2000w_net_read(h, (void*) dataptr, maxlen, length);
- assert_int_equal(h->read_info->read_size, 95003);
+ assert_int_equal(h->scan_status->read_bytes, 95003);
free(dataptr);
dataptr = NULL;
assert_int_equal(params->pixels_per_line, 2);
assert_int_equal(params->lines, 1);
assert_int_equal(params->depth, 8);
- assert_int_equal(h->read_info->read_size, 11);
+ assert_int_equal(h->scan_status->read_bytes, 11);
kds_s2000w_handler_free(h);
h = NULL;
assert_int_equal(params->pixels_per_line, 2);
assert_int_equal(params->lines, 1);
assert_int_equal(params->depth, 1);
- assert_int_equal(h->read_info->read_size, 7);
+ assert_int_equal(h->scan_status->read_bytes, 7);
kds_s2000w_handler_free(h);
h = NULL;