summaryrefslogtreecommitdiffhomepage
path: root/tracker-trackhat/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tracker-trackhat/settings.cpp')
-rw-r--r--tracker-trackhat/settings.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/tracker-trackhat/settings.cpp b/tracker-trackhat/settings.cpp
new file mode 100644
index 00000000..a2fd5c8c
--- /dev/null
+++ b/tracker-trackhat/settings.cpp
@@ -0,0 +1,66 @@
+#include "trackhat.hpp"
+
+namespace trackhat_impl {
+
+trackhat_settings::trackhat_settings() : opts{"tracker-trackhat"}
+{
+}
+
+void setting_receiver::settings_changed()
+{
+ changed = true;
+}
+
+bool setting_receiver::test_and_clear()
+{
+ bool x = true;
+ return changed.compare_exchange_strong(x, false);
+}
+
+} // ns trackhat_impl
+
+void trackhat_camera::set_pt_options()
+{
+ s.min_point_size = t.min_pt_size;
+ s.max_point_size = t.max_pt_size;
+
+ switch (t.model)
+ {
+ default:
+ case model_cap:
+ s.t_MH_x = 0; s.t_MH_y = 0; s.t_MH_z = 0;
+ break;
+ case model_clip_left:
+ case model_mini_clip_left:
+ s.t_MH_x = -135; s.t_MH_y = 0; s.t_MH_z = 0;
+ break;
+ case model_clip_right:
+ case model_mini_clip_right:
+ s.t_MH_x = 135; s.t_MH_y = 0; s.t_MH_z = 0;
+ break;
+ }
+
+ switch (t.model)
+ {
+ default:
+ eval_once(qDebug() << "tracker/trackhat: unknown model");
+ [[fallthrough]];
+ case model_clip_left:
+ case model_clip_right:
+ s.clip_tz = 27; s.clip_ty = 43; s.clip_by = 62; s.clip_bz = 74;
+ break;
+ case model_mini_clip_left:
+ case model_mini_clip_right:
+ s.clip_tz = 13; s.clip_ty = 42; s.clip_by = 60; s.clip_bz = 38;
+ break;
+ case model_cap:
+ s.cap_x = 60; s.cap_y = 90; s.cap_z = 95;
+ break;
+ }
+
+ s.active_model_panel = t.model == model_cap ? 1 : 0;
+ s.enable_point_filter = t.enable_point_filter;
+ s.point_filter_coefficient = *t.point_filter_coefficient;
+
+ s.b->save();
+}