summaryrefslogtreecommitdiffhomepage
path: root/tracker-tobii-eyex/tobii-settings.hpp
blob: 49b9cae88793cdb73d86620588ee103f59b9d69e (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", { .1, .05, 1 }},
                        snap_inv_dz {b, "snap-screen-edge-length", { .35, .1, .5 }};
    value<slider_value> acc_speed {b, "acc-speed", { .1, .05, 1 }},
                        acc_dz_len {b, "acc-screen-edge-length", { .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") {}
};