]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
only download by available image
authorBastian Dehn <hhaalo@arcor.de>
Mon, 5 Feb 2024 20:05:43 +0000 (21:05 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 5 Feb 2024 20:05:43 +0000 (21:05 +0100)
src/kds_s2000w_handler.c

index 6496ab5132016cbd968ffaa9426402ca8990f708..1e2d5282ad18d163bdc824a9d53e8a6d8af51550 100644 (file)
@@ -124,7 +124,7 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
        int channels = 1;
 
        if (!current_scan_status.complete_scanned
-               && current_scan_status.available_images == current_scan_status.downloaded_images) {
+               && current_scan_status.downloaded_images == current_scan_status.available_images) {
                resp = kds_s2000w_client_response_init();
                kds_s2000w_client_status_session(state->sessionid, resp);
                printf("response: %s\n", resp->data);
@@ -142,22 +142,31 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
                metadataResp = NULL;
                kds_s2000w_client_response_free(resp);
                resp = NULL;
+               sleep(1);
        }
 
-       if (image.size > 0) {
-               free(image.data);
-               image.data = NULL;
-               image.size = 0;
+       if (current_scan_status.downloaded_images < current_scan_status.available_images) {
+               if (image.size > 0) {
+                       free(image.data);
+                       image.data = NULL;
+                       image.size = 0;
+               }
+               resp = kds_s2000w_client_response_init();
+               kds_s2000w_client_get_image(state->sessionid, current_scan_status.current_image_number, resp);
+               image.size = resp->size;
+               image.data = malloc(sizeof(char) * resp->size);
+               memcpy(image.data, resp->data, resp->size);
+               kds_s2000w_client_response_free(resp);
+               resp = NULL;
+               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);
        }
-       resp = kds_s2000w_client_response_init();
-       kds_s2000w_client_get_image(state->sessionid, current_scan_status.current_image_number, resp);
-       image.size = resp->size;
-       image.data = malloc(sizeof(char) * resp->size);
-       memcpy(image.data, resp->data, resp->size);
-       kds_s2000w_client_response_free(resp);
-       resp = NULL;
-       current_scan_status.downloaded_images++;
-       // TODO delete image
 
        printf("current available images: %i\n", current_scan_status.available_images);
        printf("current downloaded images: %i\n", current_scan_status.downloaded_images);
@@ -171,7 +180,6 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
                return mdata;
        }
 
-       sleep(1);
        resp = kds_s2000w_client_response_init();
        kds_s2000w_client_get_metadata(state->sessionid, image_number, resp);
        if (resp->code != 200) {
@@ -226,6 +234,7 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
        metadata = NULL;
        kds_s2000w_client_response_free(resp);
        resp = NULL;
+       sleep(1);
 
        return mdata;
 }
\ No newline at end of file