1 /* 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, 36 typedef enum { 37 EVENT_TYPE_LIST 38 } EventType; 39 #undef EV_TYPE 40 41 /* BEWARE: The following codes are defined by the Linux kernel headers. 42 * The Android "Menu" key is KEY_SOFT1, *not* KEY_MENU 43 */ 44 /* 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 55 #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, 397 typedef enum { 398 EVENT_KEY_LIST 399 } EventKeyCode; 400 #undef KEY_CODE 401 402 403 #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, 479 typedef 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, 489 typedef 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 525 typedef 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 */ 533 extern 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 */ 539 extern int android_event_get_type_count( void ); 540 extern 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 */ 543 extern int android_event_get_code_count( int type ); 544 extern char* android_event_bufprint_code_str( char* buff, char* end, int type, int code_index ); 545 546 #endif /* _ANDROID_HW_EVENTS_H */ 547