h->current_metadata->depth = 8;
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->scan_started = 0;
h->read_info->cancel = 0;
{
debug_printf(ALL, "sane_kds_s2000w_net_get_parameters");
handler* h = (handler*) handle;
- metadata mdata;
+
if (!h->read_info->scan_started)
+ return SANE_STATUS_INVAL;
+
+ if (h->current_metadata->verify > 0) {
+ h->current_metadata->verify--;
return SANE_STATUS_GOOD;
+ }
for (int i = 0; i < 10; i++) {
sleep(1);
if (!h->current_metadata->valid)
return SANE_STATUS_UNSUPPORTED;
+ metadata mdata;
memcpy(&mdata, h->current_metadata, sizeof(metadata));
params->format = mdata.format;
h->read_info->readed_bytes_per_line = 0;
h->read_info->readed_lines = 0;
+ h->current_metadata->verify = 1;
+
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);