scan_status current_scan_status;
+void _get_current_scan_status()
+{
+ json_object* status_resp_obj = NULL;
+ json_object* status_obj = NULL;
+ json_object* status_value_obj = NULL;
+
+ resp = kds_s2000w_client_response_init();
+ kds_s2000w_client_status_session(state->sessionid, resp);
+ printf("status response: %s\n", resp->data);
+ 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");
+ 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)
+ current_scan_status.complete_scanned = 1;
+
+ json_object_put(status_resp_obj);
+ status_resp_obj = NULL;
+ kds_s2000w_client_response_free(resp);
+ resp = NULL;
+ sleep(1);
+}
+
current_state* kds_s2000w_handler_open()
{
image.size = 0;
if (!current_scan_status.complete_scanned
&& 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("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");
- current_scan_status.available_images = json_object_get_int(mdata_value);
- mdata_value = NULL;
- mdata_value = json_object_object_get(metadata, "State");
- const char* scanner_state = json_object_get_string(mdata_value);
- if (strcmp(scanner_state, "Scanning") != 0)
- current_scan_status.complete_scanned = 1;
-
- json_object_put(metadataResp);
- metadataResp = NULL;
- kds_s2000w_client_response_free(resp);
- resp = NULL;
- sleep(1);
+ _get_current_scan_status();
}
if (current_scan_status.downloaded_images >= current_scan_status.available_images) {