From: Bastian Dehn Date: Tue, 6 Feb 2024 15:23:26 +0000 (+0100) Subject: fix read image X-Git-Tag: v1.0.0^2~336 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=b69f9421fc35af50aa53e1b6b2ca5d5b46ebbcdb;p=sane-kds-s2000w-net.git fix read image --- diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 2390b91..92920c0 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -168,24 +168,9 @@ metadata kds_s2000w_handler_get_parameters(int image_number) current_scan_status.downloaded_images++; sleep(1); - resp = kds_s2000w_client_response_init(); - kds_s2000w_client_delete_image(state->sessionid, current_scan_status.current_image_number, resp); - kds_s2000w_client_response_free(resp); - resp = NULL; - sleep(1); - - printf("current available images: %i\n", current_scan_status.available_images); printf("current downloaded images: %i\n", current_scan_status.downloaded_images); printf("complete_scanned: %i\n", current_scan_status.complete_scanned); - if (current_scan_status.available_images < image_number) { - mdata_value = NULL; - metadata = NULL; - json_object_put(metadataResp); - metadataResp = NULL; - mdata.valid = 0; - return mdata; - } resp = kds_s2000w_client_response_init(); kds_s2000w_client_get_metadata(state->sessionid, image_number, resp); @@ -243,5 +228,11 @@ metadata kds_s2000w_handler_get_parameters(int image_number) resp = NULL; sleep(1); + resp = kds_s2000w_client_response_init(); + kds_s2000w_client_delete_image(state->sessionid, current_scan_status.current_image_number, resp); + kds_s2000w_client_response_free(resp); + resp = NULL; + sleep(1); + return mdata; } \ No newline at end of file diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index fc9386a..fa31f8c 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -216,15 +216,15 @@ void _sane_kds_s2000w_net_cancel(SANE_Handle handle) SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, SANE_Int max_length, SANE_Int* length) { - printf("current size: %i\n", current_metadata.size); - if (read_size >= current_metadata.size) { + printf("is last: %i\n", current_metadata.is_last); + if (read_size >= current_metadata.is_last) { read_size = 0; return SANE_STATUS_EOF; _sane_kds_s2000w_net_cancel(NULL); } int length_count = 0; - while(length_count < max_length && read_size < current_metadata.size) { + while(length_count < max_length) { if (cancel) { *length = 0; kds_s2000w_handler_stop_scan();