]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
refactor get parameters
authorBastian Dehn <hhaalo@arcor.de>
Tue, 6 Feb 2024 15:03:21 +0000 (16:03 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Tue, 6 Feb 2024 15:03:21 +0000 (16:03 +0100)
src/kds_s2000w_handler.c

index 1344bfc0bd8bd50169385727a11e3e85f52a9862..2390b91ac5153bd608e691b176a28b9c6c55d8e8 100644 (file)
@@ -130,7 +130,7 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
                && 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);
+               printf("status response: %s\n", resp->data);
                metadataResp = json_tokener_parse(resp->data);
                metadata = json_object_object_get(metadataResp, "Status");
                mdata_value = json_object_object_get(metadata, "NumImagesScanned");
@@ -148,28 +148,32 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
                sleep(1);
        }
 
-       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);
+       if (current_scan_status.downloaded_images >= current_scan_status.available_images) {
+               mdata.valid = 0;
+               return mdata;
+       }
 
-               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);
+       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);
+
 
        printf("current available images: %i\n", current_scan_status.available_images);
        printf("current downloaded images: %i\n", current_scan_status.downloaded_images);