diff options
Diffstat (limited to 'logic/main-settings.hpp')
| -rw-r--r-- | logic/main-settings.hpp | 138 |
1 files changed, 79 insertions, 59 deletions
diff --git a/logic/main-settings.hpp b/logic/main-settings.hpp index 51b729e3..fcd5e745 100644 --- a/logic/main-settings.hpp +++ b/logic/main-settings.hpp @@ -11,87 +11,107 @@ #include <QString> #include "options/options.hpp" #include "api/plugin-api.hpp" - -using namespace options; +#include "spline/axis-opts.hpp" #include "export.hpp" -namespace axis_clamp_opts +enum reltrans_state : int { + reltrans_disabled = 0, + reltrans_enabled = 1, + reltrans_non_center = 2, +}; -} // ns axis-clamp-opts - -struct OTR_LOGIC_EXPORT axis_opts final +enum centering_state : int { - enum max_clamp - { - r180 = 180, - r90 = 90, - r60 = 60, - r45 = 45, - r30 = 30, - r25 = 25, - r20 = 20, - r15 = 15, - r10 = 10, - - t100 = 100, - t30 = 30, - t20 = 20, - t15 = 15, - t10 = 10, - }; - - // note, these two bundles can be the same value with no issues - bundle b_settings_window, b_mapping_window; - value<double> zero; - value<int> src; - value<bool> invert, altp; - value<max_clamp> clamp; - axis_opts(bundle b_settings_window, bundle b_mapping_window, QString pfx, Axis idx); -private: - static inline QString n(QString pfx, QString name); + center_disabled = 0, + center_point = 1, + center_vr360 = 2, + center_roll_compensated = 3, }; +namespace main_settings_impl { + +using namespace options; + struct OTR_LOGIC_EXPORT key_opts { value<QString> keycode, guid; value<int> button; key_opts(bundle b, const QString& name); + key_opts& operator=(const key_opts& x); }; struct OTR_LOGIC_EXPORT module_settings { - bundle b; - value<QString> tracker_dll, filter_dll, protocol_dll; + bundle b { make_bundle("modules") }; + value<QString> tracker_dll { b, "tracker-dll", "pt" }; + value<QString> filter_dll { b, "filter-dll", "accela" }; + value<QString> protocol_dll { b, "protocol-dll", "freetrack" }; module_settings(); }; struct OTR_LOGIC_EXPORT main_settings final { - bundle b, b_map; - axis_opts a_x, a_y, a_z; - axis_opts a_yaw, a_pitch, a_roll; - value<bool> tcomp_p, tcomp_disable_tx, tcomp_disable_ty, tcomp_disable_tz; - value<bool> tcomp_disable_src_yaw, tcomp_disable_src_pitch, tcomp_disable_src_roll; - value<bool> tray_enabled, tray_start; - value<int> camera_yaw, camera_pitch, camera_roll; - value<bool> use_camera_offset_from_centering; - value<bool> center_at_startup; - value<int> center_method; - value<int> neck_y, neck_z; - value<bool> neck_enable; - key_opts key_start_tracking1, key_start_tracking2; - key_opts key_stop_tracking1, key_stop_tracking2; - key_opts key_toggle_tracking1, key_toggle_tracking2; - key_opts key_restart_tracking1, key_restart_tracking2; - key_opts key_center1, key_center2; - key_opts key_toggle1, key_toggle2; - key_opts key_zero1, key_zero2; - key_opts key_toggle_press1, key_toggle_press2; - key_opts key_zero_press1, key_zero_press2; - value<bool> tracklogging_enabled; - value<QString> tracklogging_filename; + bundle b { make_bundle("opentrack-ui") }; + bundle b_map { make_bundle("opentrack-mappings") }; + axis_opts a_x{ "x", TX }, a_y { "y", TY }, a_z { "z", TZ }; + axis_opts a_yaw{ "yaw", Yaw }, a_pitch { "pitch", Pitch }, a_roll { "roll", Roll }; + axis_opts* all_axis_opts[6] { &a_x, &a_y, &a_z, &a_yaw, &a_pitch, &a_roll }; + value<reltrans_state> reltrans_mode { b, "relative-translation-mode", reltrans_disabled }; + + value<bool> reltrans_disable_tx { b, "compensate-translation-disable-x-axis", false }; + value<bool> reltrans_disable_ty { b, "compensate-translation-disable-y-axis", false }; + value<bool> reltrans_disable_tz { b, "compensate-translation-disable-z-axis", false }; + + value<bool> reltrans_disable_src_yaw { b, "compensate-translation-disable-source-yaw", false }; + value<bool> reltrans_disable_src_pitch { b, "compensate-translation-disable-source-pitch", false }; + value<bool> reltrans_disable_src_roll { b, "compensate-translation-disable-source-roll", false }; + + value<bool> tray_enabled { b, "use-system-tray", false }; + value<bool> tray_start { b, "start-in-tray", false }; + + value<bool> center_at_startup { b, "center-at-startup", true }; + value<centering_state> centering_mode { b, "centering-mode", center_roll_compensated }; + value<int> neck_z { b, "neck-depth", 0 }; + value<bool> neck_enable { b, "neck-enable", false }; + + key_opts key_start_tracking1 { b, "start-tracking" }; + key_opts key_start_tracking2 { b, "start-tracking-alt" }; + + key_opts key_stop_tracking1 { b, "stop-tracking" }; + key_opts key_stop_tracking2 { b, "stop-tracking-alt" }; + + key_opts key_toggle_tracking1 { b, "toggle-tracking" }; + key_opts key_toggle_tracking2 { b, "toggle-tracking-alt" }; + + key_opts key_restart_tracking1 { b, "restart-tracking" }; + key_opts key_restart_tracking2 { b, "restart-tracking-alt" }; + + key_opts key_center1 { b, "center" }; + key_opts key_center2 { b, "center-alt" }; + + key_opts key_toggle1 { b, "toggle" }; + key_opts key_toggle2 { b, "toggle-alt" }; + + key_opts key_zero1 { b, "zero" }; + key_opts key_zero2 { b, "zero-alt" }; + + key_opts key_toggle_press1 { b, "toggle-press" }; + key_opts key_toggle_press2 { b, "toggle-press-alt" }; + + key_opts key_zero_press1 { b, "zero-press" }; + key_opts key_zero_press2 { b, "zero-press-alt" }; + + value<bool> tracklogging_enabled { b, "tracklogging-enabled", false }; + value<QString> tracklogging_filename { b, "tracklogging-filename", {} }; + main_settings(); }; + +} // ns main_settings_impl + +using key_opts = main_settings_impl::key_opts; +using module_settings = main_settings_impl::module_settings; +using main_settings = main_settings_impl::main_settings; |
