From 4469ea9ecf96eb2e0cb7b869831e54f414693c80 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 6 Feb 2024 16:03:21 +0100 Subject: [PATCH] refactor get parameters --- src/kds_s2000w_handler.c | 46 ++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 1344bfc..2390b91 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -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); -- 2.39.5