Home | History | Annotate | Download | only in android
      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