{
debug_printf(ALL, "get_current_metadata");
resp = kds_s2000w_client_response_init();
- kds_s2000w_client_get_metadata(h->sessionid, h->current_scan_status.current_image_number, resp);
+ kds_s2000w_client_get_metadata(h->sessionid, h->current_scan_status->current_image_number, resp);
if (resp->code != 200) {
h->current_metadata.valid = 0;
kds_s2000w_client_response_free(resp);
{
debug_printf(ALL, "delete_current_image");
resp = kds_s2000w_client_response_init();
- kds_s2000w_client_delete_image(h->sessionid, h->current_scan_status.current_image_number, resp);
+ kds_s2000w_client_delete_image(h->sessionid, h->current_scan_status->current_image_number, resp);
kds_s2000w_client_response_free(resp);
resp = NULL;
sleep(1);
image.size = 0;
}
resp = kds_s2000w_client_response_init();
- kds_s2000w_client_get_image(h->sessionid, h->current_scan_status.current_image_number, resp);
+ kds_s2000w_client_get_image(h->sessionid, h->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;
- h->current_scan_status.downloaded_images++;
+ h->current_scan_status->downloaded_images++;
sleep(1);
}
status_resp_obj = json_tokener_parse(resp->data);
status_obj = json_object_object_get(status_resp_obj, "Status");
status_value_obj = json_object_object_get(status_obj, "NumImagesScanned");
- h->current_scan_status.available_images = json_object_get_int(status_value_obj);
+ h->current_scan_status->available_images = json_object_get_int(status_value_obj);
status_value_obj = NULL;
status_value_obj = json_object_object_get(status_obj, "State");
const char* scanner_state = json_object_get_string(status_value_obj);
if (strcmp(scanner_state, "Scanning") != 0)
- h->current_scan_status.complete_scanned = 1;
+ h->current_scan_status->complete_scanned = 1;
json_object_put(status_resp_obj);
status_resp_obj = NULL;
h->sessionid = 0;
h->state = NOTCONNECTED;
- h->current_scan_status.current_image_number = 0;
- h->current_scan_status.available_images = 0;
- h->current_scan_status.downloaded_images = 0;
- h->current_scan_status.complete_scanned = 0;
+ h->current_scan_status = malloc(sizeof(scan_status));
+ h->current_scan_status->current_image_number = 0;
+ h->current_scan_status->available_images = 0;
+ h->current_scan_status->downloaded_images = 0;
+ h->current_scan_status->complete_scanned = 0;
h->current_metadata.format = 0;
h->current_metadata.is_last = 0;
h->current_metadata.size = 0;
kds_s2000w_client_response_free(resp);
resp = NULL;
- h->current_scan_status.current_image_number = 1;
- h->current_scan_status.available_images = 0;
- h->current_scan_status.downloaded_images = 0;
- h->current_scan_status.complete_scanned = 0;
+ h->current_scan_status->current_image_number = 1;
+ h->current_scan_status->available_images = 0;
+ h->current_scan_status->downloaded_images = 0;
+ h->current_scan_status->complete_scanned = 0;
h->current_metadata.scanned_all_complete = 0;
return;
}
resp = NULL;
free(image.data);
image.data = NULL;
+ free(h->current_scan_status);
+ h->current_scan_status = NULL;
free(h);
h = NULL;
}
{
debug_printf(ALL, "kds_s2000w_handler_get_parameters");
handler* h = (handler*) handle;
- if (!h->current_scan_status.complete_scanned
- && h->current_scan_status.downloaded_images == h->current_scan_status.available_images) {
+ if (!h->current_scan_status->complete_scanned
+ && h->current_scan_status->downloaded_images == h->current_scan_status->available_images) {
_get_current_scan_status(h);
}
- if (h->current_scan_status.complete_scanned
- && h->current_scan_status.downloaded_images == h->current_scan_status.available_images) {
+ if (h->current_scan_status->complete_scanned
+ && h->current_scan_status->downloaded_images == h->current_scan_status->available_images) {
h->current_metadata.valid = 1;
h->current_metadata.scanned_all_complete = 1;
h->current_metadata.is_last = 1;
return h->current_metadata;
}
- if (h->current_scan_status.downloaded_images >= h->current_scan_status.available_images) {
+ if (h->current_scan_status->downloaded_images >= h->current_scan_status->available_images) {
h->current_metadata.valid = 0;
return h->current_metadata;
}
_download_current_image(h);
_get_current_metadata(h);
_delete_current_image(h);
- h->current_scan_status.current_image_number++;
+ h->current_scan_status->current_image_number++;
return h->current_metadata;
}
\ No newline at end of file