h->current_metadata->depth = 0;
h->current_metadata->valid = 0;
h->current_metadata->scanned_all_complete = 0;
+ h->current_metadata->verify = 0;
h->current_metadata->image = NULL;
h->read_info = malloc(sizeof(readinfo));
h->read_info->scan_started = 0;
if (!h->read_info->scan_started)
return SANE_STATUS_INVAL;
- for (int i = 0; i < 10; i++) {
- sleep(1);
- kds_s2000w_handler_get_parameters(handle);
- if (h->current_metadata->valid)
- break;
+ if (h->current_metadata->verify)
+ h->current_metadata->verify++;
+
+ if (!h->current_metadata->verify) {
+ for (int i = 0; i < 10; i++) {
+ sleep(1);
+ kds_s2000w_handler_get_parameters(handle);
+ h->current_metadata->verify = 1;
+ if (h->current_metadata->valid)
+ break;
+ }
}
if (!h->current_metadata->valid)
h->read_info->readed_bytes_per_line = 0;
h->read_info->readed_lines = 0;
+ if (h->current_metadata->verify >= 2)
+ h->current_metadata->verify = 0;
+
debug_printf_int(DEBUG, "format", params->format);
debug_printf_int(DEBUG, "last frame", params->last_frame);
debug_printf_int(DEBUG, "bytes per line", params->bytes_per_line);