summaryrefslogtreecommitdiffhomepage
path: root/tracker-tobii-eyex/tobii-settings.hpp
blob: cfdfa65c5565a028a890d00eb4e240d99b8c3b21 (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
#pragma once

#include "options/options.hpp"
using namespace options;

enum tobii_mode
{
    tobii_snap = 0xf00d,
    tobii_acc = 0xacc,
};

enum max_yaw
{
    y10, y15, y20, y30, y45,
};

enum max_pitch
{
    p10, p15, p25, p35,
};

struct settings final : public opts
{
    value<tobii_mode> mode { b, "mode", tobii_snap };

    value<slider_value> snap_speed { b, "snap-speed", slider_value(.1, .05, 1) },
                        snap_inv_dz { b, "snap-screen-edge-length", slider_value(.35, .1, .5) };
    value<slider_value> acc_speed { b, "acc-speed", slider_value(.1, .05, 1) },
                        acc_dz_len { b, "acc-screen-edge-length", slider_value(.1, .1, 1) };
    value<max_yaw> snap_yaw { b, "snap-max-yaw", y20 },
                   acc_yaw { b, "acc-max-yaw", y20 };
    value<max_pitch> snap_pitch { b, "snap-max-pitch", p15 },
                     acc_pitch { b, "acc-max-pitch", p15 };

    settings() : opts("tobii-eyex") {}
};