summaryrefslogtreecommitdiffhomepage
path: root/trackmouse/trackmouse-settings.cpp
blob: 45ec36a5f5aa6c45b29b2e3a81ee5e505ccade34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#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.reltrans_mode = reltrans_disabled;
    s.neck_enable = false;

    module_settings m;

    m.tracker_dll = "pt";
    m.protocol_dll = "win32-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 these are Mini Clip Right sizes
    s.clip_by = 60;
    s.clip_bz = 38.2;
    s.clip_ty = 42.2;
    s.clip_tz = 12.6;

    s.cam_fps = 60;
    s.cam_res_x = 640;
    s.cam_res_y = 480;
    s.camera_name = "PS3Eye Camera";

    s.min_point_size = 3.7;
    s.max_point_size = 10;

    // XXX TODO auto threshold slider position
    s.auto_threshold = true;
    s.threshold_slider = slider_value(82., s.threshold_slider->min(), s.threshold_slider->max());

    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()
{
    // XXX TODO
}

static void force_shortcut_settings()
{
    main_settings s;
    s.key_toggle_tracking1.keycode = "Ins";
    s.key_center1.keycode = "PgUp";
    s.key_toggle1.keycode = "PgDown";

    for (key_opts* k : { &s.key_toggle_tracking1, &s.key_center1, &s.key_toggle_press1 })
    {
        k->button = -1;
        k->guid = {};
    }
    s.b->save();
}

void force_trackmouse_settings()
{
   options::globals::with_settings_object([](QSettings&) {
       force_main_settings();
       force_spline_settings();
       force_pt_settings();
       force_mouse_settings();
       force_accela_settings();
       force_shortcut_settings();
   });
}