blob: b8340bdad2e492f2bcae9b06e8f45b0584d7af6a [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001/* Copyright (C) 2007-2008 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef _ANDROID_HW_EVENTS_H
13#define _ANDROID_HW_EVENTS_H
14
15#include "android/utils/system.h"
16
17/* from the Linux kernel */
18
19#define EVENT_TYPE_LIST \
20 EV_TYPE(SYN,0x00) \
21 EV_TYPE(KEY,0x01) \
22 EV_TYPE(REL,0x02) \
23 EV_TYPE(ABS,0x03) \
24 EV_TYPE(MSC,0x04) \
25 EV_TYPE(SW, 0x05) \
26 EV_TYPE(LED,0x11) \
27 EV_TYPE(SND,0x12) \
28 EV_TYPE(REP,0x14) \
29 EV_TYPE(FF, 0x15) \
30 EV_TYPE(PWR,0x16) \
31 EV_TYPE(FF_STATUS,0x17) \
32 EV_TYPE(MAX,0x1f)
33
34#undef EV_TYPE
35#define EV_TYPE(n,v) GLUE(EV_,n) = v,
36typedef enum {
37 EVENT_TYPE_LIST
38} EventType;
39#undef EV_TYPE
40
David 'Digit' Turnera69c35e2009-07-30 15:20:54 +020041/* BEWARE: The following codes are defined by the Linux kernel headers.
42 * The Android "Menu" key is KEY_SOFT1, *not* KEY_MENU
43 */
Andrew Hsieh7f661af2012-05-02 13:24:28 +080044/* NOTE: mingw's winnt.h define DELETE to constant
45 i586-mingw32msvc: #define DELETE 0x00010000L
46 x86_64-w64-mingw32-gcc: #define DELETE (0x00010000L)
47
48 KEY_CODE belows glues "KEY_" and "DELETE".
49 While KEY_0x00010000L may not mean anything,
50 KEY_(0x00010000L) is absolutely harmful to compiler.
51 Undefine DELETE below
52 */
53#undef DELETE
54
David 'Digit' Turnera69c35e2009-07-30 15:20:54 +020055#define EVENT_KEY_LIST \
56 KEY_CODE(ESC ,1) \
57 KEY_CODE(1 ,2) \
58 KEY_CODE(2 ,3) \
59 KEY_CODE(3 ,4) \
60 KEY_CODE(4 ,5) \
61 KEY_CODE(5 ,6) \
62 KEY_CODE(6 ,7) \
63 KEY_CODE(7 ,8) \
64 KEY_CODE(8 ,9) \
65 KEY_CODE(9 ,10) \
66 KEY_CODE(0 ,11) \
67 KEY_CODE(MINUS ,12) \
68 KEY_CODE(EQUAL ,13) \
69 KEY_CODE(BACKSPACE ,14) \
70 KEY_CODE(TAB ,15) \
71 KEY_CODE(Q ,16) \
72 KEY_CODE(W ,17) \
73 KEY_CODE(E ,18) \
74 KEY_CODE(R ,19) \
75 KEY_CODE(T ,20) \
76 KEY_CODE(Y ,21) \
77 KEY_CODE(U ,22) \
78 KEY_CODE(I ,23) \
79 KEY_CODE(O ,24) \
80 KEY_CODE(P ,25) \
81 KEY_CODE(LEFTBRACE ,26) \
82 KEY_CODE(RIGHTBRACE ,27) \
83 KEY_CODE(ENTER ,28) \
84 KEY_CODE(LEFTCTRL ,29) \
85 KEY_CODE(A ,30) \
86 KEY_CODE(S ,31) \
87 KEY_CODE(D ,32) \
88 KEY_CODE(F ,33) \
89 KEY_CODE(G ,34) \
90 KEY_CODE(H ,35) \
91 KEY_CODE(J ,36) \
92 KEY_CODE(K ,37) \
93 KEY_CODE(L ,38) \
94 KEY_CODE(SEMICOLON ,39) \
95 KEY_CODE(APOSTROPHE ,40) \
96 KEY_CODE(GRAVE ,41) \
97 KEY_CODE(LEFTSHIFT ,42) \
98 KEY_CODE(BACKSLASH ,43) \
99 KEY_CODE(Z ,44) \
100 KEY_CODE(X ,45) \
101 KEY_CODE(C ,46) \
102 KEY_CODE(V ,47) \
103 KEY_CODE(B ,48) \
104 KEY_CODE(N ,49) \
105 KEY_CODE(M ,50) \
106 KEY_CODE(COMMA ,51) \
107 KEY_CODE(DOT ,52) \
108 KEY_CODE(SLASH ,53) \
109 KEY_CODE(RIGHTSHIFT ,54) \
110 KEY_CODE(KPASTERISK ,55) \
111 KEY_CODE(LEFTALT ,56) \
112 KEY_CODE(SPACE ,57) \
113 KEY_CODE(CAPSLOCK ,58) \
114 KEY_CODE(F1 ,59) \
115 KEY_CODE(F2 ,60) \
116 KEY_CODE(F3 ,61) \
117 KEY_CODE(F4 ,62) \
118 KEY_CODE(F5 ,63) \
119 KEY_CODE(F6 ,64) \
120 KEY_CODE(F7 ,65) \
121 KEY_CODE(F8 ,66) \
122 KEY_CODE(F9 ,67) \
123 KEY_CODE(F10 ,68) \
124 KEY_CODE(NUMLOCK ,69) \
125 KEY_CODE(SCROLLLOCK ,70) \
126 KEY_CODE(KP7 ,71) \
127 KEY_CODE(KP8 ,72) \
128 KEY_CODE(KP9 ,73) \
129 KEY_CODE(KPMINUS ,74) \
130 KEY_CODE(KP4 ,75) \
131 KEY_CODE(KP5 ,76) \
132 KEY_CODE(KP6 ,77) \
133 KEY_CODE(KPPLUS ,78) \
134 KEY_CODE(KP1 ,79) \
135 KEY_CODE(KP2 ,80) \
136 KEY_CODE(KP3 ,81) \
137 KEY_CODE(KP0 ,82) \
138 KEY_CODE(KPDOT ,83) \
139 KEY_CODE(ZENKAKUHANKAKU,85) \
140 KEY_CODE(102ND ,86) \
141 KEY_CODE(F11 ,87) \
142 KEY_CODE(F12 ,88) \
143 KEY_CODE(RO ,89) \
144 KEY_CODE(KATAKANA ,90) \
145 KEY_CODE(HIRAGANA ,91) \
146 KEY_CODE(HENKAN ,92) \
147 KEY_CODE(KATAKANAHIRAGANA,93) \
148 KEY_CODE(MUHENKAN ,94) \
149 KEY_CODE(KPJPCOMMA ,95) \
150 KEY_CODE(KPENTER ,96) \
151 KEY_CODE(RIGHTCTRL ,97) \
152 KEY_CODE(KPSLASH ,98) \
153 KEY_CODE(SYSRQ ,99) \
154 KEY_CODE(RIGHTALT ,100) \
155 KEY_CODE(LINEFEED ,101) \
156 KEY_CODE(HOME ,102) \
157 KEY_CODE(UP ,103) \
158 KEY_CODE(PAGEUP ,104) \
159 KEY_CODE(LEFT ,105) \
160 KEY_CODE(RIGHT ,106) \
161 KEY_CODE(END ,107) \
162 KEY_CODE(DOWN ,108) \
163 KEY_CODE(PAGEDOWN ,109) \
164 KEY_CODE(INSERT ,110) \
165 KEY_CODE(DELETE ,111) \
166 KEY_CODE(MACRO ,112) \
167 KEY_CODE(MUTE ,113) \
168 KEY_CODE(VOLUMEDOWN ,114) \
169 KEY_CODE(VOLUMEUP ,115) \
170 KEY_CODE(POWER ,116) \
171 KEY_CODE(KPEQUAL ,117) \
172 KEY_CODE(KPPLUSMINUS ,118) \
173 KEY_CODE(PAUSE ,119) \
174 KEY_CODE(KPCOMMA ,121) \
175 KEY_CODE(HANGEUL ,122) \
176 KEY_CODE(HANJA ,123) \
177 KEY_CODE(YEN ,124) \
178 KEY_CODE(LEFTMETA ,125) \
179 KEY_CODE(RIGHTMETA ,126) \
180 KEY_CODE(COMPOSE ,127) \
181 KEY_CODE(STOP ,128) \
182 KEY_CODE(AGAIN ,129) \
183 KEY_CODE(PROPS ,130) \
184 KEY_CODE(UNDO ,131) \
185 KEY_CODE(FRONT ,132) \
186 KEY_CODE(COPY ,133) \
187 KEY_CODE(OPEN ,134) \
188 KEY_CODE(PASTE ,135) \
189 KEY_CODE(FIND ,136) \
190 KEY_CODE(CUT ,137) \
191 KEY_CODE(HELP ,138) \
192 KEY_CODE(MENU ,139) \
193 KEY_CODE(CALC ,140) \
194 KEY_CODE(SETUP ,141) \
195 KEY_CODE(SLEEP ,142) \
196 KEY_CODE(WAKEUP ,143) \
197 KEY_CODE(FILE ,144) \
198 KEY_CODE(SENDFILE ,145) \
199 KEY_CODE(DELETEFILE ,146) \
200 KEY_CODE(XFER ,147) \
201 KEY_CODE(PROG1 ,148) \
202 KEY_CODE(PROG2 ,149) \
203 KEY_CODE(WWW ,150) \
204 KEY_CODE(MSDOS ,151) \
205 KEY_CODE(COFFEE ,152) \
206 KEY_CODE(DIRECTION ,153) \
207 KEY_CODE(CYCLEWINDOWS,154) \
208 KEY_CODE(MAIL ,155) \
209 KEY_CODE(BOOKMARKS ,156) \
210 KEY_CODE(COMPUTER ,157) \
211 KEY_CODE(BACK ,158) \
212 KEY_CODE(FORWARD ,159) \
213 KEY_CODE(CLOSECD ,160) \
214 KEY_CODE(EJECTCD ,161) \
215 KEY_CODE(EJECTCLOSECD,162) \
216 KEY_CODE(NEXTSONG ,163) \
217 KEY_CODE(PLAYPAUSE ,164) \
218 KEY_CODE(PREVIOUSSONG,165) \
219 KEY_CODE(STOPCD ,166) \
220 KEY_CODE(RECORD ,167) \
221 KEY_CODE(REWIND ,168) \
222 KEY_CODE(PHONE ,169) \
223 KEY_CODE(ISO ,170) \
224 KEY_CODE(CONFIG ,171) \
225 KEY_CODE(HOMEPAGE ,172) \
226 KEY_CODE(REFRESH ,173) \
227 KEY_CODE(EXIT ,174) \
228 KEY_CODE(MOVE ,175) \
229 KEY_CODE(EDIT ,176) \
230 KEY_CODE(SCROLLUP ,177) \
231 KEY_CODE(SCROLLDOWN ,178) \
232 KEY_CODE(KPLEFTPAREN ,179) \
233 KEY_CODE(KPRIGHTPAREN,180) \
234 KEY_CODE(NEW ,181) \
235 KEY_CODE(REDO ,182) \
236 KEY_CODE(F13 ,183) \
237 KEY_CODE(F14 ,184) \
238 KEY_CODE(F15 ,185) \
239 KEY_CODE(F16 ,186) \
240 KEY_CODE(F17 ,187) \
241 KEY_CODE(F18 ,188) \
242 KEY_CODE(F19 ,189) \
243 KEY_CODE(F20 ,190) \
244 KEY_CODE(F21 ,191) \
245 KEY_CODE(F22 ,192) \
246 KEY_CODE(F23 ,193) \
247 KEY_CODE(F24 ,194) \
248 KEY_CODE(PLAYCD ,200) \
249 KEY_CODE(PAUSECD ,201) \
250 KEY_CODE(PROG3 ,202) \
251 KEY_CODE(PROG4 ,203) \
252 KEY_CODE(SUSPEND ,205) \
253 KEY_CODE(CLOSE ,206) \
254 KEY_CODE(PLAY ,207) \
255 KEY_CODE(FASTFORWARD ,208) \
256 KEY_CODE(BASSBOOST ,209) \
257 KEY_CODE(PRINT ,210) \
258 KEY_CODE(HP ,211) \
259 KEY_CODE(CAMERA ,212) \
260 KEY_CODE(SOUND ,213) \
261 KEY_CODE(QUESTION ,214) \
262 KEY_CODE(EMAIL ,215) \
263 KEY_CODE(CHAT ,216) \
264 KEY_CODE(SEARCH ,217) \
265 KEY_CODE(CONNECT ,218) \
266 KEY_CODE(FINANCE ,219) \
267 KEY_CODE(SPORT ,220) \
268 KEY_CODE(SHOP ,221) \
269 KEY_CODE(ALTERASE ,222) \
270 KEY_CODE(CANCEL ,223) \
271 KEY_CODE(BRIGHTNESSDOWN,224) \
272 KEY_CODE(BRIGHTNESSUP,225) \
273 KEY_CODE(MEDIA ,226) \
274 KEY_CODE(STAR ,227) \
275 KEY_CODE(SHARP ,228) \
276 KEY_CODE(SOFT1 ,229) \
277 KEY_CODE(SOFT2 ,230) \
278 KEY_CODE(SEND ,231) \
279 KEY_CODE(CENTER ,232) \
280 KEY_CODE(HEADSETHOOK ,233) \
281 KEY_CODE(0_5 ,234) \
282 KEY_CODE(2_5 ,235) \
283 KEY_CODE(SWITCHVIDEOMODE,236) \
284 KEY_CODE(KBDILLUMTOGGLE,237) \
285 KEY_CODE(KBDILLUMDOWN,238) \
286 KEY_CODE(KBDILLUMUP ,239) \
287 KEY_CODE(REPLY ,232) \
288 KEY_CODE(FORWARDMAIL ,233) \
289 KEY_CODE(SAVE ,234) \
290 KEY_CODE(DOCUMENTS ,235) \
291 KEY_CODE(BATTERY ,236) \
292 KEY_CODE(UNKNOWN ,240) \
293 KEY_CODE(NUM ,241) \
294 KEY_CODE(FOCUS ,242) \
295 KEY_CODE(PLUS ,243) \
296 KEY_CODE(NOTIFICATION,244) \
297 KEY_CODE(OK ,0x160) \
298 KEY_CODE(SELECT ,0x161) \
299 KEY_CODE(GOTO ,0x162) \
300 KEY_CODE(CLEAR ,0x163) \
301 KEY_CODE(POWER2 ,0x164) \
302 KEY_CODE(OPTION ,0x165) \
303 KEY_CODE(INFO ,0x166) \
304 KEY_CODE(TIME ,0x167) \
305 KEY_CODE(VENDOR ,0x168) \
306 KEY_CODE(ARCHIVE ,0x169) \
307 KEY_CODE(PROGRAM ,0x16a) \
308 KEY_CODE(CHANNEL ,0x16b) \
309 KEY_CODE(FAVORITES ,0x16c) \
310 KEY_CODE(EPG ,0x16d) \
311 KEY_CODE(PVR ,0x16e) \
312 KEY_CODE(MHP ,0x16f) \
313 KEY_CODE(LANGUAGE ,0x170) \
314 KEY_CODE(TITLE ,0x171) \
315 KEY_CODE(SUBTITLE ,0x172) \
316 KEY_CODE(ANGLE ,0x173) \
317 KEY_CODE(ZOOM ,0x174) \
318 KEY_CODE(MODE ,0x175) \
319 KEY_CODE(KEYBOARD ,0x176) \
320 KEY_CODE(SCREEN ,0x177) \
321 KEY_CODE(PC ,0x178) \
322 KEY_CODE(TV ,0x179) \
323 KEY_CODE(TV2 ,0x17a) \
324 KEY_CODE(VCR ,0x17b) \
325 KEY_CODE(VCR2 ,0x17c) \
326 KEY_CODE(SAT ,0x17d) \
327 KEY_CODE(SAT2 ,0x17e) \
328 KEY_CODE(CD ,0x17f) \
329 KEY_CODE(TAPE ,0x180) \
330 KEY_CODE(RADIO ,0x181) \
331 KEY_CODE(TUNER ,0x182) \
332 KEY_CODE(PLAYER ,0x183) \
333 KEY_CODE(TEXT ,0x184) \
334 KEY_CODE(DVD ,0x185) \
335 KEY_CODE(AUX ,0x186) \
336 KEY_CODE(MP3 ,0x187) \
337 KEY_CODE(AUDIO ,0x188) \
338 KEY_CODE(VIDEO ,0x189) \
339 KEY_CODE(DIRECTORY ,0x18a) \
340 KEY_CODE(LIST ,0x18b) \
341 KEY_CODE(MEMO ,0x18c) \
342 KEY_CODE(CALENDAR ,0x18d) \
343 KEY_CODE(RED ,0x18e) \
344 KEY_CODE(GREEN ,0x18f) \
345 KEY_CODE(YELLOW ,0x190) \
346 KEY_CODE(BLUE ,0x191) \
347 KEY_CODE(CHANNELUP ,0x192) \
348 KEY_CODE(CHANNELDOWN ,0x193) \
349 KEY_CODE(FIRST ,0x194) \
350 KEY_CODE(LAST ,0x195) \
351 KEY_CODE(AB ,0x196) \
352 KEY_CODE(NEXT ,0x197) \
353 KEY_CODE(RESTART ,0x198) \
354 KEY_CODE(SLOW ,0x199) \
355 KEY_CODE(SHUFFLE ,0x19a) \
356 KEY_CODE(BREAK ,0x19b) \
357 KEY_CODE(PREVIOUS ,0x19c) \
358 KEY_CODE(DIGITS ,0x19d) \
359 KEY_CODE(TEEN ,0x19e) \
360 KEY_CODE(TWEN ,0x19f) \
361 KEY_CODE(DEL_EOL ,0x1c0) \
362 KEY_CODE(DEL_EOS ,0x1c1) \
363 KEY_CODE(INS_LINE ,0x1c2) \
364 KEY_CODE(DEL_LINE ,0x1c3) \
365 KEY_CODE(FN ,0x1d0) \
366 KEY_CODE(FN_ESC ,0x1d1) \
367 KEY_CODE(FN_F1 ,0x1d2) \
368 KEY_CODE(FN_F2 ,0x1d3) \
369 KEY_CODE(FN_F3 ,0x1d4) \
370 KEY_CODE(FN_F4 ,0x1d5) \
371 KEY_CODE(FN_F5 ,0x1d6) \
372 KEY_CODE(FN_F6 ,0x1d7) \
373 KEY_CODE(FN_F7 ,0x1d8) \
374 KEY_CODE(FN_F8 ,0x1d9) \
375 KEY_CODE(FN_F9 ,0x1da) \
376 KEY_CODE(FN_F10 ,0x1db) \
377 KEY_CODE(FN_F11 ,0x1dc) \
378 KEY_CODE(FN_F12 ,0x1dd) \
379 KEY_CODE(FN_1 ,0x1de) \
380 KEY_CODE(FN_2 ,0x1df) \
381 KEY_CODE(FN_D ,0x1e0) \
382 KEY_CODE(FN_E ,0x1e1) \
383 KEY_CODE(FN_F ,0x1e2) \
384 KEY_CODE(FN_S ,0x1e3) \
385 KEY_CODE(FN_B ,0x1e4) \
386 KEY_CODE(BRL_DOT1 ,0x1f1) \
387 KEY_CODE(BRL_DOT2 ,0x1f2) \
388 KEY_CODE(BRL_DOT3 ,0x1f3) \
389 KEY_CODE(BRL_DOT4 ,0x1f4) \
390 KEY_CODE(BRL_DOT5 ,0x1f5) \
391 KEY_CODE(BRL_DOT6 ,0x1f6) \
392 KEY_CODE(BRL_DOT7 ,0x1f7) \
393 KEY_CODE(BRL_DOT8 ,0x1f8) \
394
395#undef KEY_CODE
396#define KEY_CODE(n,v) GLUE(KEY_,n) = v,
397typedef enum {
398 EVENT_KEY_LIST
399} EventKeyCode;
400#undef KEY_CODE
401
402
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -0800403#define EVENT_BTN_LIST \
404 BTN_CODE(MISC,0x100) \
405 BTN_CODE(0,0x100) \
406 BTN_CODE(1,0x101) \
407 BTN_CODE(2,0x102) \
408 BTN_CODE(3,0x103) \
409 BTN_CODE(4,0x104) \
410 BTN_CODE(5,0x105) \
411 BTN_CODE(6,0x106) \
412 BTN_CODE(7,0x107) \
413 BTN_CODE(8,0x108) \
414 BTN_CODE(9,0x109) \
415 \
416 BTN_CODE(MOUSE, 0x110) \
417 BTN_CODE(LEFT, 0x110) \
418 BTN_CODE(RIGHT, 0x111) \
419 BTN_CODE(MIDDLE, 0x112) \
420 BTN_CODE(SIDE, 0x113) \
421 BTN_CODE(EXTRA, 0x114) \
422 BTN_CODE(FORWARD,0x115) \
423 BTN_CODE(BACK, 0x116) \
424 BTN_CODE(TASK, 0x117) \
425 \
426 BTN_CODE(JOYSTICK,0x120) \
427 BTN_CODE(TRIGGER, 0x120) \
428 BTN_CODE(THUMB, 0x121) \
429 BTN_CODE(THUMB2, 0x122) \
430 BTN_CODE(TOP, 0x123) \
431 BTN_CODE(TOP2, 0x124) \
432 BTN_CODE(PINKIE, 0x125) \
433 BTN_CODE(BASE, 0x126) \
434 BTN_CODE(BASE2, 0x127) \
435 BTN_CODE(BASE3, 0x128) \
436 BTN_CODE(BASE4, 0x129) \
437 BTN_CODE(BASE5, 0x12a) \
438 BTN_CODE(BASE6, 0x12b) \
439 BTN_CODE(DEAD, 0x12f) \
440 \
441 BTN_CODE(GAMEPAD, 0x130) \
442 BTN_CODE(A, 0x130) \
443 BTN_CODE(B, 0x131) \
444 BTN_CODE(C, 0x132) \
445 BTN_CODE(X, 0x133) \
446 BTN_CODE(Y, 0x134) \
447 BTN_CODE(Z, 0x135) \
448 BTN_CODE(TL, 0x136) \
449 BTN_CODE(TR, 0x137) \
450 BTN_CODE(TL2, 0x138) \
451 BTN_CODE(TR2, 0x139) \
452 BTN_CODE(SELECT, 0x13a) \
453 BTN_CODE(START, 0x13b) \
454 BTN_CODE(MODE, 0x13c) \
455 BTN_CODE(THUMBL, 0x13d) \
456 BTN_CODE(THUMBR, 0x13e) \
457 \
458 BTN_CODE(DIGI, 0x140) \
459 BTN_CODE(TOOL_PEN, 0x140) \
460 BTN_CODE(TOOL_RUBBER, 0x141) \
461 BTN_CODE(TOOL_BRUSH, 0x142) \
462 BTN_CODE(TOOL_PENCIL, 0x143) \
463 BTN_CODE(TOOL_AIRBRUSH, 0x144) \
464 BTN_CODE(TOOL_FINGER, 0x145) \
465 BTN_CODE(TOOL_MOUSE, 0x146) \
466 BTN_CODE(TOOL_LENS, 0x147) \
467 BTN_CODE(TOUCH, 0x14a) \
468 BTN_CODE(STYLUS, 0x14b) \
469 BTN_CODE(STYLUS2, 0x14c) \
470 BTN_CODE(TOOL_DOUBLETAP, 0x14d) \
471 BTN_CODE(TOOL_TRIPLETAP, 0x14e) \
472 \
473 BTN_CODE(WHEEL, 0x150) \
474 BTN_CODE(GEAR_DOWN, 0x150) \
475 BTN_CODE(GEAR_UP, 0x150)
476
477#undef BTN_CODE
478#define BTN_CODE(n,v) GLUE(BTN_,n) = v,
479typedef enum {
480 EVENT_BTN_LIST
481} EventBtnCode;
482#undef BTN_CODE
483
484#define EVENT_REL_LIST \
485 REL_CODE(X, 0x00) \
486 REL_CODE(Y, 0x01)
487
488#define REL_CODE(n,v) GLUE(REL_,n) = v,
489typedef enum {
490 EVENT_REL_LIST
491} EventRelCode;
492#undef REL_CODE
493
494#define EVENT_ABS_LIST \
495 ABS_CODE(X, 0x00) \
496 ABS_CODE(Y, 0x01) \
497 ABS_CODE(Z, 0x02) \
498 ABS_CODE(RX, 0x03) \
499 ABS_CODE(RY, 0x04) \
500 ABS_CODE(RZ, 0x05) \
501 ABS_CODE(THROTTLE, 0x06) \
502 ABS_CODE(RUDDER, 0x07) \
503 ABS_CODE(WHEEL, 0x08) \
504 ABS_CODE(GAS, 0x09) \
505 ABS_CODE(BRAKE, 0x0a) \
506 ABS_CODE(HAT0X, 0x10) \
507 ABS_CODE(HAT0Y, 0x11) \
508 ABS_CODE(HAT1X, 0x12) \
509 ABS_CODE(HAT1Y, 0x13) \
510 ABS_CODE(HAT2X, 0x14) \
511 ABS_CODE(HAT2Y, 0x15) \
512 ABS_CODE(HAT3X, 0x16) \
513 ABS_CODE(HAT3Y, 0x17) \
514 ABS_CODE(PRESSURE, 0x18) \
515 ABS_CODE(DISTANCE, 0x19) \
516 ABS_CODE(TILT_X, 0x1a) \
517 ABS_CODE(TILT_Y, 0x1b) \
518 ABS_CODE(TOOL_WIDTH, 0x1c) \
519 ABS_CODE(VOLUME, 0x20) \
520 ABS_CODE(MISC, 0x28) \
521 ABS_CODE(MAX, 0x3f)
522
523#define ABS_CODE(n,v) GLUE(ABS_,n) = v,
524
525typedef enum {
526 EVENT_ABS_LIST
527} EventAbsCode;
528#undef ABS_CODE
529
530/* convert an event string specification like <type>:<code>:<value>
531 * into three integers. returns 0 on success, or -1 in case of error
532 */
533extern int android_event_from_str( const char* name,
534 int *ptype,
535 int *pcode,
536 int *pvalue );
537
538/* returns the list of valid event type string aliases */
539extern int android_event_get_type_count( void );
540extern char* android_event_bufprint_type_str( char* buff, char* end, int type_index );
541
542/* returns the list of valid event code string aliases for a given event type */
543extern int android_event_get_code_count( int type );
544extern char* android_event_bufprint_code_str( char* buff, char* end, int type, int code_index );
545
546#endif /* _ANDROID_HW_EVENTS_H */