1 #ifndef ULINUX_INPUT_EVDEV_H
2 #define ULINUX_INPUT_EVDEV_H
3 /*******************************************************************************
4 this code is protected by the GNU affero GPLv3
5 author:Sylvain BERTRAND (sylvain.bertrand AT gmail dot com)
6 *******************************************************************************/
8 /*this is a derived version of linux headers for ulinux*/
10 struct ulinux_input_event
{
11 struct ulinux_timeval time
;
17 struct unlinux_input_id
{
25 struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls
26 @scancode: scancode represented in machine-endian form.
27 @len: length of the scancode that resides in @scancode buffer.
28 @index: index in the keymap, may be used instead of scancode
29 @flags: allows to specify how kernel should handle the request. For
30 example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel
31 should perform lookup in keymap by @index instead of @scancode
32 @keycode: key code assigned to this scancode
34 The structure is used to retrieve and modify keymap data. Users have
35 option of performing lookup either by @scancode itself or by @index
36 in keymap entry. EVIOCGKEYCODE will also return scancode or index
37 (depending on which element was used to perform lookup).
40 struct ulinux_input_keymap_entry
{
41 #define INPUT_KEYMAP_BY_INDEX (1<<0)
46 ulinux_u8 scancode
[32];
49 /*get driver version*/
50 #define ULINUX_EVIOCGVERSION ULINUX_IOR('E',0x01,ulinux_i)
52 #define ULINUX_EVIOCGID ULINUX_IOR('E',0x02,struct ulinux_input_id)
53 /*get repeat settings*/
54 #define ULINUX_EVIOCGREP ULINUX_IOR('E',0x03,ulinux_u[2])
55 /*set repeat settings*/
56 #define ULINUX_EVIOCSREP ULINUX_IOW('E',0x03,ulinux_u[2])
59 #define ULINUX_EVIOCGKEYCODE ULINUX_IOR('E',0x04,ulinux_u[2])
60 #define ULINUX_EVIOCGKEYCODE_V2 ULINUX_IOR('E',0x04,\
61 struct ulinux_input_keymap_entry)
63 #define ULINUX_EVIOCSKEYCODE ULINUX_IOW('E',0x04,unlinux_i[2])
64 #define ULINUX_EVIOCSKEYCODE_V2 ULINUX_IOW('E',0x04,\
65 struct ulinux_input_keymap_entry)
68 #define ULINUX_EVIOCGNAME(len) ULINUX_IOC(ULINUX_IOC_READ,'E',0x06,len)
69 /*get physical location*/
70 #define ULINUX_EVIOCGPHYS(len) ULINUX_IOC(ULINUX_IOC_READ,'E',0x07,len)
71 /*get unique identifier*/
72 #define ULINUX_EVIOCGUNIQ(len) ULINUX_IOC(ULINUX_IOC_READ,'E',0x08,len)
73 /*get device properties*/
74 #define ULINUX_EVIOCGPROP(len) ULINUX_IOC(ULINUX_IOC_READ,'E',0x09,len)
76 #define ULINUX_EVIOCGBIT(ev,len) ULINUX_IOC(ULINUX_IOC_READ,'E',0x20+(ev),len)
78 /*event types bit offsets*/
79 #define ULINUX_EV_SYN 0x00
80 #define ULINUX_EV_KEY 0x01
81 #define ULINUX_EV_REL 0x02
82 #define ULINUX_EV_ABS 0x03
83 #define ULINUX_EV_MSC 0x04
84 #define ULINUX_EV_SW 0x05
85 #define ULINUX_EV_LED 0x11
86 #define ULINUX_EV_SND 0x12
87 #define ULINUX_EV_REP 0x14
88 #define ULINUX_EV_FF 0x15
89 #define ULINUX_EV_PWR 0x16
90 #define ULINUX_EV_FF_STATUS 0x17
91 #define ULINUX_EV_MAX 0x1f
92 #define ULINUX_EV_CNT (ULINUX_EV_MAX+1)
94 /*synchronization events*/
95 #define ULINUX_SYN_REPORT 0
96 #define ULINUX_SYN_CONFIG 1
97 #define ULINUX_SYN_MT_REPORT 2
98 #define ULINUX_SYN_DROPPED 3
103 Most of the keys/buttons are modeled after USB HUT 1.12
104 (see http://www.usb.org/developers/hidpage).
105 Abbreviations in the comments:
106 AC - Application Control
107 AL - Application Launch Button
110 #define ULINUX_KEY_RESERVED 0
111 #define ULINUX_KEY_ESC 1
112 #define ULINUX_KEY_1 2
113 #define ULINUX_KEY_2 3
114 #define ULINUX_KEY_3 4
115 #define ULINUX_KEY_4 5
116 #define ULINUX_KEY_5 6
117 #define ULINUX_KEY_6 7
118 #define ULINUX_KEY_7 8
119 #define ULINUX_KEY_8 9
120 #define ULINUX_KEY_9 10
121 #define ULINUX_KEY_0 11
122 #define ULINUX_KEY_MINUS 12
123 #define ULINUX_KEY_EQUAL 13
124 #define ULINUX_KEY_BACKSPACE 14
125 #define ULINUX_KEY_TAB 15
126 #define ULINUX_KEY_Q 16
127 #define ULINUX_KEY_W 17
128 #define ULINUX_KEY_E 18
129 #define ULINUX_KEY_R 19
130 #define ULINUX_KEY_T 20
131 #define ULINUX_KEY_Y 21
132 #define ULINUX_KEY_U 22
133 #define ULINUX_KEY_I 23
134 #define ULINUX_KEY_O 24
135 #define ULINUX_KEY_P 25
136 #define ULINUX_KEY_LEFTBRACE 26
137 #define ULINUX_KEY_RIGHTBRACE 27
138 #define ULINUX_KEY_ENTER 28
139 #define ULINUX_KEY_LEFTCTRL 29
140 #define ULINUX_KEY_A 30
141 #define ULINUX_KEY_S 31
142 #define ULINUX_KEY_D 32
143 #define ULINUX_KEY_F 33
144 #define ULINUX_KEY_G 34
145 #define ULINUX_KEY_H 35
146 #define ULINUX_KEY_J 36
147 #define ULINUX_KEY_K 37
148 #define ULINUX_KEY_L 38
149 #define ULINUX_KEY_SEMICOLON 39
150 #define ULINUX_KEY_APOSTROPHE 40
151 #define ULINUX_KEY_GRAVE 41
152 #define ULINUX_KEY_LEFTSHIFT 42
153 #define ULINUX_KEY_BACKSLASH 43
154 #define ULINUX_KEY_Z 44
155 #define ULINUX_KEY_X 45
156 #define ULINUX_KEY_C 46
157 #define ULINUX_KEY_V 47
158 #define ULINUX_KEY_B 48
159 #define ULINUX_KEY_N 49
160 #define ULINUX_KEY_M 50
161 #define ULINUX_KEY_COMMA 51
162 #define ULINUX_KEY_DOT 52
163 #define ULINUX_KEY_SLASH 53
164 #define ULINUX_KEY_RIGHTSHIFT 54
165 #define ULINUX_KEY_KPASTERISK 55
166 #define ULINUX_KEY_LEFTALT 56
167 #define ULINUX_KEY_SPACE 57
168 #define ULINUX_KEY_CAPSLOCK 58
169 #define ULINUX_KEY_F1 59
170 #define ULINUX_KEY_F2 60
171 #define ULINUX_KEY_F3 61
172 #define ULINUX_KEY_F4 62
173 #define ULINUX_KEY_F5 63
174 #define ULINUX_KEY_F6 64
175 #define ULINUX_KEY_F7 65
176 #define ULINUX_KEY_F8 66
177 #define ULINUX_KEY_F9 67
178 #define ULINUX_KEY_F10 68
179 #define ULINUX_KEY_NUMLOCK 69
180 #define ULINUX_KEY_SCROLLLOCK 70
181 #define ULINUX_KEY_KP7 71
182 #define ULINUX_KEY_KP8 72
183 #define ULINUX_KEY_KP9 73
184 #define ULINUX_KEY_KPMINUS 74
185 #define ULINUX_KEY_KP4 75
186 #define ULINUX_KEY_KP5 76
187 #define ULINUX_KEY_KP6 77
188 #define ULINUX_KEY_KPPLUS 78
189 #define ULINUX_KEY_KP1 79
190 #define ULINUX_KEY_KP2 80
191 #define ULINUX_KEY_KP3 81
192 #define ULINUX_KEY_KP0 82
193 #define ULINUX_KEY_KPDOT 83
195 #define ULINUX_KEY_ZENKAKUHANKAKU 85
196 #define ULINUX_KEY_102ND 86
197 #define ULINUX_KEY_F11 87
198 #define ULINUX_KEY_F12 88
199 #define ULINUX_KEY_RO 89
200 #define ULINUX_KEY_KATAKANA 90
201 #define ULINUX_KEY_HIRAGANA 91
202 #define ULINUX_KEY_HENKAN 92
203 #define ULINUX_KEY_KATAKANAHIRAGANA 93
204 #define ULINUX_KEY_MUHENKAN 94
205 #define ULINUX_KEY_KPJPCOMMA 95
206 #define ULINUX_KEY_KPENTER 96
207 #define ULINUX_KEY_RIGHTCTRL 97
208 #define ULINUX_KEY_KPSLASH 98
209 #define ULINUX_KEY_SYSRQ 99
210 #define ULINUX_KEY_RIGHTALT 100
211 #define ULINUX_KEY_LINEFEED 101
212 #define ULINUX_KEY_HOME 102
213 #define ULINUX_KEY_UP 103
214 #define ULINUX_KEY_PAGEUP 104
215 #define ULINUX_KEY_LEFT 105
216 #define ULINUX_KEY_RIGHT 106
217 #define ULINUX_KEY_END 107
218 #define ULINUX_KEY_DOWN 108
219 #define ULINUX_KEY_PAGEDOWN 109
220 #define ULINUX_KEY_INSERT 110
221 #define ULINUX_KEY_DELETE 111
222 #define ULINUX_KEY_MACRO 112
223 #define ULINUX_KEY_MUTE 113
224 #define ULINUX_KEY_VOLUMEDOWN 114
225 #define ULINUX_KEY_VOLUMEUP 115
226 #define ULINUX_KEY_POWER 116/*SC System Power Down*/
227 #define ULINUX_KEY_KPEQUAL 117
228 #define ULINUX_KEY_KPPLUSMINUS 118
229 #define ULINUX_KEY_PAUSE 119
230 #define ULINUX_KEY_SCALE 120/*AL Compiz Scale (Expose)*/
232 #define ULINUX_KEY_KPCOMMA 121
233 #define ULINUX_KEY_HANGEUL 122
234 #define ULINUX_KEY_HANGUEL ULINUX_KEY_HANGEUL
235 #define ULINUX_KEY_HANJA 123
236 #define ULINUX_KEY_YEN 124
237 #define ULINUX_KEY_LEFTMETA 125
238 #define ULINUX_KEY_RIGHTMETA 126
239 #define ULINUX_KEY_COMPOSE 127
241 #define ULINUX_KEY_STOP 128/*AC Stop*/
242 #define ULINUX_KEY_AGAIN 129
243 #define ULINUX_KEY_PROPS 130/*AC Properties*/
244 #define ULINUX_KEY_UNDO 131/*AC Undo*/
245 #define ULINUX_KEY_FRONT 132
246 #define ULINUX_KEY_COPY 133/*AC Copy */
247 #define ULINUX_KEY_OPEN 134/*AC Open*/
248 #define ULINUX_KEY_PASTE 135/*AC Paste*/
249 #define ULINUX_KEY_FIND 136/*AC Search*/
250 #define ULINUX_KEY_CUT 137/*AC Cut*/
251 #define ULINUX_KEY_HELP 138/*AL Integrated Help Center*/
252 #define ULINUX_KEY_MENU 139/*Menu (show menu)*/
253 #define ULINUX_KEY_CALC 140/*AL Calculator*/
254 #define ULINUX_KEY_SETUP 141
255 #define ULINUX_KEY_SLEEP 142/*SC System Sleep*/
256 #define ULINUX_KEY_WAKEUP 143/*System Wake Up*/
257 #define ULINUX_KEY_FILE 144/*AL Local Machine Browser*/
258 #define ULINUX_KEY_SENDFILE 145
259 #define ULINUX_KEY_DELETEFILE 146
260 #define ULINUX_KEY_XFER 147
261 #define ULINUX_KEY_PROG1 148
262 #define ULINUX_KEY_PROG2 149
263 #define ULINUX_KEY_WWW 150/*AL Internet Browser*/
264 #define ULINUX_KEY_MSDOS 151
265 #define ULINUX_KEY_COFFEE 152/*AL Terminal Lock/Screensaver*/
266 #define ULINUX_KEY_SCREENLOCK ULINUX_KEY_COFFEE
267 #define ULINUX_KEY_DIRECTION 153
268 #define ULINUX_KEY_CYCLEWINDOWS 154
269 #define ULINUX_KEY_MAIL 155
270 #define ULINUX_KEY_BOOKMARKS 156/*AC Bookmarks*/
271 #define ULINUX_KEY_COMPUTER 157
272 #define ULINUX_KEY_BACK 158/*AC Back*/
273 #define ULINUX_KEY_FORWARD 159/*AC Forward*/
274 #define ULINUX_KEY_CLOSECD 160
275 #define ULINUX_KEY_EJECTCD 161
276 #define ULINUX_KEY_EJECTCLOSECD 162
277 #define ULINUX_KEY_NEXTSONG 163
278 #define ULINUX_KEY_PLAYPAUSE 164
279 #define ULINUX_KEY_PREVIOUSSONG 165
280 #define ULINUX_KEY_STOPCD 166
281 #define ULINUX_KEY_RECORD 167
282 #define ULINUX_KEY_REWIND 168
283 #define ULINUX_KEY_PHONE 169/*Media Select Telephone*/
284 #define ULINUX_KEY_ISO 170
285 #define ULINUX_KEY_CONFIG 171/*AL Consumer Control Configuration*/
286 #define ULINUX_KEY_HOMEPAGE 172/*AC Home*/
287 #define ULINUX_KEY_REFRESH 173/*AC Refresh*/
288 #define ULINUX_KEY_EXIT 174/*AC Exit*/
289 #define ULINUX_KEY_MOVE 175
290 #define ULINUX_KEY_EDIT 176
291 #define ULINUX_KEY_SCROLLUP 177
292 #define ULINUX_KEY_SCROLLDOWN 178
293 #define ULINUX_KEY_KPLEFTPAREN 179
294 #define ULINUX_KEY_KPRIGHTPAREN 180
295 #define ULINUX_KEY_NEW 181/*AC New*/
296 #define ULINUX_KEY_REDO 182/*AC Redo/Repeat*/
298 #define ULINUX_KEY_F13 183
299 #define ULINUX_KEY_F14 184
300 #define ULINUX_KEY_F15 185
301 #define ULINUX_KEY_F16 186
302 #define ULINUX_KEY_F17 187
303 #define ULINUX_KEY_F18 188
304 #define ULINUX_KEY_F19 189
305 #define ULINUX_KEY_F20 190
306 #define ULINUX_KEY_F21 191
307 #define ULINUX_KEY_F22 192
308 #define ULINUX_KEY_F23 193
309 #define ULINUX_KEY_F24 194
311 #define ULINUX_KEY_PLAYCD 200
312 #define ULINUX_KEY_PAUSECD 201
313 #define ULINUX_KEY_PROG3 202
314 #define ULINUX_KEY_PROG4 203
315 #define ULINUX_KEY_DASHBOARD 204/*AL Dashboard*/
316 #define ULINUX_KEY_SUSPEND 205
317 #define ULINUX_KEY_CLOSE 206/*AC Close*/
318 #define ULINUX_KEY_PLAY 207
319 #define ULINUX_KEY_FASTFORWARD 208
320 #define ULINUX_KEY_BASSBOOST 209
321 #define ULINUX_KEY_PRINT 210/*AC Print*/
322 #define ULINUX_KEY_HP 211
323 #define ULINUX_KEY_CAMERA 212
324 #define ULINUX_KEY_SOUND 213
325 #define ULINUX_KEY_QUESTION 214
326 #define ULINUX_KEY_EMAIL 215
327 #define ULINUX_KEY_CHAT 216
328 #define ULINUX_KEY_SEARCH 217
329 #define ULINUX_KEY_CONNECT 218
330 #define ULINUX_KEY_FINANCE 219/*AL Checkbook/Finance*/
331 #define ULINUX_KEY_SPORT 220
332 #define ULINUX_KEY_SHOP 221
333 #define ULINUX_KEY_ALTERASE 222
334 #define ULINUX_KEY_CANCEL 223/*AC Cancel*/
335 #define ULINUX_KEY_BRIGHTNESSDOWN 224
336 #define ULINUX_KEY_BRIGHTNESSUP 225
337 #define ULINUX_KEY_MEDIA 226
339 #define ULINUX_KEY_SWITCHVIDEOMODE 227/*Cycle between available video outputs
340 (Monitor/LCD/TV-out/etc)*/
341 #define ULINUX_KEY_KBDILLUMTOGGLE 228
342 #define ULINUX_KEY_KBDILLUMDOWN 229
343 #define ULINUX_KEY_KBDILLUMUP 230
345 #define ULINUX_KEY_SEND 231/*AC Send*/
346 #define ULINUX_KEY_REPLY 232/*AC Reply*/
347 #define ULINUX_KEY_FORWARDMAIL 233/*AC Forward Msg*/
348 #define ULINUX_KEY_SAVE 234/*AC Save*/
349 #define ULINUX_KEY_DOCUMENTS 235
351 #define ULINUX_KEY_BATTERY 236
353 #define ULINUX_KEY_BLUETOOTH 237
354 #define ULINUX_KEY_WLAN 238
355 #define ULINUX_KEY_UWB 239
357 #define ULINUX_KEY_UNKNOWN 240
359 #define ULINUX_KEY_VIDEO_NEXT 241/*drive next video source*/
360 #define ULINUX_KEY_VIDEO_PREV 242/*drive previous video source*/
361 #define ULINUX_KEY_BRIGHTNESS_CYCLE 243/*brightness up, after max is min*/
362 #define ULINUX_KEY_BRIGHTNESS_ZERO 244/*brightness off, use ambient*/
363 #define ULINUX_KEY_DISPLAY_OFF 245/*display device to off state*/
365 #define ULINUX_KEY_WIMAX 246
366 #define ULINUX_KEY_RFKILL 247/*Key that controls all radios*/
368 #define ULINUX_KEY_MICMUTE 248/*Mute / unmute the microphone*/
370 /*Code 255 is reserved for special needs of AT keyboard driver*/
372 #define ULINUX_BTN_MISC 0x100
373 #define ULINUX_BTN_0 0x100
374 #define ULINUX_BTN_1 0x101
375 #define ULINUX_BTN_2 0x102
376 #define ULINUX_BTN_3 0x103
377 #define ULINUX_BTN_4 0x104
378 #define ULINUX_BTN_5 0x105
379 #define ULINUX_BTN_6 0x106
380 #define ULINUX_BTN_7 0x107
381 #define ULINUX_BTN_8 0x108
382 #define ULINUX_BTN_9 0x109
384 #define ULINUX_BTN_MOUSE 0x110
385 #define ULINUX_BTN_LEFT 0x110
386 #define ULINUX_BTN_RIGHT 0x111
387 #define ULINUX_BTN_MIDDLE 0x112
388 #define ULINUX_BTN_SIDE 0x113
389 #define ULINUX_BTN_EXTRA 0x114
390 #define ULINUX_BTN_FORWARD 0x115
391 #define ULINUX_BTN_BACK 0x116
392 #define ULINUX_BTN_TASK 0x117
394 #define ULINUX_BTN_JOYSTICK 0x120
395 #define ULINUX_BTN_TRIGGER 0x120
396 #define ULINUX_BTN_THUMB 0x121
397 #define ULINUX_BTN_THUMB2 0x122
398 #define ULINUX_BTN_TOP 0x123
399 #define ULINUX_BTN_TOP2 0x124
400 #define ULINUX_BTN_PINKIE 0x125
401 #define ULINUX_BTN_BASE 0x126
402 #define ULINUX_BTN_BASE2 0x127
403 #define ULINUX_BTN_BASE3 0x128
404 #define ULINUX_BTN_BASE4 0x129
405 #define ULINUX_BTN_BASE5 0x12a
406 #define ULINUX_BTN_BASE6 0x12b
407 #define ULINUX_BTN_DEAD 0x12f
409 #define ULINUX_BTN_GAMEPAD 0x130
410 #define ULINUX_BTN_A 0x130
411 #define ULINUX_BTN_B 0x131
412 #define ULINUX_BTN_C 0x132
413 #define ULINUX_BTN_X 0x133
414 #define ULINUX_BTN_Y 0x134
415 #define ULINUX_BTN_Z 0x135
416 #define ULINUX_BTN_TL 0x136
417 #define ULINUX_BTN_TR 0x137
418 #define ULINUX_BTN_TL2 0x138
419 #define ULINUX_BTN_TR2 0x139
420 #define ULINUX_BTN_SELECT 0x13a
421 #define ULINUX_BTN_START 0x13b
422 #define ULINUX_BTN_MODE 0x13c
423 #define ULINUX_BTN_THUMBL 0x13d
424 #define ULINUX_BTN_THUMBR 0x13e
426 #define ULINUX_BTN_DIGI 0x140
427 #define ULINUX_BTN_TOOL_PEN 0x140
428 #define ULINUX_BTN_TOOL_RUBBER 0x141
429 #define ULINUX_BTN_TOOL_BRUSH 0x142
430 #define ULINUX_BTN_TOOL_PENCIL 0x143
431 #define ULINUX_BTN_TOOL_AIRBRUSH 0x144
432 #define ULINUX_BTN_TOOL_FINGER 0x145
433 #define ULINUX_BTN_TOOL_MOUSE 0x146
434 #define ULINUX_BTN_TOOL_LENS 0x147
435 #define ULINUX_BTN_TOOL_QUINTTAP 0x148/*Five fingers on trackpad*/
436 #define ULINUX_BTN_TOUCH 0x14a
437 #define ULINUX_BTN_STYLUS 0x14b
438 #define ULINUX_BTN_STYLUS2 0x14c
439 #define ULINUX_BTN_TOOL_DOUBLETAP 0x14d
440 #define ULINUX_BTN_TOOL_TRIPLETAP 0x14e
441 #define ULINUX_BTN_TOOL_QUADTAP 0x14f/*Four fingers on trackpad*/
443 #define ULINUX_BTN_WHEEL 0x150
444 #define ULINUX_BTN_GEAR_DOWN 0x150
445 #define ULINUX_BTN_GEAR_UP 0x151
447 #define ULINUX_KEY_OK 0x160
448 #define ULINUX_KEY_SELECT 0x161
449 #define ULINUX_KEY_GOTO 0x162
450 #define ULINUX_KEY_CLEAR 0x163
451 #define ULINUX_KEY_POWER2 0x164
452 #define ULINUX_KEY_OPTION 0x165
453 #define ULINUX_KEY_INFO 0x166/*AL OEM Features/Tips/Tutorial*/
454 #define ULINUX_KEY_TIME 0x167
455 #define ULINUX_KEY_VENDOR 0x168
456 #define ULINUX_KEY_ARCHIVE 0x169
457 #define ULINUX_KEY_PROGRAM 0x16a/*Media Select Program Guide*/
458 #define ULINUX_KEY_CHANNEL 0x16b
459 #define ULINUX_KEY_FAVORITES 0x16c
460 #define ULINUX_KEY_EPG 0x16d
461 #define ULINUX_KEY_PVR 0x16e/*Media Select Home*/
462 #define ULINUX_KEY_MHP 0x16f
463 #define ULINUX_KEY_LANGUAGE 0x170
464 #define ULINUX_KEY_TITLE 0x171
465 #define ULINUX_KEY_SUBTITLE 0x172
466 #define ULINUX_KEY_ANGLE 0x173
467 #define ULINUX_KEY_ZOOM 0x174
468 #define ULINUX_KEY_MODE 0x175
469 #define ULINUX_KEY_KEYBOARD 0x176
470 #define ULINUX_KEY_SCREEN 0x177
471 #define ULINUX_KEY_PC 0x178/*Media Select Computer*/
472 #define ULINUX_KEY_TV 0x179/*Media Select TV*/
473 #define ULINUX_KEY_TV2 0x17a/*Media Select Cable*/
474 #define ULINUX_KEY_VCR 0x17b/*Media Select VCR*/
475 #define ULINUX_KEY_VCR2 0x17c/*VCR Plus*/
476 #define ULINUX_KEY_SAT 0x17d/*Media Select Satellite*/
477 #define ULINUX_KEY_SAT2 0x17e
478 #define ULINUX_KEY_CD 0x17f/*Media Select CD*/
479 #define ULINUX_KEY_TAPE 0x180/*Media Select Tape*/
480 #define ULINUX_KEY_RADIO 0x181
481 #define ULINUX_KEY_TUNER 0x182/*Media Select Tuner*/
482 #define ULINUX_KEY_PLAYER 0x183
483 #define ULINUX_KEY_TEXT 0x184
484 #define ULINUX_KEY_DVD 0x185/*Media Select DVD*/
485 #define ULINUX_KEY_AUX 0x186
486 #define ULINUX_KEY_MP3 0x187
487 #define ULINUX_KEY_AUDIO 0x188/*AL Audio Browser*/
488 #define ULINUX_KEY_VIDEO 0x189/*AL Movie Browser*/
489 #define ULINUX_KEY_DIRECTORY 0x18a
490 #define ULINUX_KEY_LIST 0x18b
491 #define ULINUX_KEY_MEMO 0x18c/*Media Select Messages*/
492 #define ULINUX_KEY_CALENDAR 0x18d
493 #define ULINUX_KEY_RED 0x18e
494 #define ULINUX_KEY_GREEN 0x18f
495 #define ULINUX_KEY_YELLOW 0x190
496 #define ULINUX_KEY_BLUE 0x191
497 #define ULINUX_KEY_CHANNELUP 0x192/*Channel Increment*/
498 #define ULINUX_KEY_CHANNELDOWN 0x193/*Channel Decrement*/
499 #define ULINUX_KEY_FIRST 0x194
500 #define ULINUX_KEY_LAST 0x195/*Recall Last*/
501 #define ULINUX_KEY_AB 0x196
502 #define ULINUX_KEY_NEXT 0x197
503 #define ULINUX_KEY_RESTART 0x198
504 #define ULINUX_KEY_SLOW 0x199
505 #define ULINUX_KEY_SHUFFLE 0x19a
506 #define ULINUX_KEY_BREAK 0x19b
507 #define ULINUX_KEY_PREVIOUS 0x19c
508 #define ULINUX_KEY_DIGITS 0x19d
509 #define ULINUX_KEY_TEEN 0x19e
510 #define ULINUX_KEY_TWEN 0x19f
511 #define ULINUX_KEY_VIDEOPHONE 0x1a0/*Media Select Video Phone*/
512 #define ULINUX_KEY_GAMES 0x1a1/*Media Select Games*/
513 #define ULINUX_KEY_ZOOMIN 0x1a2/*AC Zoom In*/
514 #define ULINUX_KEY_ZOOMOUT 0x1a3/*AC Zoom Out*/
515 #define ULINUX_KEY_ZOOMRESET 0x1a4/*AC Zoom*/
516 #define ULINUX_KEY_WORDPROCESSOR 0x1a5/*AL Word Processor*/
517 #define ULINUX_KEY_EDITOR 0x1a6/*AL Text Editor*/
518 #define ULINUX_KEY_SPREADSHEET 0x1a7/*AL Spreadsheet*/
519 #define ULINUX_KEY_GRAPHICSEDITOR 0x1a8/*AL Graphics Editor*/
520 #define ULINUX_KEY_PRESENTATION 0x1a9/*AL Presentation App*/
521 #define ULINUX_KEY_DATABASE 0x1aa/*AL Database App*/
522 #define ULINUX_KEY_NEWS 0x1ab/*AL Newsreader*/
523 #define ULINUX_KEY_VOICEMAIL 0x1ac/*AL Voicemail*/
524 #define ULINUX_KEY_ADDRESSBOOK 0x1ad/*AL Contacts/Address Book*/
525 #define ULINUX_KEY_MESSENGER 0x1ae/*AL Instant Messaging*/
526 #define ULINUX_KEY_DISPLAYTOGGLE 0x1af/*Turn display (LCD) on and off*/
527 #define ULINUX_KEY_SPELLCHECK 0x1b0/*AL Spell Check*/
528 #define ULINUX_KEY_LOGOFF 0x1b1/*AL Logoff*/
530 #define ULINUX_KEY_DOLLAR 0x1b2
531 #define ULINUX_KEY_EURO 0x1b3
533 #define ULINUX_KEY_FRAMEBACK 0x1b4/*Consumer - transport controls*/
534 #define ULINUX_KEY_FRAMEFORWARD 0x1b5
535 #define ULINUX_KEY_CONTEXT_MENU 0x1b6/*GenDesc - system context menu*/
536 #define ULINUX_KEY_MEDIA_REPEAT 0x1b7/*Consumer - transport control*/
537 #define ULINUX_KEY_10CHANNELSUP 0x1b8/*10 channels up (10+)*/
538 #define ULINUX_KEY_10CHANNELSDOWN 0x1b9/*10 channels down (10-)*/
539 #define ULINUX_KEY_IMAGES 0x1ba/*AL Image Browser*/
541 #define ULINUX_KEY_DEL_EOL 0x1c0
542 #define ULINUX_KEY_DEL_EOS 0x1c1
543 #define ULINUX_KEY_INS_LINE 0x1c2
544 #define ULINUX_KEY_DEL_LINE 0x1c3
546 #define ULINUX_KEY_FN 0x1d0
547 #define ULINUX_KEY_FN_ESC 0x1d1
548 #define ULINUX_KEY_FN_F1 0x1d2
549 #define ULINUX_KEY_FN_F2 0x1d3
550 #define ULINUX_KEY_FN_F3 0x1d4
551 #define ULINUX_KEY_FN_F4 0x1d5
552 #define ULINUX_KEY_FN_F5 0x1d6
553 #define ULINUX_KEY_FN_F6 0x1d7
554 #define ULINUX_KEY_FN_F7 0x1d8
555 #define ULINUX_KEY_FN_F8 0x1d9
556 #define ULINUX_KEY_FN_F9 0x1da
557 #define ULINUX_KEY_FN_F10 0x1db
558 #define ULINUX_KEY_FN_F11 0x1dc
559 #define ULINUX_KEY_FN_F12 0x1dd
560 #define ULINUX_KEY_FN_1 0x1de
561 #define ULINUX_KEY_FN_2 0x1df
562 #define ULINUX_KEY_FN_D 0x1e0
563 #define ULINUX_KEY_FN_E 0x1e1
564 #define ULINUX_KEY_FN_F 0x1e2
565 #define ULINUX_KEY_FN_S 0x1e3
566 #define ULINUX_KEY_FN_B 0x1e4
568 #define ULINUX_KEY_BRL_DOT1 0x1f1
569 #define ULINUX_KEY_BRL_DOT2 0x1f2
570 #define ULINUX_KEY_BRL_DOT3 0x1f3
571 #define ULINUX_KEY_BRL_DOT4 0x1f4
572 #define ULINUX_KEY_BRL_DOT5 0x1f5
573 #define ULINUX_KEY_BRL_DOT6 0x1f6
574 #define ULINUX_KEY_BRL_DOT7 0x1f7
575 #define ULINUX_KEY_BRL_DOT8 0x1f8
576 #define ULINUX_KEY_BRL_DOT9 0x1f9
577 #define ULINUX_KEY_BRL_DOT10 0x1fa
579 #define ULINUX_KEY_NUMERIC_0 0x200/*used by phones, remote controls,*/
580 #define ULINUX_KEY_NUMERIC_1 0x201/*and other keypads*/
581 #define ULINUX_KEY_NUMERIC_2 0x202
582 #define ULINUX_KEY_NUMERIC_3 0x203
583 #define ULINUX_KEY_NUMERIC_4 0x204
584 #define ULINUX_KEY_NUMERIC_5 0x205
585 #define ULINUX_KEY_NUMERIC_6 0x206
586 #define ULINUX_KEY_NUMERIC_7 0x207
587 #define ULINUX_KEY_NUMERIC_8 0x208
588 #define ULINUX_KEY_NUMERIC_9 0x209
589 #define ULINUX_KEY_NUMERIC_STAR 0x20a
590 #define ULINUX_KEY_NUMERIC_POUND 0x20b
592 #define ULINUX_KEY_CAMERA_FOCUS 0x210
593 #define ULINUX_KEY_WPS_BUTTON 0x211/*WiFi Protected Setup key*/
595 #define ULINUX_KEY_TOUCHPAD_TOGGLE 0x212/*Request switch touchpad on or off*/
596 #define ULINUX_KEY_TOUCHPAD_ON 0x213
597 #define ULINUX_KEY_TOUCHPAD_OFF 0x214
599 #define ULINUX_KEY_CAMERA_ZOOMIN 0x215
600 #define ULINUX_KEY_CAMERA_ZOOMOUT 0x216
601 #define ULINUX_KEY_CAMERA_UP 0x217
602 #define ULINUX_KEY_CAMERA_DOWN 0x218
603 #define ULINUX_KEY_CAMERA_LEFT 0x219
604 #define ULINUX_KEY_CAMERA_RIGHT 0x21a
606 #define ULINUX_BTN_TRIGGER_HAPPY 0x2c0
607 #define ULINUX_BTN_TRIGGER_HAPPY1 0x2c0
608 #define ULINUX_BTN_TRIGGER_HAPPY2 0x2c1
609 #define ULINUX_BTN_TRIGGER_HAPPY3 0x2c2
610 #define ULINUX_BTN_TRIGGER_HAPPY4 0x2c3
611 #define ULINUX_BTN_TRIGGER_HAPPY5 0x2c4
612 #define ULINUX_BTN_TRIGGER_HAPPY6 0x2c5
613 #define ULINUX_BTN_TRIGGER_HAPPY7 0x2c6
614 #define ULINUX_BTN_TRIGGER_HAPPY8 0x2c7
615 #define ULINUX_BTN_TRIGGER_HAPPY9 0x2c8
616 #define ULINUX_BTN_TRIGGER_HAPPY10 0x2c9
617 #define ULINUX_BTN_TRIGGER_HAPPY11 0x2ca
618 #define ULINUX_BTN_TRIGGER_HAPPY12 0x2cb
619 #define ULINUX_BTN_TRIGGER_HAPPY13 0x2cc
620 #define ULINUX_BTN_TRIGGER_HAPPY14 0x2cd
621 #define ULINUX_BTN_TRIGGER_HAPPY15 0x2ce
622 #define ULINUX_BTN_TRIGGER_HAPPY16 0x2cf
623 #define ULINUX_BTN_TRIGGER_HAPPY17 0x2d0
624 #define ULINUX_BTN_TRIGGER_HAPPY18 0x2d1
625 #define ULINUX_BTN_TRIGGER_HAPPY19 0x2d2
626 #define ULINUX_BTN_TRIGGER_HAPPY20 0x2d3
627 #define ULINUX_BTN_TRIGGER_HAPPY21 0x2d4
628 #define ULINUX_BTN_TRIGGER_HAPPY22 0x2d5
629 #define ULINUX_BTN_TRIGGER_HAPPY23 0x2d6
630 #define ULINUX_BTN_TRIGGER_HAPPY24 0x2d7
631 #define ULINUX_BTN_TRIGGER_HAPPY25 0x2d8
632 #define ULINUX_BTN_TRIGGER_HAPPY26 0x2d9
633 #define ULINUX_BTN_TRIGGER_HAPPY27 0x2da
634 #define ULINUX_BTN_TRIGGER_HAPPY28 0x2db
635 #define ULINUX_BTN_TRIGGER_HAPPY29 0x2dc
636 #define ULINUX_BTN_TRIGGER_HAPPY30 0x2dd
637 #define ULINUX_BTN_TRIGGER_HAPPY31 0x2de
638 #define ULINUX_BTN_TRIGGER_HAPPY32 0x2df
639 #define ULINUX_BTN_TRIGGER_HAPPY33 0x2e0
640 #define ULINUX_BTN_TRIGGER_HAPPY34 0x2e1
641 #define ULINUX_BTN_TRIGGER_HAPPY35 0x2e2
642 #define ULINUX_BTN_TRIGGER_HAPPY36 0x2e3
643 #define ULINUX_BTN_TRIGGER_HAPPY37 0x2e4
644 #define ULINUX_BTN_TRIGGER_HAPPY38 0x2e5
645 #define ULINUX_BTN_TRIGGER_HAPPY39 0x2e6
646 #define ULINUX_BTN_TRIGGER_HAPPY40 0x2e7
648 /*We avoid low common keys in module aliases so they don't get huge.*/
649 #define ULINUX_KEY_MIN_INTERESTING ULINUX_KEY_MUTE
650 #define ULINUX_KEY_MAX 0x2ff
651 #define ULINUX_KEY_CNT (ULINUX_KEY_MAX+1)
653 /*relative axes bit offsets*/
654 #define ULINUX_REL_X 0x00
655 #define ULINUX_REL_Y 0x01
656 #define ULINUX_REL_Z 0x02
657 #define ULINUX_REL_RX 0x03
658 #define ULINUX_REL_RY 0x04
659 #define ULINUX_REL_RZ 0x05
660 #define ULINUX_REL_HWHEEL 0x06
661 #define ULINUX_REL_DIAL 0x07
662 #define ULINUX_REL_WHEEL 0x08
663 #define ULINUX_REL_MISC 0x09
664 #define ULINUX_REL_MAX 0x0f
665 #define ULINUX_REL_CNT (ULINUX_REL_MAX+1)
667 /*Absolute axes bit offsets*/
668 #define ULINUX_ABS_X 0x00
669 #define ULINUX_ABS_Y 0x01
670 #define ULINUX_ABS_Z 0x02
671 #define ULINUX_ABS_RX 0x03
672 #define ULINUX_ABS_RY 0x04
673 #define ULINUX_ABS_RZ 0x05
674 #define ULINUX_ABS_THROTTLE 0x06
675 #define ULINUX_ABS_RUDDER 0x07
676 #define ULINUX_ABS_WHEEL 0x08
677 #define ULINUX_ABS_GAS 0x09
678 #define ULINUX_ABS_BRAKE 0x0a
679 #define ULINUX_ABS_HAT0X 0x10
680 #define ULINUX_ABS_HAT0Y 0x11
681 #define ULINUX_ABS_HAT1X 0x12
682 #define ULINUX_ABS_HAT1Y 0x13
683 #define ULINUX_ABS_HAT2X 0x14
684 #define ULINUX_ABS_HAT2Y 0x15
685 #define ULINUX_ABS_HAT3X 0x16
686 #define ULINUX_ABS_HAT3Y 0x17
687 #define ULINUX_ABS_PRESSURE 0x18
688 #define ULINUX_ABS_DISTANCE 0x19
689 #define ULINUX_ABS_TILT_X 0x1a
690 #define ULINUX_ABS_TILT_Y 0x1b
691 #define ULINUX_ABS_TOOL_WIDTH 0x1c
693 #define ULINUX_ABS_VOLUME 0x20
695 #define ULINUX_ABS_MISC 0x28
697 #define ULINUX_ABS_MT_SLOT 0x2f/*MT slot being modified*/
698 #define ULINUX_ABS_MT_TOUCH_MAJOR 0x30/*Major axis of touching ellipse*/
699 #define ULINUX_ABS_MT_TOUCH_MINOR 0x31/*Minor axis (omit if circular)*/
700 #define ULINUX_ABS_MT_WIDTH_MAJOR 0x32/*Major axis of approaching ellipse*/
701 #define ULINUX_ABS_MT_WIDTH_MINOR 0x33/*Minor axis (omit if circular)*/
702 #define ULINUX_ABS_MT_ORIENTATION 0x34/*Ellipse orientation*/
703 #define ULINUX_ABS_MT_POSITION_X 0x35/*Center X touch position*/
704 #define ULINUX_ABS_MT_POSITION_Y 0x36/*Center Y touch position*/
705 #define ULINUX_ABS_MT_TOOL_TYPE 0x37/*Type of touching device*/
706 #define ULINUX_ABS_MT_BLOB_ID 0x38/*Group a set of packets as a blob*/
707 #define ULINUX_ABS_MT_TRACKING_ID 0x39/*Unique ID of initiated contact*/
708 #define ULINUX_ABS_MT_PRESSURE 0x3a/*Pressure on contact area*/
709 #define ULINUX_ABS_MT_DISTANCE 0x3b/*Contact hover distance*/
710 #define ULINUX_ABS_MT_TOOL_X 0x3c/*Center X tool position*/
711 #define ULINUX_ABS_MT_TOOL_Y 0x3d/*Center Y tool position*/
713 #define ULINUX_ABS_MAX 0x3f
714 #define ULINUX_ABS_CNT (ULINUX_ABS_MAX+1)
716 /*Misc events bit offsets*/
717 #define ULINUX_MSC_SERIAL 0x00
718 #define ULINUX_MSC_PULSELED 0x01
719 #define ULINUX_MSC_GESTURE 0x02
720 #define ULINUX_MSC_RAW 0x03
721 #define ULINUX_MSC_SCAN 0x04
722 #define ULINUX_MSC_MAX 0x07
723 #define ULINUX_MSC_CNT (ULINUX_MSC_MAX+1)
725 /*Switch events bit offsets*/
726 #define ULINUX_SW_LID 0x00/*set = lid shut*/
727 #define ULINUX_SW_TABLET_MODE 0x01/*set = tablet mode*/
728 #define ULINUX_SW_HEADPHONE_INSERT 0x02/*set = inserted*/
729 #define ULINUX_SW_RFKILL_ALL 0x03/*rfkill master switch, type "any"*/
730 /*set = radio enabled*/
731 #define ULINUX_SW_RADIO ULINUX_SW_RFKILL_ALL/*deprecated*/
732 #define ULINUX_SW_MICROPHONE_INSERT 0x04/*set = inserted*/
733 #define ULINUX_SW_DOCK 0x05/*set = plugged into dock*/
734 #define ULINUX_SW_LINEOUT_INSERT 0x06/*set = inserted*/
735 #define ULINUX_SW_JACK_PHYSICAL_INSERT 0x07/*set = mechanical switch set*/
736 #define ULINUX_SW_VIDEOOUT_INSERT 0x08/*set = inserted*/
737 #define ULINUX_SW_CAMERA_LENS_COVER 0x09/*set = lens covered*/
738 #define ULINUX_SW_KEYPAD_SLIDE 0x0a/*set = keypad slide out*/
739 #define ULINUX_SW_FRONT_PROXIMITY 0x0b/*set = front proximity sensor
741 #define ULINUX_SW_ROTATE_LOCK 0x0c/*set = rotate locked/disabled*/
742 #define ULINUX_SW_LINEIN_INSERT 0x0d/*set = inserted*/
743 #define ULINUX_SW_MAX 0x0f
744 #define ULINUX_SW_CNT (ULINUX_SW_MAX+1)
747 #define ULINUX_LED_NUML 0x00
748 #define ULINUX_LED_CAPSL 0x01
749 #define ULINUX_LED_SCROLLL 0x02
750 #define ULINUX_LED_COMPOSE 0x03
751 #define ULINUX_LED_KANA 0x04
752 #define ULINUX_LED_SLEEP 0x05
753 #define ULINUX_LED_SUSPEND 0x06
754 #define ULINUX_LED_MUTE 0x07
755 #define ULINUX_LED_MISC 0x08
756 #define ULINUX_LED_MAIL 0x09
757 #define ULINUX_LED_CHARGING 0x0a
758 #define ULINUX_LED_MAX 0x0f
759 #define ULINUX_LED_CNT (ULINUX_LED_MAX+1)
761 /*Sounds bit offsets*/
762 #define ULINUX_SND_CLICK 0x00
763 #define ULINUX_SND_BELL 0x01
764 #define ULINUX_SND_TONE 0x02
765 #define ULINUX_SND_MAX 0x07
766 #define ULINUX_SND_CNT (ULINUX_SND_MAX+1)
768 /*ff status of a force-feedback effect offset bits*/
769 #define ULINUX_FF_STATUS_STOPPED 0x00
770 #define ULINUX_FF_STATUS_PLAYING 0x01
771 #define ULINUX_FF_STATUS_MAX 0x01
773 /*Force feedback effect types*/
774 #define ULINUX_FF_RUMBLE 0x50
775 #define ULINUX_FF_PERIODIC 0x51
776 #define ULINUX_FF_CONSTANT 0x52
777 #define ULINUX_FF_SPRING 0x53
778 #define ULINUX_FF_FRICTION 0x54
779 #define ULINUX_FF_DAMPER 0x55
780 #define ULINUX_FF_INERTIA 0x56
781 #define ULINUX_FF_RAMP 0x57
783 #define ULINUX_FF_EFFECT_MIN FF_RUMBLE
784 #define ULINUX_FF_EFFECT_MAX FF_RAMP
786 /*Force feedback periodic effect types*/
787 #define ULINUX_FF_SQUARE 0x58
788 #define ULINUX_FF_TRIANGLE 0x59
789 #define ULINUX_FF_SINE 0x5a
790 #define ULINUX_FF_SAW_UP 0x5b
791 #define ULINUX_FF_SAW_DOWN 0x5c
792 #define ULINUX_FF_CUSTOM 0x5d
794 #define ULINUX_FF_WAVEFORM_MIN FF_SQUARE
795 #define ULINUX_FF_WAVEFORM_MAX FF_CUSTOM
797 /*Set ff device properties*/
798 #define ULINUX_FF_GAIN 0x60
799 #define ULINUX_FF_AUTOCENTER 0x61
801 #define ULINUX_FF_MAX 0x7f
802 #define ULINUX_FF_CNT (ULINUX_FF_MAX+1)