summaryrefslogtreecommitdiffhomepage
path: root/tracker-trackhat/camera.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2021-10-16 18:04:56 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-03-29 00:04:47 +0200
commitc2b1db1c6cbbcc58f69abf18ce6b704b6b767bac (patch)
tree1deb32f47ab1d68a4bee6755df4cbc2311467880 /tracker-trackhat/camera.cpp
parentaab125f42116b993b5c03f451cf7fe377c2bc53b (diff)
tracker/trackhat: buffer flush
Diffstat (limited to 'tracker-trackhat/camera.cpp')
-rw-r--r--tracker-trackhat/camera.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/tracker-trackhat/camera.cpp b/tracker-trackhat/camera.cpp
index 1ec3bbe7..10feef47 100644
--- a/tracker-trackhat/camera.cpp
+++ b/tracker-trackhat/camera.cpp
@@ -90,7 +90,7 @@ error:
if (TH_ErrorCode status_ = (x); status_ != TH_SUCCESS) \
{ \
qDebug() << "trackhat: error" \
- << (void*)status_ << "in" << #x; \
+ << (void*)-status_ << "in" << #x; \
error_code = status_; \
goto error; \
} \
@@ -147,6 +147,7 @@ error:
bool trackhat_camera::start(const pt_settings&)
{
int attempts = 0;
+ constexpr int max_attempts = 5;
set_pt_options();
@@ -170,10 +171,18 @@ start:
return true;
error:
stop();
- if (++attempts < 5)
+ switch (error_code)
{
- portable::sleep(100);
- goto start;
+ case TH_ERROR_DEVICE_NOT_DETECTED:
+ case TH_ERROR_CAMERA_SELFT_TEST_FAILD:
+ case TH_ERROR_CAMERA_INTERNAL_BROKEN:
+ break;
+ default:
+ if (attempts++ < max_attempts)
+ {
+ portable::sleep(10);
+ goto start;
+ }
}
return false;
}