summaryrefslogtreecommitdiff
blob: 2c4ea72169f265ed9485e33729088ea858729d1a (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
#ifndef RELABSD_AXIS_H
#define RELABSD_AXIS_H

/* Number of axes that can be configured. */
#define RELABSD_VALID_AXES_COUNT 8

enum relabsd_axis
{
   RELABSD_X,
   RELABSD_Y,
   RELABSD_Z,
   RELABSD_RX,
   RELABSD_RY,
   RELABSD_RZ,
   RELABSD_WHEEL,
   RELABSD_MISC,
   RELABSD_UNKNOWN
};


/*
 * Gives the relabsd_axis and EV_ABS event code equivalent to an EV_REL event
 * code.
 * If the returned relabsd_axis is RELABSD_UNKNOWN, no value is inserted into
 * 'abs_code'.
 */
enum relabsd_axis relabsd_axis_convert_evdev_rel
(
   unsigned int const rel_code,
   unsigned int * const abs_code
);

/*
 * Returns the EV_REL/EV_ABS equivalent of 'e'.
 * There is no equivalent for RELABSD_UNKNOWN, so 'e' is forbidden from
 * taking this value.
 */
unsigned int relabsd_axis_to_rel (enum relabsd_axis const e);
unsigned int relabsd_axis_to_abs (enum relabsd_axis const e);

/*
 * Returns the relabsd_axis equivalent of a EV_REL/EV_ABS code.
 */
enum relabsd_axis relabsd_axis_from_rel (unsigned int const rel);
enum relabsd_axis relabsd_axis_from_abs (unsigned int const abs);

/*
 * Returns the relabsd_axis whose name is 'name', according to the configuration
 * file syntax.
 * RELABSD_UNKNOWN is returned for any name that didn't match any other
 * possibility.
 */
enum relabsd_axis relabsd_axis_from_name (const char * const name);

/*
 * Gives an string representation of an relabsd_axis.
 * "??" is returned for RELABSD_UNKNOWN.
 * Returned values should be coherent with the configuration file syntax.
 */
char * relabsd_axis_to_name (enum relabsd_axis const e);
#endif