aboutsummaryrefslogtreecommitdiff
blob: f6a12076cb2dc8cd2b40d92847a0b589c273bc4d (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
#pragma once

/* Number of axes that can be configured. */
#define RELABSD_AXIS_VALID_AXES_COUNT 8
#define RELABSD_AXIS_FLAGS_COUNT 5

/*
 * C enumerations are always int, and the standard does specify that it starts
 * at zero and increases from there, unless otherwise specified in the
 * declaration.
 */
enum relabsd_axis_name
{
   RELABSD_X,
   RELABSD_Y,
   RELABSD_Z,
   RELABSD_RX,
   RELABSD_RY,
   RELABSD_RZ,
   RELABSD_WHEEL,
   RELABSD_MISC,
   RELABSD_UNKNOWN
};

enum relabsd_axis_flag
{
   RELABSD_DIRECT,
   RELABSD_REAL_FUZZ,
   RELABSD_FRAMED,
   RELABSD_NOT_ABS,
   RELABSD_INVERT
};

struct relabsd_axis
{
   int min;
   int max;
   int fuzz;
   int flat;
   int resolution;

   int is_enabled;
   int previous_value;
   int flags[RELABSD_AXIS_FLAGS_COUNT];
   int attributes_were_modified;
   enum relabsd_axis_name convert_to;
};