1706f2543Smrg/*
2706f2543Smrg * Copyright 2008 Red Hat, Inc.
3706f2543Smrg *
4706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5706f2543Smrg * copy of this software and associated documentation files (the "Software")
6706f2543Smrg * to deal in the software without restriction, including without limitation
7706f2543Smrg * on the rights to use, copy, modify, merge, publish, distribute, sub
8706f2543Smrg * license, and/or sell copies of the Software, and to permit persons to whom
9706f2543Smrg * them Software is furnished to do so, subject to the following conditions:
10706f2543Smrg *
11706f2543Smrg * The above copyright notice and this permission notice (including the next
12706f2543Smrg * paragraph) shall be included in all copies or substantial portions of the
13706f2543Smrg * Software.
14706f2543Smrg *
15706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTIBILITY,
17706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
18706f2543Smrg * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER
19706f2543Smrg * IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF OR IN
20706f2543Smrg * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21706f2543Smrg */
22706f2543Smrg
23706f2543Smrg
24706f2543Smrg/* Properties managed by the server. */
25706f2543Smrg
26706f2543Smrg#ifndef _XSERVER_PROPERTIES_H_
27706f2543Smrg#define _XSERVER_PROPERTIES_H_
28706f2543Smrg
29706f2543Smrg/* Type for a 4 byte float. Storage format IEEE 754 in client's default
30706f2543Smrg * byte-ordering. */
31706f2543Smrg#define XATOM_FLOAT "FLOAT"
32706f2543Smrg
33706f2543Smrg/* BOOL. 0 - device disabled, 1 - device enabled */
34706f2543Smrg#define XI_PROP_ENABLED      "Device Enabled"
35706f2543Smrg/* BOOL. If present, device is a virtual XTEST device */
36706f2543Smrg#define XI_PROP_XTEST_DEVICE  "XTEST Device"
37706f2543Smrg
38706f2543Smrg/* Coordinate transformation matrix for absolute input devices
39706f2543Smrg * FLOAT, 9 values in row-major order, coordinates in 0..1 range:
40706f2543Smrg * [c0 c1 c2]   [x]
41706f2543Smrg * [c3 c4 c5] * [y]
42706f2543Smrg * [c6 c7 c8]   [1] */
43706f2543Smrg#define XI_PROP_TRANSFORM "Coordinate Transformation Matrix"
44706f2543Smrg
45706f2543Smrg/* Pointer acceleration properties */
46706f2543Smrg/* INTEGER of any format */
47706f2543Smrg#define ACCEL_PROP_PROFILE_NUMBER "Device Accel Profile"
48706f2543Smrg/* FLOAT, format 32 */
49706f2543Smrg#define ACCEL_PROP_CONSTANT_DECELERATION "Device Accel Constant Deceleration"
50706f2543Smrg/* FLOAT, format 32 */
51706f2543Smrg#define ACCEL_PROP_ADAPTIVE_DECELERATION "Device Accel Adaptive Deceleration"
52706f2543Smrg/* FLOAT, format 32 */
53706f2543Smrg#define ACCEL_PROP_VELOCITY_SCALING "Device Accel Velocity Scaling"
54706f2543Smrg
55706f2543Smrg
56706f2543Smrg/* Axis labels */
57706f2543Smrg#define AXIS_LABEL_PROP "Axis Labels"
58706f2543Smrg
59706f2543Smrg#define AXIS_LABEL_PROP_REL_X           "Rel X"
60706f2543Smrg#define AXIS_LABEL_PROP_REL_Y           "Rel Y"
61706f2543Smrg#define AXIS_LABEL_PROP_REL_Z           "Rel Z"
62706f2543Smrg#define AXIS_LABEL_PROP_REL_RX          "Rel Rotary X"
63706f2543Smrg#define AXIS_LABEL_PROP_REL_RY          "Rel Rotary Y"
64706f2543Smrg#define AXIS_LABEL_PROP_REL_RZ          "Rel Rotary Z"
65706f2543Smrg#define AXIS_LABEL_PROP_REL_HWHEEL      "Rel Horiz Wheel"
66706f2543Smrg#define AXIS_LABEL_PROP_REL_DIAL        "Rel Dial"
67706f2543Smrg#define AXIS_LABEL_PROP_REL_WHEEL       "Rel Vert Wheel"
68706f2543Smrg#define AXIS_LABEL_PROP_REL_MISC        "Rel Misc"
69706f2543Smrg
70706f2543Smrg/*
71706f2543Smrg * Absolute axes
72706f2543Smrg */
73706f2543Smrg
74706f2543Smrg#define AXIS_LABEL_PROP_ABS_X           "Abs X"
75706f2543Smrg#define AXIS_LABEL_PROP_ABS_Y           "Abs Y"
76706f2543Smrg#define AXIS_LABEL_PROP_ABS_Z           "Abs Z"
77706f2543Smrg#define AXIS_LABEL_PROP_ABS_RX          "Abs Rotary X"
78706f2543Smrg#define AXIS_LABEL_PROP_ABS_RY          "Abs Rotary Y"
79706f2543Smrg#define AXIS_LABEL_PROP_ABS_RZ          "Abs Rotary Z"
80706f2543Smrg#define AXIS_LABEL_PROP_ABS_THROTTLE    "Abs Throttle"
81706f2543Smrg#define AXIS_LABEL_PROP_ABS_RUDDER      "Abs Rudder"
82706f2543Smrg#define AXIS_LABEL_PROP_ABS_WHEEL       "Abs Wheel"
83706f2543Smrg#define AXIS_LABEL_PROP_ABS_GAS         "Abs Gas"
84706f2543Smrg#define AXIS_LABEL_PROP_ABS_BRAKE       "Abs Brake"
85706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT0X       "Abs Hat 0 X"
86706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT0Y       "Abs Hat 0 Y"
87706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT1X       "Abs Hat 1 X"
88706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT1Y       "Abs Hat 1 Y"
89706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT2X       "Abs Hat 2 X"
90706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT2Y       "Abs Hat 2 Y"
91706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT3X       "Abs Hat 3 X"
92706f2543Smrg#define AXIS_LABEL_PROP_ABS_HAT3Y       "Abs Hat 3 Y"
93706f2543Smrg#define AXIS_LABEL_PROP_ABS_PRESSURE    "Abs Pressure"
94706f2543Smrg#define AXIS_LABEL_PROP_ABS_DISTANCE    "Abs Distance"
95706f2543Smrg#define AXIS_LABEL_PROP_ABS_TILT_X      "Abs Tilt X"
96706f2543Smrg#define AXIS_LABEL_PROP_ABS_TILT_Y      "Abs Tilt Y"
97706f2543Smrg#define AXIS_LABEL_PROP_ABS_TOOL_WIDTH  "Abs Tool Width"
98706f2543Smrg#define AXIS_LABEL_PROP_ABS_VOLUME      "Abs Volume"
99706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_TOUCH_MAJOR "Abs MT Touch Major"
100706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_TOUCH_MINOR "Abs MT Touch Minor"
101706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_WIDTH_MAJOR "Abs MT Width Major"
102706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_WIDTH_MINOR "Abs MT Width Minor"
103706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_ORIENTATION "Abs MT Orientation"
104706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_POSITION_X  "Abs MT Position X"
105706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_POSITION_Y  "Abs MT Position Y"
106706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_TOOL_TYPE   "Abs MT Tool Type"
107706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_BLOB_ID     "Abs MT Blob ID"
108706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_TRACKING_ID "Abs MT Tracking ID"
109706f2543Smrg#define AXIS_LABEL_PROP_ABS_MT_PRESSURE    "Abs MT Pressure"
110706f2543Smrg#define AXIS_LABEL_PROP_ABS_MISC        "Abs Misc"
111706f2543Smrg
112706f2543Smrg/* Button names */
113706f2543Smrg#define BTN_LABEL_PROP "Button Labels"
114706f2543Smrg
115706f2543Smrg/* Default label */
116706f2543Smrg#define BTN_LABEL_PROP_BTN_UNKNOWN      "Button Unknown"
117706f2543Smrg/* Wheel buttons */
118706f2543Smrg#define BTN_LABEL_PROP_BTN_WHEEL_UP     "Button Wheel Up"
119706f2543Smrg#define BTN_LABEL_PROP_BTN_WHEEL_DOWN   "Button Wheel Down"
120706f2543Smrg#define BTN_LABEL_PROP_BTN_HWHEEL_LEFT  "Button Horiz Wheel Left"
121706f2543Smrg#define BTN_LABEL_PROP_BTN_HWHEEL_RIGHT "Button Horiz Wheel Right"
122706f2543Smrg
123706f2543Smrg/* The following are from linux/input.h */
124706f2543Smrg#define BTN_LABEL_PROP_BTN_0            "Button 0"
125706f2543Smrg#define BTN_LABEL_PROP_BTN_1            "Button 1"
126706f2543Smrg#define BTN_LABEL_PROP_BTN_2            "Button 2"
127706f2543Smrg#define BTN_LABEL_PROP_BTN_3            "Button 3"
128706f2543Smrg#define BTN_LABEL_PROP_BTN_4            "Button 4"
129706f2543Smrg#define BTN_LABEL_PROP_BTN_5            "Button 5"
130706f2543Smrg#define BTN_LABEL_PROP_BTN_6            "Button 6"
131706f2543Smrg#define BTN_LABEL_PROP_BTN_7            "Button 7"
132706f2543Smrg#define BTN_LABEL_PROP_BTN_8            "Button 8"
133706f2543Smrg#define BTN_LABEL_PROP_BTN_9            "Button 9"
134706f2543Smrg
135706f2543Smrg#define BTN_LABEL_PROP_BTN_LEFT         "Button Left"
136706f2543Smrg#define BTN_LABEL_PROP_BTN_RIGHT        "Button Right"
137706f2543Smrg#define BTN_LABEL_PROP_BTN_MIDDLE       "Button Middle"
138706f2543Smrg#define BTN_LABEL_PROP_BTN_SIDE         "Button Side"
139706f2543Smrg#define BTN_LABEL_PROP_BTN_EXTRA        "Button Extra"
140706f2543Smrg#define BTN_LABEL_PROP_BTN_FORWARD      "Button Forward"
141706f2543Smrg#define BTN_LABEL_PROP_BTN_BACK         "Button Back"
142706f2543Smrg#define BTN_LABEL_PROP_BTN_TASK         "Button Task"
143706f2543Smrg
144706f2543Smrg#define BTN_LABEL_PROP_BTN_TRIGGER      "Button Trigger"
145706f2543Smrg#define BTN_LABEL_PROP_BTN_THUMB        "Button Thumb"
146706f2543Smrg#define BTN_LABEL_PROP_BTN_THUMB2       "Button Thumb2"
147706f2543Smrg#define BTN_LABEL_PROP_BTN_TOP          "Button Top"
148706f2543Smrg#define BTN_LABEL_PROP_BTN_TOP2         "Button Top2"
149706f2543Smrg#define BTN_LABEL_PROP_BTN_PINKIE       "Button Pinkie"
150706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE         "Button Base"
151706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE2        "Button Base2"
152706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE3        "Button Base3"
153706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE4        "Button Base4"
154706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE5        "Button Base5"
155706f2543Smrg#define BTN_LABEL_PROP_BTN_BASE6        "Button Base6"
156706f2543Smrg#define BTN_LABEL_PROP_BTN_DEAD         "Button Dead"
157706f2543Smrg
158706f2543Smrg#define BTN_LABEL_PROP_BTN_A            "Button A"
159706f2543Smrg#define BTN_LABEL_PROP_BTN_B            "Button B"
160706f2543Smrg#define BTN_LABEL_PROP_BTN_C            "Button C"
161706f2543Smrg#define BTN_LABEL_PROP_BTN_X            "Button X"
162706f2543Smrg#define BTN_LABEL_PROP_BTN_Y            "Button Y"
163706f2543Smrg#define BTN_LABEL_PROP_BTN_Z            "Button Z"
164706f2543Smrg#define BTN_LABEL_PROP_BTN_TL           "Button T Left"
165706f2543Smrg#define BTN_LABEL_PROP_BTN_TR           "Button T Right"
166706f2543Smrg#define BTN_LABEL_PROP_BTN_TL2          "Button T Left2"
167706f2543Smrg#define BTN_LABEL_PROP_BTN_TR2          "Button T Right2"
168706f2543Smrg#define BTN_LABEL_PROP_BTN_SELECT       "Button Select"
169706f2543Smrg#define BTN_LABEL_PROP_BTN_START        "Button Start"
170706f2543Smrg#define BTN_LABEL_PROP_BTN_MODE         "Button Mode"
171706f2543Smrg#define BTN_LABEL_PROP_BTN_THUMBL       "Button Thumb Left"
172706f2543Smrg#define BTN_LABEL_PROP_BTN_THUMBR       "Button Thumb Right"
173706f2543Smrg
174706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_PEN             "Button Tool Pen"
175706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_RUBBER          "Button Tool Rubber"
176706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_BRUSH           "Button Tool Brush"
177706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_PENCIL          "Button Tool Pencil"
178706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_AIRBRUSH        "Button Tool Airbrush"
179706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_FINGER          "Button Tool Finger"
180706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_MOUSE           "Button Tool Mouse"
181706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_LENS            "Button Tool Lens"
182706f2543Smrg#define BTN_LABEL_PROP_BTN_TOUCH                "Button Touch"
183706f2543Smrg#define BTN_LABEL_PROP_BTN_STYLUS               "Button Stylus"
184706f2543Smrg#define BTN_LABEL_PROP_BTN_STYLUS2              "Button Stylus2"
185706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_DOUBLETAP       "Button Tool Doubletap"
186706f2543Smrg#define BTN_LABEL_PROP_BTN_TOOL_TRIPLETAP       "Button Tool Tripletap"
187706f2543Smrg
188706f2543Smrg#define BTN_LABEL_PROP_BTN_GEAR_DOWN            "Button Gear down"
189706f2543Smrg#define BTN_LABEL_PROP_BTN_GEAR_UP              "Button Gear up"
190706f2543Smrg
191706f2543Smrg#endif
192