]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
check status for image number
authorBastian Dehn <hhaalo@arcor.de>
Sun, 4 Feb 2024 08:52:28 +0000 (09:52 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 4 Feb 2024 08:52:28 +0000 (09:52 +0100)
src/kds_s2000w_handler.c

index 897ac08424a58532e0370ab05ed869afdb7a6df7..272f757f0da41ffedf421f5986ee506c7f1251b2 100644 (file)
@@ -463,10 +463,27 @@ metadata kds_s2000w_handler_get_parameters(int image_number)
        json_object* metadata = NULL;
        json_object* mdata_value = NULL;
        int channels = 1;
+       int status_image_number = 0;
+
        resp = kds_s2000w_client_response_init();
        kds_s2000w_client_status_session(state->sessionid, resp);
+       metadataResp = json_tokener_parse(resp->data);
+       metadata = json_object_object_get(metadataResp, "Status");
+       mdata_value = json_object_object_get(metadata, "NumImagesScanned");
+       status_image_number = json_object_get_int(mdata_value);
        kds_s2000w_client_response_free(resp);
        resp = NULL;
+
+       if (status_image_number < image_number) {
+               mdata_value = NULL;
+               metadata = NULL;
+               json_object_put(metadataResp);
+               metadataResp = NULL;
+               mdata.valid = 0;
+               return mdata;
+       }
+
+       sleep(1);
        resp = kds_s2000w_client_response_init();
        kds_s2000w_client_get_metadata(state->sessionid, image_number, resp);
        if (resp->code != 200) {