From f99eef18c475df2a4080bc652774e8e9f001037c Mon Sep 17 00:00:00 2001
From: Stanislaw Halik <sthalik@misaki.pl>
Date: Tue, 16 Jan 2018 04:38:04 +0100
Subject: trackmouse: more work

---
 variant/trackmouse/trackmouse-settings.cpp | 110 +++++++++++++++++++++++++++++
 variant/trackmouse/trackmouse.ico          | Bin 0 -> 67134 bytes
 variant/trackmouse/trackmouse.rc           |   2 +
 variant/trackmouse/window.cpp              |   4 ++
 4 files changed, 116 insertions(+)
 create mode 100644 variant/trackmouse/trackmouse-settings.cpp
 create mode 100644 variant/trackmouse/trackmouse.ico
 create mode 100644 variant/trackmouse/trackmouse.rc

diff --git a/variant/trackmouse/trackmouse-settings.cpp b/variant/trackmouse/trackmouse-settings.cpp
new file mode 100644
index 00000000..f889a949
--- /dev/null
+++ b/variant/trackmouse/trackmouse-settings.cpp
@@ -0,0 +1,110 @@
+#include "logic/main-settings.hpp"
+#include "logic/mappings.hpp"
+
+#include "tracker-pt/pt-settings.hpp"
+#include "filter-accela/accela-settings.hpp"
+#include "proto-mouse/mouse-settings.hpp"
+
+#include "options/options.hpp"
+
+#include <QSettings>
+
+using namespace options;
+
+static void force_spline_settings()
+{
+    main_settings main;
+
+    axis_opts** all_axis_opts = main.all_axis_opts;
+    Mappings mappings { all_axis_opts };
+
+    for (unsigned k = 0; k < 6; k++)
+    {
+        Map& map = mappings(k);
+        const QString& prefix = all_axis_opts[k]->prefix();
+
+        const QString& name1 = map.name;
+        const QString& name2 = map.alt_name;
+
+        bundle b = make_bundle(prefix);
+
+        spline_detail::settings s1(b, name1, Axis(k));
+        spline_detail::settings s2(b, name2, Axis(k));
+
+        s1.points = QList<QPointF> { { 180, 180 } };
+        s2.points = QList<QPointF> { { 180, 180 } };
+
+        b->save();
+    }
+}
+
+static void force_main_settings()
+{
+    main_settings s;
+    s.center_at_startup = true;
+    s.tcomp_p = false;
+    s.neck_enable = false;
+
+    module_settings m;
+
+    m.tracker_dll = "PointTracker 1.1";
+    m.protocol_dll = "Mouse";
+    m.filter_dll = "Accela";
+
+    s.b->save();
+    s.b_map->save();
+}
+
+static void force_pt_settings()
+{
+    pt_settings s("tracker-pt");
+
+    enum { Clip = 0 };
+
+    s.active_model_panel = Clip;
+    // XXX TODO trackmouse clip sizes
+
+    s.cam_fps = 60;
+    s.cam_res_x = 640;
+    s.cam_res_y = 480;
+    s.camera_name = "PS3Eye Camera";
+
+    s.min_point_size = 6;
+    s.max_point_size = 15;
+
+    // XXX TODO auto threshold slider position
+    s.auto_threshold = true;
+
+    s.t_MH_x = 0, s.t_MH_y = 0, s.t_MH_z = 0;
+    s.blob_color = pt_color_natural;
+    s.fov = 56;
+    s.dynamic_pose = false;
+
+    s.b->save();
+}
+
+static void force_mouse_settings()
+{
+    mouse_settings s;
+
+    s.Mouse_X = Yaw + 1;
+    s.Mouse_Y = Pitch + 1;
+
+    s.b->save();
+}
+
+static void force_accela_settings()
+{
+    // TODO
+}
+
+void force_trackmouse_settings()
+{
+    group::with_settings_object([](QSettings&) { // batch config save
+       force_main_settings();
+       force_spline_settings();
+       force_pt_settings();
+       force_mouse_settings();
+       force_accela_settings();
+    });
+}
diff --git a/variant/trackmouse/trackmouse.ico b/variant/trackmouse/trackmouse.ico
new file mode 100644
index 00000000..5cac8da1
Binary files /dev/null and b/variant/trackmouse/trackmouse.ico differ
diff --git a/variant/trackmouse/trackmouse.rc b/variant/trackmouse/trackmouse.rc
new file mode 100644
index 00000000..8df1e9b1
--- /dev/null
+++ b/variant/trackmouse/trackmouse.rc
@@ -0,0 +1,2 @@
+#include <windows.h>
+IDI_ICON1               ICON                    "trackmouse.ico"
diff --git a/variant/trackmouse/window.cpp b/variant/trackmouse/window.cpp
index 7566f6ca..73f91c74 100644
--- a/variant/trackmouse/window.cpp
+++ b/variant/trackmouse/window.cpp
@@ -2,6 +2,8 @@
 
 #include <QApplication>
 
+void force_trackmouse_settings();
+
 void window::closeEvent(QCloseEvent* e)
 {
     e->accept();
@@ -13,6 +15,8 @@ window::window() : QMainWindow()
     ui.setupUi(this);
     setAttribute(Qt::WA_QuitOnClose);
 
+    force_trackmouse_settings();
+
     show();
 }
 
-- 
cgit v1.2.3