mouse_keyboard_input/
key_codes.rs

1pub const INPUT_PROP_POINTER:        u16 = 0x00; /* needs a pointer */
2pub const INPUT_PROP_DIRECT:         u16 = 0x01; /* direct input devices */
3pub const INPUT_PROP_BUTTONPAD:      u16 = 0x02; /* has button: u16 = s under pad */
4pub const INPUT_PROP_SEMI_MT:        u16 = 0x03; /* touch rectangle only */
5pub const INPUT_PROP_TOPBUTTONPAD:   u16 = 0x04; /* softbuttons at top of pad */
6pub const INPUT_PROP_POINTING_STICK: u16 = 0x05; /* is a pointing stick */
7pub const INPUT_PROP_ACCELEROMETER:  u16 = 0x06; /* has accelerometer */
8
9pub const INPUT_PROP_MAX: u16 = 0x1f;
10pub const INPUT_PROP_CNT: u16 = INPUT_PROP_MAX + 1;
11
12/*
13 * Event types
14 */
15
16pub const EV_SYN:       u16 = 0x00;
17pub const EV_KEY:       u16 = 0x01;
18pub const EV_REL:       u16 = 0x02;
19pub const EV_ABS:       u16 = 0x03;
20pub const EV_MSC:       u16 = 0x04;
21pub const EV_SW:        u16 = 0x05;
22pub const EV_LED:       u16 = 0x11;
23pub const EV_SND:       u16 = 0x12;
24pub const EV_REP:       u16 = 0x14;
25pub const EV_FF:        u16 = 0x15;
26pub const EV_PWR:       u16 = 0x16;
27pub const EV_FF_STATUS: u16 = 0x17;
28pub const EV_MAX:       u16 = 0x1f;
29pub const EV_CNT:       u16 = EV_MAX + 1;
30
31/*
32 * Synchronization events.
33 */
34
35pub const SYN_REPORT:    u16 = 0;
36pub const SYN_CONFIG:    u16 = 1;
37pub const SYN_MT_REPORT: u16 = 2;
38pub const SYN_DROPPED:   u16 = 3;
39pub const SYN_MAX:       u16 = 0xf;
40pub const SYN_CNT:       u16 = SYN_MAX + 1;
41
42/*
43 * Keys and buttons
44 *
45 * Most of the keys/buttons are modeled after USB HUT 1.12 (see
46 * http://www.usb.org/developers/hidpage).
47 * Abbreviations in the comments:
48 * AC - Application Control
49 * AL - Application Launch Button
50 * SC - System Control
51 */
52
53pub const KEY_RESERVED:   u16 = 0;
54pub const KEY_ESC:        u16 = 1;
55pub const KEY_1:          u16 = 2;
56pub const KEY_2:          u16 = 3;
57pub const KEY_3:          u16 = 4;
58pub const KEY_4:          u16 = 5;
59pub const KEY_5:          u16 = 6;
60pub const KEY_6:          u16 = 7;
61pub const KEY_7:          u16 = 8;
62pub const KEY_8:          u16 = 9;
63pub const KEY_9:          u16 = 10;
64pub const KEY_10:         u16 = 11;
65pub const KEY_MINUS:      u16 = 12;
66pub const KEY_EQUAL:      u16 = 13;
67pub const KEY_BACKSPACE:  u16 = 14;
68pub const KEY_TAB:        u16 = 15;
69pub const KEY_Q:          u16 = 16;
70pub const KEY_W:          u16 = 17;
71pub const KEY_E:          u16 = 18;
72pub const KEY_R:          u16 = 19;
73pub const KEY_T:          u16 = 20;
74pub const KEY_Y:          u16 = 21;
75pub const KEY_U:          u16 = 22;
76pub const KEY_I:          u16 = 23;
77pub const KEY_O:          u16 = 24;
78pub const KEY_P:          u16 = 25;
79pub const KEY_LEFTBRACE:  u16 = 26;
80pub const KEY_RIGHTBRACE: u16 = 27;
81pub const KEY_ENTER:      u16 = 28;
82pub const KEY_LEFTCTRL:   u16 = 29;
83pub const KEY_A:          u16 = 30;
84pub const KEY_S:          u16 = 31;
85pub const KEY_D:          u16 = 32;
86pub const KEY_F:          u16 = 33;
87pub const KEY_G:          u16 = 34;
88pub const KEY_H:          u16 = 35;
89pub const KEY_J:          u16 = 36;
90pub const KEY_K:          u16 = 37;
91pub const KEY_L:          u16 = 38;
92pub const KEY_SEMICOLON:  u16 = 39;
93pub const KEY_APOSTROPHE: u16 = 40;
94pub const KEY_GRAVE:      u16 = 41;
95pub const KEY_LEFTSHIFT:  u16 = 42;
96pub const KEY_BACKSLASH:  u16 = 43;
97pub const KEY_Z:          u16 = 44;
98pub const KEY_X:          u16 = 45;
99pub const KEY_C:          u16 = 46;
100pub const KEY_V:          u16 = 47;
101pub const KEY_B:          u16 = 48;
102pub const KEY_N:          u16 = 49;
103pub const KEY_M:          u16 = 50;
104pub const KEY_COMMA:      u16 = 51;
105pub const KEY_DOT:        u16 = 52;
106pub const KEY_SLASH:      u16 = 53;
107pub const KEY_RIGHTSHIFT: u16 = 54;
108pub const KEY_KPASTERISK: u16 = 55;
109pub const KEY_LEFTALT:    u16 = 56;
110pub const KEY_SPACE:      u16 = 57;
111pub const KEY_CAPSLOCK:   u16 = 58;
112pub const KEY_F1:         u16 = 59;
113pub const KEY_F2:         u16 = 60;
114pub const KEY_F3:         u16 = 61;
115pub const KEY_F4:         u16 = 62;
116pub const KEY_F5:         u16 = 63;
117pub const KEY_F6:         u16 = 64;
118pub const KEY_F7:         u16 = 65;
119pub const KEY_F8:         u16 = 66;
120pub const KEY_F9:         u16 = 67;
121pub const KEY_F10:        u16 = 68;
122pub const KEY_NUMLOCK:    u16 = 69;
123pub const KEY_SCROLLLOCK: u16 = 70;
124pub const KEY_KP7:        u16 = 71;
125pub const KEY_KP8:        u16 = 72;
126pub const KEY_KP9:        u16 = 73;
127pub const KEY_KPMINUS:    u16 = 74;
128pub const KEY_KP4:        u16 = 75;
129pub const KEY_KP5:        u16 = 76;
130pub const KEY_KP6:        u16 = 77;
131pub const KEY_KPPLUS:     u16 = 78;
132pub const KEY_KP1:        u16 = 79;
133pub const KEY_KP2:        u16 = 80;
134pub const KEY_KP3:        u16 = 81;
135pub const KEY_KP0:        u16 = 82;
136pub const KEY_KPDOT:      u16 = 83;
137
138pub const KEY_ZENKAKUHANKAKU:   u16 = 85;
139pub const KEY_102ND:            u16 = 86;
140pub const KEY_F11:              u16 = 87;
141pub const KEY_F12:              u16 = 88;
142pub const KEY_RO:               u16 = 89;
143pub const KEY_KATAKANA:         u16 = 90;
144pub const KEY_HIRAGANA:         u16 = 91;
145pub const KEY_HENKAN:           u16 = 92;
146pub const KEY_KATAKANAHIRAGANA: u16 = 93;
147pub const KEY_MUHENKAN:         u16 = 94;
148pub const KEY_KPJPCOMMA:        u16 = 95;
149pub const KEY_KPENTER:          u16 = 96;
150pub const KEY_RIGHTCTRL:        u16 = 97;
151pub const KEY_KPSLASH:          u16 = 98;
152pub const KEY_SYSRQ:            u16 = 99;
153pub const KEY_RIGHTALT:         u16 = 100;
154pub const KEY_LINEFEED:         u16 = 101;
155pub const KEY_HOME:             u16 = 102;
156pub const KEY_UP:               u16 = 103;
157pub const KEY_PAGEUP:           u16 = 104;
158pub const KEY_LEFT:             u16 = 105;
159pub const KEY_RIGHT:            u16 = 106;
160pub const KEY_END:              u16 = 107;
161pub const KEY_DOWN:             u16 = 108;
162pub const KEY_PAGEDOWN:         u16 = 109;
163pub const KEY_INSERT:           u16 = 110;
164pub const KEY_DELETE:           u16 = 111;
165pub const KEY_MACRO:            u16 = 112;
166pub const KEY_MUTE:             u16 = 113;
167pub const KEY_VOLUMEDOWN:       u16 = 114;
168pub const KEY_VOLUMEUP:         u16 = 115;
169pub const KEY_POWER:            u16 = 116; /* SC System Power Down */
170pub const KEY_KPEQUAL:          u16 = 117;
171pub const KEY_KPPLUSMINUS:      u16 = 118;
172pub const KEY_PAUSE:            u16 = 119;
173pub const KEY_SCALE:            u16 = 120; /* AL Compiz Scale : u16 = Expose */
174
175pub const KEY_KPCOMMA:   u16 = 121;
176pub const KEY_HANGEUL:   u16 = 122;
177pub const KEY_HANGUEL:   u16 = KEY_HANGEUL;
178pub const KEY_HANJA:     u16 = 123;
179pub const KEY_YEN:       u16 = 124;
180pub const KEY_LEFTMETA:  u16 = 125;
181pub const KEY_RIGHTMETA: u16 = 126;
182pub const KEY_COMPOSE:   u16 = 127;
183
184pub const KEY_STOP:           u16 = 128; /* AC Stop */
185pub const KEY_AGAIN:          u16 = 129;
186pub const KEY_PROPS:          u16 = 130; /* AC Properties */
187pub const KEY_UNDO:           u16 = 131; /* AC Undo */
188pub const KEY_FRONT:          u16 = 132;
189pub const KEY_COPY:           u16 = 133; /* AC Copy */
190pub const KEY_OPEN:           u16 = 134; /* AC Open */
191pub const KEY_PASTE:          u16 = 135; /* AC Paste */
192pub const KEY_FIND:           u16 = 136; /* AC Search */
193pub const KEY_CUT:            u16 = 137; /* AC Cut */
194pub const KEY_HELP:           u16 = 138; /* AL Integrated Help Center */
195pub const KEY_MENU:           u16 = 139; /* Menu : u16 = show menu */
196pub const KEY_CALC:           u16 = 140; /* AL Calculator */
197pub const KEY_SETUP:          u16 = 141;
198pub const KEY_SLEEP:          u16 = 142; /* SC System Sleep */
199pub const KEY_WAKEUP:         u16 = 143; /* System Wake Up */
200pub const KEY_FILE:           u16 = 144; /* AL Local Machine Browser */
201pub const KEY_SENDFILE:       u16 = 145;
202pub const KEY_DELETEFILE:     u16 = 146;
203pub const KEY_XFER:           u16 = 147;
204pub const KEY_PROG1:          u16 = 148;
205pub const KEY_PROG2:          u16 = 149;
206pub const KEY_WWW:            u16 = 150; /* AL Internet Browser */
207pub const KEY_MSDOS:          u16 = 151;
208pub const KEY_COFFEE:         u16 = 152; /* AL Terminal Lock/Screensaver */
209pub const KEY_SCREENLOCK:     u16 = KEY_COFFEE;
210pub const KEY_ROTATE_DISPLAY: u16 = 153; /* Display orientation for e.g. tablets */
211pub const KEY_DIRECTION:      u16 = KEY_ROTATE_DISPLAY;
212pub const KEY_CYCLEWINDOWS:   u16 = 154;
213pub const KEY_MAIL:           u16 = 155;
214pub const KEY_BOOKMARKS:      u16 = 156; /* AC Bookmarks */
215pub const KEY_COMPUTER:       u16 = 157;
216pub const KEY_BACK:           u16 = 158; /* AC Back */
217pub const KEY_FORWARD:        u16 = 159; /* AC Forward */
218pub const KEY_CLOSECD:        u16 = 160;
219pub const KEY_EJECTCD:        u16 = 161;
220pub const KEY_EJECTCLOSECD:   u16 = 162;
221pub const KEY_NEXTSONG:       u16 = 163;
222pub const KEY_PLAYPAUSE:      u16 = 164;
223pub const KEY_PREVIOUSSONG:   u16 = 165;
224pub const KEY_STOPCD:         u16 = 166;
225pub const KEY_RECORD:         u16 = 167;
226pub const KEY_REWIND:         u16 = 168;
227pub const KEY_PHONE:          u16 = 169; /* Media Select Telephone */
228pub const KEY_ISO:            u16 = 170;
229pub const KEY_CONFIG:         u16 = 171; /* AL Consumer Control Configuration */
230pub const KEY_HOMEPAGE:       u16 = 172; /* AC Home */
231pub const KEY_REFRESH:        u16 = 173; /* AC Refresh */
232pub const KEY_EXIT:           u16 = 174; /* AC Exit */
233pub const KEY_MOVE:           u16 = 175;
234pub const KEY_EDIT:           u16 = 176;
235pub const KEY_SCROLLUP:       u16 = 177;
236pub const KEY_SCROLLDOWN:     u16 = 178;
237pub const KEY_KPLEFTPAREN:    u16 = 179;
238pub const KEY_KPRIGHTPAREN:   u16 = 180;
239pub const KEY_NEW:            u16 = 181; /* AC New */
240pub const KEY_REDO:           u16 = 182; /* AC Redo/Repeat */
241
242pub const KEY_F13: u16 = 183;
243pub const KEY_F14: u16 = 184;
244pub const KEY_F15: u16 = 185;
245pub const KEY_F16: u16 = 186;
246pub const KEY_F17: u16 = 187;
247pub const KEY_F18: u16 = 188;
248pub const KEY_F19: u16 = 189;
249pub const KEY_F20: u16 = 190;
250pub const KEY_F21: u16 = 191;
251pub const KEY_F22: u16 = 192;
252pub const KEY_F23: u16 = 193;
253pub const KEY_F24: u16 = 194;
254
255pub const KEY_PLAYCD:         u16 = 200;
256pub const KEY_PAUSECD:        u16 = 201;
257pub const KEY_PROG3:          u16 = 202;
258pub const KEY_PROG4:          u16 = 203;
259pub const KEY_DASHBOARD:      u16 = 204; /* AL Dashboard */
260pub const KEY_SUSPEND:        u16 = 205;
261pub const KEY_CLOSE:          u16 = 206; /* AC Close */
262pub const KEY_PLAY:           u16 = 207;
263pub const KEY_FASTFORWARD:    u16 = 208;
264pub const KEY_BASSBOOST:      u16 = 209;
265pub const KEY_PRINT:          u16 = 210; /* AC Print */
266pub const KEY_HP:             u16 = 211;
267pub const KEY_CAMERA:         u16 = 212;
268pub const KEY_SOUND:          u16 = 213;
269pub const KEY_QUESTION:       u16 = 214;
270pub const KEY_EMAIL:          u16 = 215;
271pub const KEY_CHAT:           u16 = 216;
272pub const KEY_SEARCH:         u16 = 217;
273pub const KEY_CONNECT:        u16 = 218;
274pub const KEY_FINANCE:        u16 = 219; /* AL Checkbook/Finance */
275pub const KEY_SPORT:          u16 = 220;
276pub const KEY_SHOP:           u16 = 221;
277pub const KEY_ALTERASE:       u16 = 222;
278pub const KEY_CANCEL:         u16 = 223; /* AC Cancel */
279pub const KEY_BRIGHTNESSDOWN: u16 = 224;
280pub const KEY_BRIGHTNESSUP:   u16 = 225;
281pub const KEY_MEDIA:          u16 = 226;
282
283pub const KEY_SWITCHVIDEOMODE: u16 = 227; /* Cycle between available video outputs (Monitor/LCD/TV-out/etc) */
284pub const KEY_KBDILLUMTOGGLE:  u16 = 228;
285pub const KEY_KBDILLUMDOWN:    u16 = 229;
286pub const KEY_KBDILLUMUP:      u16 = 230;
287
288pub const KEY_SEND:        u16 = 231; /* AC Send */
289pub const KEY_REPLY:       u16 = 232; /* AC Reply */
290pub const KEY_FORWARDMAIL: u16 = 233; /* AC Forward Msg */
291pub const KEY_SAVE:        u16 = 234; /* AC Save */
292pub const KEY_DOCUMENTS:   u16 = 235;
293
294pub const KEY_BATTERY: u16 = 236;
295
296pub const KEY_BLUETOOTH: u16 = 237;
297pub const KEY_WLAN:      u16 = 238;
298pub const KEY_UWB:       u16 = 239;
299
300pub const KEY_UNKNOWN: u16 = 240;
301
302pub const KEY_VIDEO_NEXT:       u16 = 241; /* drive next video source */
303pub const KEY_VIDEO_PREV:       u16 = 242; /* drive previous video source */
304pub const KEY_BRIGHTNESS_CYCLE: u16 = 243; /* brightness up, after max is min */
305pub const KEY_BRIGHTNESS_AUTO:  u16 = 244; /* Set Auto Brightness: manual brightness control is off, rely on ambient */
306pub const KEY_BRIGHTNESS_ZERO:  u16 = KEY_BRIGHTNESS_AUTO;
307pub const KEY_DISPLAY_OFF:      u16 = 245; /* display device to off state */
308
309pub const KEY_WWAN:   u16 = 246; /* Wireless WAN : u16 = LTE, UMTS, GSM, etc. */
310pub const KEY_WIMAX:  u16 = KEY_WWAN;
311pub const KEY_RFKILL: u16 = 247; /* Key that controls all radios */
312
313pub const KEY_MICMUTE: u16 = 248; /* Mute / unmute the microphone */
314
315/* Code 255 is reserved for special needs of AT keyboard driver */
316
317pub const BTN_MISC: u16 = 0x100;
318pub const BTN_0:    u16 = 0x100;
319pub const BTN_1:    u16 = 0x101;
320pub const BTN_2:    u16 = 0x102;
321pub const BTN_3:    u16 = 0x103;
322pub const BTN_4:    u16 = 0x104;
323pub const BTN_5:    u16 = 0x105;
324pub const BTN_6:    u16 = 0x106;
325pub const BTN_7:    u16 = 0x107;
326pub const BTN_8:    u16 = 0x108;
327pub const BTN_9:    u16 = 0x109;
328
329pub const BTN_MOUSE:   u16 = 0x110;
330pub const BTN_LEFT:    u16 = 0x110;
331pub const BTN_RIGHT:   u16 = 0x111;
332pub const BTN_MIDDLE:  u16 = 0x112;
333pub const BTN_SIDE:    u16 = 0x113;
334pub const BTN_EXTRA:   u16 = 0x114;
335pub const BTN_FORWARD: u16 = 0x115;
336pub const BTN_BACK:    u16 = 0x116;
337pub const BTN_TASK:    u16 = 0x117;
338
339pub const BTN_JOYSTICK: u16 = 0x120;
340pub const BTN_TRIGGER:  u16 = 0x120;
341pub const BTN_THUMB:    u16 = 0x121;
342pub const BTN_THUMB2:   u16 = 0x122;
343pub const BTN_TOP:      u16 = 0x123;
344pub const BTN_TOP2:     u16 = 0x124;
345pub const BTN_PINKIE:   u16 = 0x125;
346pub const BTN_BASE:     u16 = 0x126;
347pub const BTN_BASE2:    u16 = 0x127;
348pub const BTN_BASE3:    u16 = 0x128;
349pub const BTN_BASE4:    u16 = 0x129;
350pub const BTN_BASE5:    u16 = 0x12a;
351pub const BTN_BASE6:    u16 = 0x12b;
352pub const BTN_DEAD:     u16 = 0x12f;
353
354pub const BTN_GAMEPAD: u16 = 0x130;
355pub const BTN_SOUTH:   u16 = 0x130;
356pub const BTN_A:       u16 = BTN_SOUTH;
357pub const BTN_EAST:    u16 = 0x131;
358pub const BTN_B:       u16 = BTN_EAST;
359pub const BTN_C:       u16 = 0x132;
360pub const BTN_NORTH:   u16 = 0x133;
361pub const BTN_X:       u16 = BTN_NORTH;
362pub const BTN_WEST:    u16 = 0x134;
363pub const BTN_Y:       u16 = BTN_WEST;
364pub const BTN_Z:       u16 = 0x135;
365pub const BTN_TL:      u16 = 0x136;
366pub const BTN_TR:      u16 = 0x137;
367pub const BTN_TL2:     u16 = 0x138;
368pub const BTN_TR2:     u16 = 0x139;
369pub const BTN_SELECT:  u16 = 0x13a;
370pub const BTN_START:   u16 = 0x13b;
371pub const BTN_MODE:    u16 = 0x13c;
372pub const BTN_THUMBL:  u16 = 0x13d;
373pub const BTN_THUMBR:  u16 = 0x13e;
374
375pub const BTN_DIGI:           u16 = 0x140;
376pub const BTN_TOOL_PEN:       u16 = 0x140;
377pub const BTN_TOOL_RUBBER:    u16 = 0x141;
378pub const BTN_TOOL_BRUSH:     u16 = 0x142;
379pub const BTN_TOOL_PENCIL:    u16 = 0x143;
380pub const BTN_TOOL_AIRBRUSH:  u16 = 0x144;
381pub const BTN_TOOL_FINGER:    u16 = 0x145;
382pub const BTN_TOOL_MOUSE:     u16 = 0x146;
383pub const BTN_TOOL_LENS:      u16 = 0x147;
384pub const BTN_TOOL_QUINTTAP:  u16 = 0x148; /* Five fingers on trackpad */
385pub const BTN_TOUCH:          u16 = 0x14a;
386pub const BTN_STYLUS:         u16 = 0x14b;
387pub const BTN_STYLUS2:        u16 = 0x14c;
388pub const BTN_TOOL_DOUBLETAP: u16 = 0x14d;
389pub const BTN_TOOL_TRIPLETAP: u16 = 0x14e;
390pub const BTN_TOOL_QUADTAP:   u16 = 0x14f; /* Four fingers on trackpad */
391
392pub const BTN_WHEEL:     u16 = 0x150;
393pub const BTN_GEAR_DOWN: u16 = 0x150;
394pub const BTN_GEAR_UP:   u16 = 0x151;
395
396pub const KEY_OK:                u16 = 0x160;
397pub const KEY_SELECT:            u16 = 0x161;
398pub const KEY_GOTO:              u16 = 0x162;
399pub const KEY_CLEAR:             u16 = 0x163;
400pub const KEY_POWER2:            u16 = 0x164;
401pub const KEY_OPTION:            u16 = 0x165;
402pub const KEY_INFO:              u16 = 0x166; /* AL OEM Features/Tips/Tutorial */
403pub const KEY_TIME:              u16 = 0x167;
404pub const KEY_VENDOR:            u16 = 0x168;
405pub const KEY_ARCHIVE:           u16 = 0x169;
406pub const KEY_PROGRAM:           u16 = 0x16a; /* Media Select Program Guide */
407pub const KEY_CHANNEL:           u16 = 0x16b;
408pub const KEY_FAVORITES:         u16 = 0x16c;
409pub const KEY_EPG:               u16 = 0x16d;
410pub const KEY_PVR:               u16 = 0x16e; /* Media Select Home */
411pub const KEY_MHP:               u16 = 0x16f;
412pub const KEY_LANGUAGE:          u16 = 0x170;
413pub const KEY_TITLE:             u16 = 0x171;
414pub const KEY_SUBTITLE:          u16 = 0x172;
415pub const KEY_ANGLE:             u16 = 0x173;
416pub const KEY_ZOOM:              u16 = 0x174;
417pub const KEY_MODE:              u16 = 0x175;
418pub const KEY_KEYBOARD:          u16 = 0x176;
419pub const KEY_SCREEN:            u16 = 0x177;
420pub const KEY_PC:                u16 = 0x178; /* Media Select Computer */
421pub const KEY_TV:                u16 = 0x179; /* Media Select TV */
422pub const KEY_TV2:               u16 = 0x17a; /* Media Select Cable */
423pub const KEY_VCR:               u16 = 0x17b; /* Media Select VCR */
424pub const KEY_VCR2:              u16 = 0x17c; /* VCR Plus */
425pub const KEY_SAT:               u16 = 0x17d; /* Media Select Satellite */
426pub const KEY_SAT2:              u16 = 0x17e;
427pub const KEY_CD:                u16 = 0x17f; /* Media Select CD */
428pub const KEY_TAPE:              u16 = 0x180; /* Media Select Tape */
429pub const KEY_RADIO:             u16 = 0x181;
430pub const KEY_TUNER:             u16 = 0x182; /* Media Select Tuner */
431pub const KEY_PLAYER:            u16 = 0x183;
432pub const KEY_TEXT:              u16 = 0x184;
433pub const KEY_DVD:               u16 = 0x185; /* Media Select DVD */
434pub const KEY_AUX:               u16 = 0x186;
435pub const KEY_MP3:               u16 = 0x187;
436pub const KEY_AUDIO:             u16 = 0x188; /* AL Audio Browser */
437pub const KEY_VIDEO:             u16 = 0x189; /* AL Movie Browser */
438pub const KEY_DIRECTORY:         u16 = 0x18a;
439pub const KEY_LIST:              u16 = 0x18b;
440pub const KEY_MEMO:              u16 = 0x18c; /* Media Select Messages */
441pub const KEY_CALENDAR:          u16 = 0x18d;
442pub const KEY_RED:               u16 = 0x18e;
443pub const KEY_GREEN:             u16 = 0x18f;
444pub const KEY_YELLOW:            u16 = 0x190;
445pub const KEY_BLUE:              u16 = 0x191;
446pub const KEY_CHANNELUP:         u16 = 0x192; /* Channel Increment */
447pub const KEY_CHANNELDOWN:       u16 = 0x193; /* Channel Decrement */
448pub const KEY_FIRST:             u16 = 0x194;
449pub const KEY_LAST:              u16 = 0x195; /* Recall Last */
450pub const KEY_AB:                u16 = 0x196;
451pub const KEY_NEXT:              u16 = 0x197;
452pub const KEY_RESTART:           u16 = 0x198;
453pub const KEY_SLOW:              u16 = 0x199;
454pub const KEY_SHUFFLE:           u16 = 0x19a;
455pub const KEY_BREAK:             u16 = 0x19b;
456pub const KEY_PREVIOUS:          u16 = 0x19c;
457pub const KEY_DIGITS:            u16 = 0x19d;
458pub const KEY_TEEN:              u16 = 0x19e;
459pub const KEY_TWEN:              u16 = 0x19f;
460pub const KEY_VIDEOPHONE:        u16 = 0x1a0; /* Media Select Video Phone */
461pub const KEY_GAMES:             u16 = 0x1a1; /* Media Select Games */
462pub const KEY_ZOOMIN:            u16 = 0x1a2; /* AC Zoom In */
463pub const KEY_ZOOMOUT:           u16 = 0x1a3; /* AC Zoom Out */
464pub const KEY_ZOOMRESET:         u16 = 0x1a4; /* AC Zoom */
465pub const KEY_WORDPROCESSOR:     u16 = 0x1a5; /* AL Word Processor */
466pub const KEY_EDITOR:            u16 = 0x1a6; /* AL Text Editor */
467pub const KEY_SPREADSHEET:       u16 = 0x1a7; /* AL Spreadsheet */
468pub const KEY_GRAPHICSEDITOR:    u16 = 0x1a8; /* AL Graphics Editor */
469pub const KEY_PRESENTATION:      u16 = 0x1a9; /* AL Presentation App */
470pub const KEY_DATABASE:          u16 = 0x1aa; /* AL Database App */
471pub const KEY_NEWS:              u16 = 0x1ab; /* AL Newsreader */
472pub const KEY_VOICEMAIL:         u16 = 0x1ac; /* AL Voicemail */
473pub const KEY_ADDRESSBOOK:       u16 = 0x1ad; /* AL Contacts/Address Book */
474pub const KEY_MESSENGER:         u16 = 0x1ae; /* AL Instant Messaging */
475pub const KEY_DISPLAYTOGGLE:     u16 = 0x1af; /* Turn display : u16 = LCD on and off */
476pub const KEY_BRIGHTNESS_TOGGLE: u16 = KEY_DISPLAYTOGGLE;
477pub const KEY_SPELLCHECK:        u16 = 0x1b0; /* AL Spell Check */
478pub const KEY_LOGOFF:            u16 = 0x1b1; /* AL Logoff */
479
480pub const KEY_DOLLAR: u16 = 0x1b2;
481pub const KEY_EURO:   u16 = 0x1b3;
482
483pub const KEY_FRAMEBACK:      u16 = 0x1b4; /* Consumer - transport controls */
484pub const KEY_FRAMEFORWARD:   u16 = 0x1b5;
485pub const KEY_CONTEXT_MENU:   u16 = 0x1b6; /* GenDesc - system context menu */
486pub const KEY_MEDIA_REPEAT:   u16 = 0x1b7; /* Consumer - transport control */
487pub const KEY_10CHANNELSUP:   u16 = 0x1b8; /* 10 channels up : u16 = 10+ */
488pub const KEY_10CHANNELSDOWN: u16 = 0x1b9; /* 10 channels down : u16 = 10- */
489pub const KEY_IMAGES:         u16 = 0x1ba; /* AL Image Browser */
490
491pub const KEY_DEL_EOL:  u16 = 0x1c0;
492pub const KEY_DEL_EOS:  u16 = 0x1c1;
493pub const KEY_INS_LINE: u16 = 0x1c2;
494pub const KEY_DEL_LINE: u16 = 0x1c3;
495
496pub const KEY_FN:     u16 = 0x1d0;
497pub const KEY_FN_ESC: u16 = 0x1d1;
498pub const KEY_FN_F1:  u16 = 0x1d2;
499pub const KEY_FN_F2:  u16 = 0x1d3;
500pub const KEY_FN_F3:  u16 = 0x1d4;
501pub const KEY_FN_F4:  u16 = 0x1d5;
502pub const KEY_FN_F5:  u16 = 0x1d6;
503pub const KEY_FN_F6:  u16 = 0x1d7;
504pub const KEY_FN_F7:  u16 = 0x1d8;
505pub const KEY_FN_F8:  u16 = 0x1d9;
506pub const KEY_FN_F9:  u16 = 0x1da;
507pub const KEY_FN_F10: u16 = 0x1db;
508pub const KEY_FN_F11: u16 = 0x1dc;
509pub const KEY_FN_F12: u16 = 0x1dd;
510pub const KEY_FN_1:   u16 = 0x1de;
511pub const KEY_FN_2:   u16 = 0x1df;
512pub const KEY_FN_D:   u16 = 0x1e0;
513pub const KEY_FN_E:   u16 = 0x1e1;
514pub const KEY_FN_F:   u16 = 0x1e2;
515pub const KEY_FN_S:   u16 = 0x1e3;
516pub const KEY_FN_B:   u16 = 0x1e4;
517
518pub const KEY_BRL_DOT1:  u16 = 0x1f1;
519pub const KEY_BRL_DOT2:  u16 = 0x1f2;
520pub const KEY_BRL_DOT3:  u16 = 0x1f3;
521pub const KEY_BRL_DOT4:  u16 = 0x1f4;
522pub const KEY_BRL_DOT5:  u16 = 0x1f5;
523pub const KEY_BRL_DOT6:  u16 = 0x1f6;
524pub const KEY_BRL_DOT7:  u16 = 0x1f7;
525pub const KEY_BRL_DOT8:  u16 = 0x1f8;
526pub const KEY_BRL_DOT9:  u16 = 0x1f9;
527pub const KEY_BRL_DOT10: u16 = 0x1fa;
528
529pub const KEY_NUMERIC_0:     u16 = 0x200; /* used by phones, remote controls, */
530pub const KEY_NUMERIC_1:     u16 = 0x201; /* and other keypads */
531pub const KEY_NUMERIC_2:     u16 = 0x202;
532pub const KEY_NUMERIC_3:     u16 = 0x203;
533pub const KEY_NUMERIC_4:     u16 = 0x204;
534pub const KEY_NUMERIC_5:     u16 = 0x205;
535pub const KEY_NUMERIC_6:     u16 = 0x206;
536pub const KEY_NUMERIC_7:     u16 = 0x207;
537pub const KEY_NUMERIC_8:     u16 = 0x208;
538pub const KEY_NUMERIC_9:     u16 = 0x209;
539pub const KEY_NUMERIC_STAR:  u16 = 0x20a;
540pub const KEY_NUMERIC_POUND: u16 = 0x20b;
541pub const KEY_NUMERIC_A:     u16 = 0x20c; /* Phone key A - HUT Telephony 0xb9 */
542pub const KEY_NUMERIC_B:     u16 = 0x20d;
543pub const KEY_NUMERIC_C:     u16 = 0x20e;
544pub const KEY_NUMERIC_D:     u16 = 0x20f;
545
546pub const KEY_CAMERA_FOCUS: u16 = 0x210;
547pub const KEY_WPS_BUTTON:   u16 = 0x211; /* WiFi Protected Setup key */
548
549pub const KEY_TOUCHPAD_TOGGLE: u16 = 0x212; /* Request switch touchpad on or off */
550pub const KEY_TOUCHPAD_ON:     u16 = 0x213;
551pub const KEY_TOUCHPAD_OFF:    u16 = 0x214;
552
553pub const KEY_CAMERA_ZOOMIN:  u16 = 0x215;
554pub const KEY_CAMERA_ZOOMOUT: u16 = 0x216;
555pub const KEY_CAMERA_UP:      u16 = 0x217;
556pub const KEY_CAMERA_DOWN:    u16 = 0x218;
557pub const KEY_CAMERA_LEFT:    u16 = 0x219;
558pub const KEY_CAMERA_RIGHT:   u16 = 0x21a;
559
560pub const KEY_ATTENDANT_ON:     u16 = 0x21b;
561pub const KEY_ATTENDANT_OFF:    u16 = 0x21c;
562pub const KEY_ATTENDANT_TOGGLE: u16 = 0x21d; /* Attendant call on or off */
563pub const KEY_LIGHTS_TOGGLE:    u16 = 0x21e; /* Reading light on or off */
564
565pub const BTN_DPAD_UP:    u16 = 0x220;
566pub const BTN_DPAD_DOWN:  u16 = 0x221;
567pub const BTN_DPAD_LEFT:  u16 = 0x222;
568pub const BTN_DPAD_RIGHT: u16 = 0x223;
569
570pub const KEY_ALS_TOGGLE: u16 = 0x230; /* Ambient light sensor */
571
572pub const KEY_BUTTONCONFIG: u16 = 0x240;  /* AL Button Configuration */
573pub const KEY_TASKMANAGER:  u16 = 0x241;  /* AL Task/Project Manager */
574pub const KEY_JOURNAL:      u16 = 0x242;  /* AL Log/Journal/Timecard */
575pub const KEY_CONTROLPANEL: u16 = 0x243;  /* AL Control Panel */
576pub const KEY_APPSELECT:    u16 = 0x244;  /* AL Select Task/Application */
577pub const KEY_SCREENSAVER:  u16 = 0x245;  /* AL Screen Saver */
578pub const KEY_VOICECOMMAND: u16 = 0x246;  /* Listening Voice Command */
579
580pub const KEY_BRIGHTNESS_MIN: u16 = 0x250; /* Set Brightness to Minimum */
581pub const KEY_BRIGHTNESS_MAX: u16 = 0x251; /* Set Brightness to Maximum */
582
583pub const KEY_KBDINPUTASSIST_PREV:      u16 = 0x260;
584pub const KEY_KBDINPUTASSIST_NEXT:      u16 = 0x261;
585pub const KEY_KBDINPUTASSIST_PREVGROUP: u16 = 0x262;
586pub const KEY_KBDINPUTASSIST_NEXTGROUP: u16 = 0x263;
587pub const KEY_KBDINPUTASSIST_ACCEPT:    u16 = 0x264;
588pub const KEY_KBDINPUTASSIST_CANCEL:    u16 = 0x265;
589
590pub const BTN_TRIGGER_HAPPY:   u16 = 0x2c0;
591pub const BTN_TRIGGER_HAPPY1:  u16 = 0x2c0;
592pub const BTN_TRIGGER_HAPPY2:  u16 = 0x2c1;
593pub const BTN_TRIGGER_HAPPY3:  u16 = 0x2c2;
594pub const BTN_TRIGGER_HAPPY4:  u16 = 0x2c3;
595pub const BTN_TRIGGER_HAPPY5:  u16 = 0x2c4;
596pub const BTN_TRIGGER_HAPPY6:  u16 = 0x2c5;
597pub const BTN_TRIGGER_HAPPY7:  u16 = 0x2c6;
598pub const BTN_TRIGGER_HAPPY8:  u16 = 0x2c7;
599pub const BTN_TRIGGER_HAPPY9:  u16 = 0x2c8;
600pub const BTN_TRIGGER_HAPPY10: u16 = 0x2c9;
601pub const BTN_TRIGGER_HAPPY11: u16 = 0x2ca;
602pub const BTN_TRIGGER_HAPPY12: u16 = 0x2cb;
603pub const BTN_TRIGGER_HAPPY13: u16 = 0x2cc;
604pub const BTN_TRIGGER_HAPPY14: u16 = 0x2cd;
605pub const BTN_TRIGGER_HAPPY15: u16 = 0x2ce;
606pub const BTN_TRIGGER_HAPPY16: u16 = 0x2cf;
607pub const BTN_TRIGGER_HAPPY17: u16 = 0x2d0;
608pub const BTN_TRIGGER_HAPPY18: u16 = 0x2d1;
609pub const BTN_TRIGGER_HAPPY19: u16 = 0x2d2;
610pub const BTN_TRIGGER_HAPPY20: u16 = 0x2d3;
611pub const BTN_TRIGGER_HAPPY21: u16 = 0x2d4;
612pub const BTN_TRIGGER_HAPPY22: u16 = 0x2d5;
613pub const BTN_TRIGGER_HAPPY23: u16 = 0x2d6;
614pub const BTN_TRIGGER_HAPPY24: u16 = 0x2d7;
615pub const BTN_TRIGGER_HAPPY25: u16 = 0x2d8;
616pub const BTN_TRIGGER_HAPPY26: u16 = 0x2d9;
617pub const BTN_TRIGGER_HAPPY27: u16 = 0x2da;
618pub const BTN_TRIGGER_HAPPY28: u16 = 0x2db;
619pub const BTN_TRIGGER_HAPPY29: u16 = 0x2dc;
620pub const BTN_TRIGGER_HAPPY30: u16 = 0x2dd;
621pub const BTN_TRIGGER_HAPPY31: u16 = 0x2de;
622pub const BTN_TRIGGER_HAPPY32: u16 = 0x2df;
623pub const BTN_TRIGGER_HAPPY33: u16 = 0x2e0;
624pub const BTN_TRIGGER_HAPPY34: u16 = 0x2e1;
625pub const BTN_TRIGGER_HAPPY35: u16 = 0x2e2;
626pub const BTN_TRIGGER_HAPPY36: u16 = 0x2e3;
627pub const BTN_TRIGGER_HAPPY37: u16 = 0x2e4;
628pub const BTN_TRIGGER_HAPPY38: u16 = 0x2e5;
629pub const BTN_TRIGGER_HAPPY39: u16 = 0x2e6;
630pub const BTN_TRIGGER_HAPPY40: u16 = 0x2e7;
631
632/* We avoid low common keys in module aliases so they don't get huge. */
633pub const KEY_MIN_INTERESTING: u16 = KEY_MUTE;
634pub const KEY_MAX:             u16 = 0x2ff;
635pub const KEY_CNT:             u16 = KEY_MAX + 1;
636
637/*
638 * Relative axes
639 */
640
641pub const REL_X:      u16 = 0x00;
642pub const REL_Y:      u16 = 0x01;
643pub const REL_Z:      u16 = 0x02;
644pub const REL_RX:     u16 = 0x03;
645pub const REL_RY:     u16 = 0x04;
646pub const REL_RZ:     u16 = 0x05;
647pub const REL_HWHEEL: u16 = 12; // high resolution wheel
648pub const REL_DIAL:   u16 = 0x07;
649pub const REL_WHEEL:  u16 = 11; // high resolution wheel
650pub const REL_MISC:   u16 = 0x09;
651pub const REL_MAX:    u16 = 0x0f;
652pub const REL_CNT:    u16 = REL_MAX + 1;
653
654/*
655 * Absolute axes
656 */
657
658pub const ABS_X:          u16 = 0x00;
659pub const ABS_Y:          u16 = 0x01;
660pub const ABS_Z:          u16 = 0x02;
661pub const ABS_RX:         u16 = 0x03;
662pub const ABS_RY:         u16 = 0x04;
663pub const ABS_RZ:         u16 = 0x05;
664pub const ABS_THROTTLE:   u16 = 0x06;
665pub const ABS_RUDDER:     u16 = 0x07;
666pub const ABS_WHEEL:      u16 = 0x08;
667pub const ABS_GAS:        u16 = 0x09;
668pub const ABS_BRAKE:      u16 = 0x0a;
669pub const ABS_HAT0X:      u16 = 0x10;
670pub const ABS_HAT0Y:      u16 = 0x11;
671pub const ABS_HAT1X:      u16 = 0x12;
672pub const ABS_HAT1Y:      u16 = 0x13;
673pub const ABS_HAT2X:      u16 = 0x14;
674pub const ABS_HAT2Y:      u16 = 0x15;
675pub const ABS_HAT3X:      u16 = 0x16;
676pub const ABS_HAT3Y:      u16 = 0x17;
677pub const ABS_PRESSURE:   u16 = 0x18;
678pub const ABS_DISTANCE:   u16 = 0x19;
679pub const ABS_TILT_X:     u16 = 0x1a;
680pub const ABS_TILT_Y:     u16 = 0x1b;
681pub const ABS_TOOL_WIDTH: u16 = 0x1c;
682
683pub const ABS_VOLUME: u16 = 0x20;
684
685pub const ABS_MISC: u16 = 0x28;
686
687pub const ABS_MT_SLOT:        u16 = 0x2f; /* MT slot being modified */
688pub const ABS_MT_TOUCH_MAJOR: u16 = 0x30; /* Major axis of touching ellipse */
689pub const ABS_MT_TOUCH_MINOR: u16 = 0x31; /* Minor axis : u16 = omit if circular */
690pub const ABS_MT_WIDTH_MAJOR: u16 = 0x32; /* Major axis of approaching ellipse */
691pub const ABS_MT_WIDTH_MINOR: u16 = 0x33; /* Minor axis : u16 = omit if circular */
692pub const ABS_MT_ORIENTATION: u16 = 0x34; /* Ellipse orientation */
693pub const ABS_MT_POSITION_X:  u16 = 0x35; /* Center X touch position */
694pub const ABS_MT_POSITION_Y:  u16 = 0x36; /* Center Y touch position */
695pub const ABS_MT_TOOL_TYPE:   u16 = 0x37; /* Type of touching device */
696pub const ABS_MT_BLOB_ID:     u16 = 0x38; /* Group a set of packets as a blob */
697pub const ABS_MT_TRACKING_ID: u16 = 0x39; /* Unique ID of initiated contact */
698pub const ABS_MT_PRESSURE:    u16 = 0x3a; /* Pressure on contact area */
699pub const ABS_MT_DISTANCE:    u16 = 0x3b; /* Contact hover distance */
700pub const ABS_MT_TOOL_X:      u16 = 0x3c; /* Center X tool position */
701pub const ABS_MT_TOOL_Y:      u16 = 0x3d; /* Center Y tool position */
702
703
704pub const ABS_MAX: u16 = 0x3f;
705pub const ABS_CNT: u16 = ABS_MAX + 1;
706
707/*
708 * Switch events
709 */
710
711pub const SW_LID:                  u16 = 0x00;  /* set = lid shut */
712pub const SW_TABLET_MODE:          u16 = 0x01;  /* set = tablet mode */
713pub const SW_HEADPHONE_INSERT:     u16 = 0x02;  /* set = inserted */
714pub const SW_RFKILL_ALL:           u16 = 0x03;  /* rfkill master switch, type "any" set = radio enabled */
715pub const SW_RADIO:                u16 = SW_RFKILL_ALL; /* deprecated */
716pub const SW_MICROPHONE_INSERT:    u16 = 0x04;  /* set = inserted */
717pub const SW_DOCK:                 u16 = 0x05;  /* set = plugged into dock */
718pub const SW_LINEOUT_INSERT:       u16 = 0x06;  /* set = inserted */
719pub const SW_JACK_PHYSICAL_INSERT: u16 = 0x07;  /* set = mechanical switch set */
720pub const SW_VIDEOOUT_INSERT:      u16 = 0x08;  /* set = inserted */
721pub const SW_CAMERA_LENS_COVER:    u16 = 0x09;  /* set = lens covered */
722pub const SW_KEYPAD_SLIDE:         u16 = 0x0a;  /* set = keypad slide out */
723pub const SW_FRONT_PROXIMITY:      u16 = 0x0b;  /* set = front proximity sensor active */
724pub const SW_ROTATE_LOCK:          u16 = 0x0c;  /* set = rotate locked/disabled */
725pub const SW_LINEIN_INSERT:        u16 = 0x0d;  /* set = inserted */
726pub const SW_MUTE_DEVICE:          u16 = 0x0e;  /* set = device disabled */
727pub const SW_MAX:                  u16 = 0x0f;
728pub const SW_CNT:                  u16 = SW_MAX + 1;
729
730/*
731 * Misc events
732 */
733
734pub const MSC_SERIAL:    u16 = 0x00;
735pub const MSC_PULSELED:  u16 = 0x01;
736pub const MSC_GESTURE:   u16 = 0x02;
737pub const MSC_RAW:       u16 = 0x03;
738pub const MSC_SCAN:      u16 = 0x04;
739pub const MSC_TIMESTAMP: u16 = 0x05;
740pub const MSC_MAX:       u16 = 0x07;
741pub const MSC_CNT:       u16 = MSC_MAX + 1;
742
743/*
744 * LEDs
745 */
746
747pub const LED_NUML:     u16 = 0x00;
748pub const LED_CAPSL:    u16 = 0x01;
749pub const LED_SCROLLL:  u16 = 0x02;
750pub const LED_COMPOSE:  u16 = 0x03;
751pub const LED_KANA:     u16 = 0x04;
752pub const LED_SLEEP:    u16 = 0x05;
753pub const LED_SUSPEND:  u16 = 0x06;
754pub const LED_MUTE:     u16 = 0x07;
755pub const LED_MISC:     u16 = 0x08;
756pub const LED_MAIL:     u16 = 0x09;
757pub const LED_CHARGING: u16 = 0x0a;
758pub const LED_MAX:      u16 = 0x0f;
759pub const LED_CNT:      u16 = LED_MAX + 1;
760
761/*
762 * Autorepeat values
763 */
764
765pub const REP_DELAY:  u16 = 0x00;
766pub const REP_PERIOD: u16 = 0x01;
767pub const REP_MAX:    u16 = 0x01;
768pub const REP_CNT:    u16 = REP_MAX + 1;
769
770/*
771 * Sounds
772 */
773
774pub const SND_CLICK: u16 = 0x00;
775pub const SND_BELL:  u16 = 0x01;
776pub const SND_TONE:  u16 = 0x02;
777pub const SND_MAX:   u16 = 0x07;
778pub const SND_CNT:   u16 = SND_MAX + 1;