From: Bastian Dehn Date: Sun, 25 Feb 2024 14:25:15 +0000 (+0100) Subject: add verfy X-Git-Tag: v1.0.0^2~185 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=c9b12ec60363319498f45521dfa31e703e5e989c;p=sane-kds-s2000w-net.git add verfy --- diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 98110a3..abb5b3e 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -188,6 +188,7 @@ handler* init_handler() 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; diff --git a/src/kds_s2000w_handler.h b/src/kds_s2000w_handler.h index ea01fe8..3aa54c8 100644 --- a/src/kds_s2000w_handler.h +++ b/src/kds_s2000w_handler.h @@ -22,6 +22,7 @@ typedef struct { int depth; int valid; int scanned_all_complete; + int verify; void* image; } metadata; diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 19dacce..5e1cd71 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -124,9 +124,14 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, { 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); @@ -138,6 +143,7 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, if (!h->current_metadata->valid) return SANE_STATUS_UNSUPPORTED; + metadata mdata; memcpy(&mdata, h->current_metadata, sizeof(metadata)); params->format = mdata.format; @@ -151,6 +157,8 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, 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);