github.com/holoplot/go-evdev@v0.0.0-20220721205823-d31c64b9d636/codes.go (about)

     1  // Code generated by build/gen-codes. DO NOT EDIT.
     2  // version tag: "v5.17", generated from files:
     3  // - https://raw.githubusercontent.com/torvalds/linux/v5.17/include/uapi/linux/input.h
     4  // - https://raw.githubusercontent.com/torvalds/linux/v5.17/include/uapi/linux/input-event-codes.h
     5  
     6  package evdev
     7  
     8  // Device properties and quirks
     9  const (
    10  	INPUT_PROP_POINTER        = 0x00 // needs a pointer
    11  	INPUT_PROP_DIRECT         = 0x01 // direct input devices
    12  	INPUT_PROP_BUTTONPAD      = 0x02 // has button(s) under pad
    13  	INPUT_PROP_SEMI_MT        = 0x03 // touch rectangle only
    14  	INPUT_PROP_TOPBUTTONPAD   = 0x04 // softbuttons at top of pad
    15  	INPUT_PROP_POINTING_STICK = 0x05 // is a pointing stick
    16  	INPUT_PROP_ACCELEROMETER  = 0x06 // has accelerometer
    17  
    18  	INPUT_PROP_MAX = 0x1f
    19  	INPUT_PROP_CNT = (INPUT_PROP_MAX + 1)
    20  )
    21  
    22  // Event types
    23  const (
    24  	EV_SYN       = 0x00
    25  	EV_KEY       = 0x01
    26  	EV_REL       = 0x02
    27  	EV_ABS       = 0x03
    28  	EV_MSC       = 0x04
    29  	EV_SW        = 0x05
    30  	EV_LED       = 0x11
    31  	EV_SND       = 0x12
    32  	EV_REP       = 0x14
    33  	EV_FF        = 0x15
    34  	EV_PWR       = 0x16
    35  	EV_FF_STATUS = 0x17
    36  	EV_MAX       = 0x1f
    37  	EV_CNT       = (EV_MAX + 1)
    38  )
    39  
    40  // Synchronization events.
    41  const (
    42  	SYN_REPORT    = 0
    43  	SYN_CONFIG    = 1
    44  	SYN_MT_REPORT = 2
    45  	SYN_DROPPED   = 3
    46  	SYN_MAX       = 0xf
    47  	SYN_CNT       = (SYN_MAX + 1)
    48  )
    49  
    50  // Keys and buttons
    51  // Most of the keys/buttons are modeled after USB HUT 1.12
    52  // (see http://www.usb.org/developers/hidpage).
    53  // Abbreviations in the comments:
    54  // AC - Application Control
    55  // AL - Application Launch Button
    56  // SC - System Control
    57  const (
    58  	KEY_RESERVED   = 0
    59  	KEY_ESC        = 1
    60  	KEY_1          = 2
    61  	KEY_2          = 3
    62  	KEY_3          = 4
    63  	KEY_4          = 5
    64  	KEY_5          = 6
    65  	KEY_6          = 7
    66  	KEY_7          = 8
    67  	KEY_8          = 9
    68  	KEY_9          = 10
    69  	KEY_0          = 11
    70  	KEY_MINUS      = 12
    71  	KEY_EQUAL      = 13
    72  	KEY_BACKSPACE  = 14
    73  	KEY_TAB        = 15
    74  	KEY_Q          = 16
    75  	KEY_W          = 17
    76  	KEY_E          = 18
    77  	KEY_R          = 19
    78  	KEY_T          = 20
    79  	KEY_Y          = 21
    80  	KEY_U          = 22
    81  	KEY_I          = 23
    82  	KEY_O          = 24
    83  	KEY_P          = 25
    84  	KEY_LEFTBRACE  = 26
    85  	KEY_RIGHTBRACE = 27
    86  	KEY_ENTER      = 28
    87  	KEY_LEFTCTRL   = 29
    88  	KEY_A          = 30
    89  	KEY_S          = 31
    90  	KEY_D          = 32
    91  	KEY_F          = 33
    92  	KEY_G          = 34
    93  	KEY_H          = 35
    94  	KEY_J          = 36
    95  	KEY_K          = 37
    96  	KEY_L          = 38
    97  	KEY_SEMICOLON  = 39
    98  	KEY_APOSTROPHE = 40
    99  	KEY_GRAVE      = 41
   100  	KEY_LEFTSHIFT  = 42
   101  	KEY_BACKSLASH  = 43
   102  	KEY_Z          = 44
   103  	KEY_X          = 45
   104  	KEY_C          = 46
   105  	KEY_V          = 47
   106  	KEY_B          = 48
   107  	KEY_N          = 49
   108  	KEY_M          = 50
   109  	KEY_COMMA      = 51
   110  	KEY_DOT        = 52
   111  	KEY_SLASH      = 53
   112  	KEY_RIGHTSHIFT = 54
   113  	KEY_KPASTERISK = 55
   114  	KEY_LEFTALT    = 56
   115  	KEY_SPACE      = 57
   116  	KEY_CAPSLOCK   = 58
   117  	KEY_F1         = 59
   118  	KEY_F2         = 60
   119  	KEY_F3         = 61
   120  	KEY_F4         = 62
   121  	KEY_F5         = 63
   122  	KEY_F6         = 64
   123  	KEY_F7         = 65
   124  	KEY_F8         = 66
   125  	KEY_F9         = 67
   126  	KEY_F10        = 68
   127  	KEY_NUMLOCK    = 69
   128  	KEY_SCROLLLOCK = 70
   129  	KEY_KP7        = 71
   130  	KEY_KP8        = 72
   131  	KEY_KP9        = 73
   132  	KEY_KPMINUS    = 74
   133  	KEY_KP4        = 75
   134  	KEY_KP5        = 76
   135  	KEY_KP6        = 77
   136  	KEY_KPPLUS     = 78
   137  	KEY_KP1        = 79
   138  	KEY_KP2        = 80
   139  	KEY_KP3        = 81
   140  	KEY_KP0        = 82
   141  	KEY_KPDOT      = 83
   142  
   143  	KEY_ZENKAKUHANKAKU   = 85
   144  	KEY_102ND            = 86
   145  	KEY_F11              = 87
   146  	KEY_F12              = 88
   147  	KEY_RO               = 89
   148  	KEY_KATAKANA         = 90
   149  	KEY_HIRAGANA         = 91
   150  	KEY_HENKAN           = 92
   151  	KEY_KATAKANAHIRAGANA = 93
   152  	KEY_MUHENKAN         = 94
   153  	KEY_KPJPCOMMA        = 95
   154  	KEY_KPENTER          = 96
   155  	KEY_RIGHTCTRL        = 97
   156  	KEY_KPSLASH          = 98
   157  	KEY_SYSRQ            = 99
   158  	KEY_RIGHTALT         = 100
   159  	KEY_LINEFEED         = 101
   160  	KEY_HOME             = 102
   161  	KEY_UP               = 103
   162  	KEY_PAGEUP           = 104
   163  	KEY_LEFT             = 105
   164  	KEY_RIGHT            = 106
   165  	KEY_END              = 107
   166  	KEY_DOWN             = 108
   167  	KEY_PAGEDOWN         = 109
   168  	KEY_INSERT           = 110
   169  	KEY_DELETE           = 111
   170  	KEY_MACRO            = 112
   171  	KEY_MUTE             = 113
   172  	KEY_VOLUMEDOWN       = 114
   173  	KEY_VOLUMEUP         = 115
   174  	KEY_POWER            = 116 // SC System Power Down
   175  	KEY_KPEQUAL          = 117
   176  	KEY_KPPLUSMINUS      = 118
   177  	KEY_PAUSE            = 119
   178  	KEY_SCALE            = 120 // AL Compiz Scale (Expose)
   179  
   180  	KEY_KPCOMMA   = 121
   181  	KEY_HANGEUL   = 122
   182  	KEY_HANGUEL   = KEY_HANGEUL
   183  	KEY_HANJA     = 123
   184  	KEY_YEN       = 124
   185  	KEY_LEFTMETA  = 125
   186  	KEY_RIGHTMETA = 126
   187  	KEY_COMPOSE   = 127
   188  
   189  	KEY_STOP           = 128 // AC Stop
   190  	KEY_AGAIN          = 129
   191  	KEY_PROPS          = 130 // AC Properties
   192  	KEY_UNDO           = 131 // AC Undo
   193  	KEY_FRONT          = 132
   194  	KEY_COPY           = 133 // AC Copy
   195  	KEY_OPEN           = 134 // AC Open
   196  	KEY_PASTE          = 135 // AC Paste
   197  	KEY_FIND           = 136 // AC Search
   198  	KEY_CUT            = 137 // AC Cut
   199  	KEY_HELP           = 138 // AL Integrated Help Center
   200  	KEY_MENU           = 139 // Menu (show menu)
   201  	KEY_CALC           = 140 // AL Calculator
   202  	KEY_SETUP          = 141
   203  	KEY_SLEEP          = 142 // SC System Sleep
   204  	KEY_WAKEUP         = 143 // System Wake Up
   205  	KEY_FILE           = 144 // AL Local Machine Browser
   206  	KEY_SENDFILE       = 145
   207  	KEY_DELETEFILE     = 146
   208  	KEY_XFER           = 147
   209  	KEY_PROG1          = 148
   210  	KEY_PROG2          = 149
   211  	KEY_WWW            = 150 // AL Internet Browser
   212  	KEY_MSDOS          = 151
   213  	KEY_COFFEE         = 152 // AL Terminal Lock/Screensaver
   214  	KEY_SCREENLOCK     = KEY_COFFEE
   215  	KEY_ROTATE_DISPLAY = 153 // Display orientation for e.g. tablets
   216  	KEY_DIRECTION      = KEY_ROTATE_DISPLAY
   217  	KEY_CYCLEWINDOWS   = 154
   218  	KEY_MAIL           = 155
   219  	KEY_BOOKMARKS      = 156 // AC Bookmarks
   220  	KEY_COMPUTER       = 157
   221  	KEY_BACK           = 158 // AC Back
   222  	KEY_FORWARD        = 159 // AC Forward
   223  	KEY_CLOSECD        = 160
   224  	KEY_EJECTCD        = 161
   225  	KEY_EJECTCLOSECD   = 162
   226  	KEY_NEXTSONG       = 163
   227  	KEY_PLAYPAUSE      = 164
   228  	KEY_PREVIOUSSONG   = 165
   229  	KEY_STOPCD         = 166
   230  	KEY_RECORD         = 167
   231  	KEY_REWIND         = 168
   232  	KEY_PHONE          = 169 // Media Select Telephone
   233  	KEY_ISO            = 170
   234  	KEY_CONFIG         = 171 // AL Consumer Control Configuration
   235  	KEY_HOMEPAGE       = 172 // AC Home
   236  	KEY_REFRESH        = 173 // AC Refresh
   237  	KEY_EXIT           = 174 // AC Exit
   238  	KEY_MOVE           = 175
   239  	KEY_EDIT           = 176
   240  	KEY_SCROLLUP       = 177
   241  	KEY_SCROLLDOWN     = 178
   242  	KEY_KPLEFTPAREN    = 179
   243  	KEY_KPRIGHTPAREN   = 180
   244  	KEY_NEW            = 181 // AC New
   245  	KEY_REDO           = 182 // AC Redo/Repeat
   246  
   247  	KEY_F13 = 183
   248  	KEY_F14 = 184
   249  	KEY_F15 = 185
   250  	KEY_F16 = 186
   251  	KEY_F17 = 187
   252  	KEY_F18 = 188
   253  	KEY_F19 = 189
   254  	KEY_F20 = 190
   255  	KEY_F21 = 191
   256  	KEY_F22 = 192
   257  	KEY_F23 = 193
   258  	KEY_F24 = 194
   259  
   260  	KEY_PLAYCD           = 200
   261  	KEY_PAUSECD          = 201
   262  	KEY_PROG3            = 202
   263  	KEY_PROG4            = 203
   264  	KEY_ALL_APPLICATIONS = 204 // AC Desktop Show All Applications
   265  	KEY_DASHBOARD        = KEY_ALL_APPLICATIONS
   266  	KEY_SUSPEND          = 205
   267  	KEY_CLOSE            = 206 // AC Close
   268  	KEY_PLAY             = 207
   269  	KEY_FASTFORWARD      = 208
   270  	KEY_BASSBOOST        = 209
   271  	KEY_PRINT            = 210 // AC Print
   272  	KEY_HP               = 211
   273  	KEY_CAMERA           = 212
   274  	KEY_SOUND            = 213
   275  	KEY_QUESTION         = 214
   276  	KEY_EMAIL            = 215
   277  	KEY_CHAT             = 216
   278  	KEY_SEARCH           = 217
   279  	KEY_CONNECT          = 218
   280  	KEY_FINANCE          = 219 // AL Checkbook/Finance
   281  	KEY_SPORT            = 220
   282  	KEY_SHOP             = 221
   283  	KEY_ALTERASE         = 222
   284  	KEY_CANCEL           = 223 // AC Cancel
   285  	KEY_BRIGHTNESSDOWN   = 224
   286  	KEY_BRIGHTNESSUP     = 225
   287  	KEY_MEDIA            = 226
   288  
   289  	KEY_SWITCHVIDEOMODE = 227 // Cycle between available videooutputs (Monitor/LCD/TV-out/etc)
   290  
   291  	KEY_KBDILLUMTOGGLE = 228
   292  	KEY_KBDILLUMDOWN   = 229
   293  	KEY_KBDILLUMUP     = 230
   294  
   295  	KEY_SEND        = 231 // AC Send
   296  	KEY_REPLY       = 232 // AC Reply
   297  	KEY_FORWARDMAIL = 233 // AC Forward Msg
   298  	KEY_SAVE        = 234 // AC Save
   299  	KEY_DOCUMENTS   = 235
   300  
   301  	KEY_BATTERY = 236
   302  
   303  	KEY_BLUETOOTH = 237
   304  	KEY_WLAN      = 238
   305  	KEY_UWB       = 239
   306  
   307  	KEY_UNKNOWN = 240
   308  
   309  	KEY_VIDEO_NEXT       = 241 // drive next video source
   310  	KEY_VIDEO_PREV       = 242 // drive previous video source
   311  	KEY_BRIGHTNESS_CYCLE = 243 // brightness up, after max is min
   312  	KEY_BRIGHTNESS_AUTO  = 244 // Set Auto Brightness: manualbrightness control is off,rely on ambient
   313  
   314  	KEY_BRIGHTNESS_ZERO = KEY_BRIGHTNESS_AUTO
   315  	KEY_DISPLAY_OFF     = 245 // display device to off state
   316  
   317  	KEY_WWAN   = 246 // Wireless WAN (LTE, UMTS, GSM, etc.)
   318  	KEY_WIMAX  = KEY_WWAN
   319  	KEY_RFKILL = 247 // Key that controls all radios
   320  
   321  	KEY_MICMUTE = 248 // Mute / unmute the microphone
   322  
   323  	// Code 255 is reserved for special needs of AT keyboard driver
   324  
   325  	BTN_MISC = 0x100
   326  	BTN_0    = 0x100
   327  	BTN_1    = 0x101
   328  	BTN_2    = 0x102
   329  	BTN_3    = 0x103
   330  	BTN_4    = 0x104
   331  	BTN_5    = 0x105
   332  	BTN_6    = 0x106
   333  	BTN_7    = 0x107
   334  	BTN_8    = 0x108
   335  	BTN_9    = 0x109
   336  
   337  	BTN_MOUSE   = 0x110
   338  	BTN_LEFT    = 0x110
   339  	BTN_RIGHT   = 0x111
   340  	BTN_MIDDLE  = 0x112
   341  	BTN_SIDE    = 0x113
   342  	BTN_EXTRA   = 0x114
   343  	BTN_FORWARD = 0x115
   344  	BTN_BACK    = 0x116
   345  	BTN_TASK    = 0x117
   346  
   347  	BTN_JOYSTICK = 0x120
   348  	BTN_TRIGGER  = 0x120
   349  	BTN_THUMB    = 0x121
   350  	BTN_THUMB2   = 0x122
   351  	BTN_TOP      = 0x123
   352  	BTN_TOP2     = 0x124
   353  	BTN_PINKIE   = 0x125
   354  	BTN_BASE     = 0x126
   355  	BTN_BASE2    = 0x127
   356  	BTN_BASE3    = 0x128
   357  	BTN_BASE4    = 0x129
   358  	BTN_BASE5    = 0x12a
   359  	BTN_BASE6    = 0x12b
   360  	BTN_DEAD     = 0x12f
   361  
   362  	BTN_GAMEPAD = 0x130
   363  	BTN_SOUTH   = 0x130
   364  	BTN_A       = BTN_SOUTH
   365  	BTN_EAST    = 0x131
   366  	BTN_B       = BTN_EAST
   367  	BTN_C       = 0x132
   368  	BTN_NORTH   = 0x133
   369  	BTN_X       = BTN_NORTH
   370  	BTN_WEST    = 0x134
   371  	BTN_Y       = BTN_WEST
   372  	BTN_Z       = 0x135
   373  	BTN_TL      = 0x136
   374  	BTN_TR      = 0x137
   375  	BTN_TL2     = 0x138
   376  	BTN_TR2     = 0x139
   377  	BTN_SELECT  = 0x13a
   378  	BTN_START   = 0x13b
   379  	BTN_MODE    = 0x13c
   380  	BTN_THUMBL  = 0x13d
   381  	BTN_THUMBR  = 0x13e
   382  
   383  	BTN_DIGI           = 0x140
   384  	BTN_TOOL_PEN       = 0x140
   385  	BTN_TOOL_RUBBER    = 0x141
   386  	BTN_TOOL_BRUSH     = 0x142
   387  	BTN_TOOL_PENCIL    = 0x143
   388  	BTN_TOOL_AIRBRUSH  = 0x144
   389  	BTN_TOOL_FINGER    = 0x145
   390  	BTN_TOOL_MOUSE     = 0x146
   391  	BTN_TOOL_LENS      = 0x147
   392  	BTN_TOOL_QUINTTAP  = 0x148 // Five fingers on trackpad
   393  	BTN_STYLUS3        = 0x149
   394  	BTN_TOUCH          = 0x14a
   395  	BTN_STYLUS         = 0x14b
   396  	BTN_STYLUS2        = 0x14c
   397  	BTN_TOOL_DOUBLETAP = 0x14d
   398  	BTN_TOOL_TRIPLETAP = 0x14e
   399  	BTN_TOOL_QUADTAP   = 0x14f // Four fingers on trackpad
   400  
   401  	BTN_WHEEL     = 0x150
   402  	BTN_GEAR_DOWN = 0x150
   403  	BTN_GEAR_UP   = 0x151
   404  
   405  	KEY_OK                = 0x160
   406  	KEY_SELECT            = 0x161
   407  	KEY_GOTO              = 0x162
   408  	KEY_CLEAR             = 0x163
   409  	KEY_POWER2            = 0x164
   410  	KEY_OPTION            = 0x165
   411  	KEY_INFO              = 0x166 // AL OEM Features/Tips/Tutorial
   412  	KEY_TIME              = 0x167
   413  	KEY_VENDOR            = 0x168
   414  	KEY_ARCHIVE           = 0x169
   415  	KEY_PROGRAM           = 0x16a // Media Select Program Guide
   416  	KEY_CHANNEL           = 0x16b
   417  	KEY_FAVORITES         = 0x16c
   418  	KEY_EPG               = 0x16d
   419  	KEY_PVR               = 0x16e // Media Select Home
   420  	KEY_MHP               = 0x16f
   421  	KEY_LANGUAGE          = 0x170
   422  	KEY_TITLE             = 0x171
   423  	KEY_SUBTITLE          = 0x172
   424  	KEY_ANGLE             = 0x173
   425  	KEY_FULL_SCREEN       = 0x174 // AC View Toggle
   426  	KEY_ZOOM              = KEY_FULL_SCREEN
   427  	KEY_MODE              = 0x175
   428  	KEY_KEYBOARD          = 0x176
   429  	KEY_ASPECT_RATIO      = 0x177 // HUTRR37: Aspect
   430  	KEY_SCREEN            = KEY_ASPECT_RATIO
   431  	KEY_PC                = 0x178 // Media Select Computer
   432  	KEY_TV                = 0x179 // Media Select TV
   433  	KEY_TV2               = 0x17a // Media Select Cable
   434  	KEY_VCR               = 0x17b // Media Select VCR
   435  	KEY_VCR2              = 0x17c // VCR Plus
   436  	KEY_SAT               = 0x17d // Media Select Satellite
   437  	KEY_SAT2              = 0x17e
   438  	KEY_CD                = 0x17f // Media Select CD
   439  	KEY_TAPE              = 0x180 // Media Select Tape
   440  	KEY_RADIO             = 0x181
   441  	KEY_TUNER             = 0x182 // Media Select Tuner
   442  	KEY_PLAYER            = 0x183
   443  	KEY_TEXT              = 0x184
   444  	KEY_DVD               = 0x185 // Media Select DVD
   445  	KEY_AUX               = 0x186
   446  	KEY_MP3               = 0x187
   447  	KEY_AUDIO             = 0x188 // AL Audio Browser
   448  	KEY_VIDEO             = 0x189 // AL Movie Browser
   449  	KEY_DIRECTORY         = 0x18a
   450  	KEY_LIST              = 0x18b
   451  	KEY_MEMO              = 0x18c // Media Select Messages
   452  	KEY_CALENDAR          = 0x18d
   453  	KEY_RED               = 0x18e
   454  	KEY_GREEN             = 0x18f
   455  	KEY_YELLOW            = 0x190
   456  	KEY_BLUE              = 0x191
   457  	KEY_CHANNELUP         = 0x192 // Channel Increment
   458  	KEY_CHANNELDOWN       = 0x193 // Channel Decrement
   459  	KEY_FIRST             = 0x194
   460  	KEY_LAST              = 0x195 // Recall Last
   461  	KEY_AB                = 0x196
   462  	KEY_NEXT              = 0x197
   463  	KEY_RESTART           = 0x198
   464  	KEY_SLOW              = 0x199
   465  	KEY_SHUFFLE           = 0x19a
   466  	KEY_BREAK             = 0x19b
   467  	KEY_PREVIOUS          = 0x19c
   468  	KEY_DIGITS            = 0x19d
   469  	KEY_TEEN              = 0x19e
   470  	KEY_TWEN              = 0x19f
   471  	KEY_VIDEOPHONE        = 0x1a0 // Media Select Video Phone
   472  	KEY_GAMES             = 0x1a1 // Media Select Games
   473  	KEY_ZOOMIN            = 0x1a2 // AC Zoom In
   474  	KEY_ZOOMOUT           = 0x1a3 // AC Zoom Out
   475  	KEY_ZOOMRESET         = 0x1a4 // AC Zoom
   476  	KEY_WORDPROCESSOR     = 0x1a5 // AL Word Processor
   477  	KEY_EDITOR            = 0x1a6 // AL Text Editor
   478  	KEY_SPREADSHEET       = 0x1a7 // AL Spreadsheet
   479  	KEY_GRAPHICSEDITOR    = 0x1a8 // AL Graphics Editor
   480  	KEY_PRESENTATION      = 0x1a9 // AL Presentation App
   481  	KEY_DATABASE          = 0x1aa // AL Database App
   482  	KEY_NEWS              = 0x1ab // AL Newsreader
   483  	KEY_VOICEMAIL         = 0x1ac // AL Voicemail
   484  	KEY_ADDRESSBOOK       = 0x1ad // AL Contacts/Address Book
   485  	KEY_MESSENGER         = 0x1ae // AL Instant Messaging
   486  	KEY_DISPLAYTOGGLE     = 0x1af // Turn display (LCD) on and off
   487  	KEY_BRIGHTNESS_TOGGLE = KEY_DISPLAYTOGGLE
   488  	KEY_SPELLCHECK        = 0x1b0 // AL Spell Check
   489  	KEY_LOGOFF            = 0x1b1 // AL Logoff
   490  
   491  	KEY_DOLLAR = 0x1b2
   492  	KEY_EURO   = 0x1b3
   493  
   494  	KEY_FRAMEBACK           = 0x1b4 // Consumer - transport controls
   495  	KEY_FRAMEFORWARD        = 0x1b5
   496  	KEY_CONTEXT_MENU        = 0x1b6 // GenDesc - system context menu
   497  	KEY_MEDIA_REPEAT        = 0x1b7 // Consumer - transport control
   498  	KEY_10CHANNELSUP        = 0x1b8 // 10 channels up (10+)
   499  	KEY_10CHANNELSDOWN      = 0x1b9 // 10 channels down (10-)
   500  	KEY_IMAGES              = 0x1ba // AL Image Browser
   501  	KEY_NOTIFICATION_CENTER = 0x1bc // Show/hide the notification center
   502  	KEY_PICKUP_PHONE        = 0x1bd // Answer incoming call
   503  	KEY_HANGUP_PHONE        = 0x1be // Decline incoming call
   504  
   505  	KEY_DEL_EOL  = 0x1c0
   506  	KEY_DEL_EOS  = 0x1c1
   507  	KEY_INS_LINE = 0x1c2
   508  	KEY_DEL_LINE = 0x1c3
   509  
   510  	KEY_FN             = 0x1d0
   511  	KEY_FN_ESC         = 0x1d1
   512  	KEY_FN_F1          = 0x1d2
   513  	KEY_FN_F2          = 0x1d3
   514  	KEY_FN_F3          = 0x1d4
   515  	KEY_FN_F4          = 0x1d5
   516  	KEY_FN_F5          = 0x1d6
   517  	KEY_FN_F6          = 0x1d7
   518  	KEY_FN_F7          = 0x1d8
   519  	KEY_FN_F8          = 0x1d9
   520  	KEY_FN_F9          = 0x1da
   521  	KEY_FN_F10         = 0x1db
   522  	KEY_FN_F11         = 0x1dc
   523  	KEY_FN_F12         = 0x1dd
   524  	KEY_FN_1           = 0x1de
   525  	KEY_FN_2           = 0x1df
   526  	KEY_FN_D           = 0x1e0
   527  	KEY_FN_E           = 0x1e1
   528  	KEY_FN_F           = 0x1e2
   529  	KEY_FN_S           = 0x1e3
   530  	KEY_FN_B           = 0x1e4
   531  	KEY_FN_RIGHT_SHIFT = 0x1e5
   532  
   533  	KEY_BRL_DOT1  = 0x1f1
   534  	KEY_BRL_DOT2  = 0x1f2
   535  	KEY_BRL_DOT3  = 0x1f3
   536  	KEY_BRL_DOT4  = 0x1f4
   537  	KEY_BRL_DOT5  = 0x1f5
   538  	KEY_BRL_DOT6  = 0x1f6
   539  	KEY_BRL_DOT7  = 0x1f7
   540  	KEY_BRL_DOT8  = 0x1f8
   541  	KEY_BRL_DOT9  = 0x1f9
   542  	KEY_BRL_DOT10 = 0x1fa
   543  
   544  	KEY_NUMERIC_0     = 0x200 // used by phones, remote controls,
   545  	KEY_NUMERIC_1     = 0x201 // and other keypads
   546  	KEY_NUMERIC_2     = 0x202
   547  	KEY_NUMERIC_3     = 0x203
   548  	KEY_NUMERIC_4     = 0x204
   549  	KEY_NUMERIC_5     = 0x205
   550  	KEY_NUMERIC_6     = 0x206
   551  	KEY_NUMERIC_7     = 0x207
   552  	KEY_NUMERIC_8     = 0x208
   553  	KEY_NUMERIC_9     = 0x209
   554  	KEY_NUMERIC_STAR  = 0x20a
   555  	KEY_NUMERIC_POUND = 0x20b
   556  	KEY_NUMERIC_A     = 0x20c // Phone key A - HUT Telephony 0xb9
   557  	KEY_NUMERIC_B     = 0x20d
   558  	KEY_NUMERIC_C     = 0x20e
   559  	KEY_NUMERIC_D     = 0x20f
   560  
   561  	KEY_CAMERA_FOCUS = 0x210
   562  	KEY_WPS_BUTTON   = 0x211 // WiFi Protected Setup key
   563  
   564  	KEY_TOUCHPAD_TOGGLE = 0x212 // Request switch touchpad on or off
   565  	KEY_TOUCHPAD_ON     = 0x213
   566  	KEY_TOUCHPAD_OFF    = 0x214
   567  
   568  	KEY_CAMERA_ZOOMIN  = 0x215
   569  	KEY_CAMERA_ZOOMOUT = 0x216
   570  	KEY_CAMERA_UP      = 0x217
   571  	KEY_CAMERA_DOWN    = 0x218
   572  	KEY_CAMERA_LEFT    = 0x219
   573  	KEY_CAMERA_RIGHT   = 0x21a
   574  
   575  	KEY_ATTENDANT_ON     = 0x21b
   576  	KEY_ATTENDANT_OFF    = 0x21c
   577  	KEY_ATTENDANT_TOGGLE = 0x21d // Attendant call on or off
   578  	KEY_LIGHTS_TOGGLE    = 0x21e // Reading light on or off
   579  
   580  	BTN_DPAD_UP    = 0x220
   581  	BTN_DPAD_DOWN  = 0x221
   582  	BTN_DPAD_LEFT  = 0x222
   583  	BTN_DPAD_RIGHT = 0x223
   584  
   585  	KEY_ALS_TOGGLE         = 0x230 // Ambient light sensor
   586  	KEY_ROTATE_LOCK_TOGGLE = 0x231 // Display rotation lock
   587  
   588  	KEY_BUTTONCONFIG    = 0x240 // AL Button Configuration
   589  	KEY_TASKMANAGER     = 0x241 // AL Task/Project Manager
   590  	KEY_JOURNAL         = 0x242 // AL Log/Journal/Timecard
   591  	KEY_CONTROLPANEL    = 0x243 // AL Control Panel
   592  	KEY_APPSELECT       = 0x244 // AL Select Task/Application
   593  	KEY_SCREENSAVER     = 0x245 // AL Screen Saver
   594  	KEY_VOICECOMMAND    = 0x246 // Listening Voice Command
   595  	KEY_ASSISTANT       = 0x247 // AL Context-aware desktop assistant
   596  	KEY_KBD_LAYOUT_NEXT = 0x248 // AC Next Keyboard Layout Select
   597  	KEY_EMOJI_PICKER    = 0x249 // Show/hide emoji picker (HUTRR101)
   598  	KEY_DICTATE         = 0x24a // Start or Stop Voice Dictation Session (HUTRR99)
   599  
   600  	KEY_BRIGHTNESS_MIN = 0x250 // Set Brightness to Minimum
   601  	KEY_BRIGHTNESS_MAX = 0x251 // Set Brightness to Maximum
   602  
   603  	KEY_KBDINPUTASSIST_PREV      = 0x260
   604  	KEY_KBDINPUTASSIST_NEXT      = 0x261
   605  	KEY_KBDINPUTASSIST_PREVGROUP = 0x262
   606  	KEY_KBDINPUTASSIST_NEXTGROUP = 0x263
   607  	KEY_KBDINPUTASSIST_ACCEPT    = 0x264
   608  	KEY_KBDINPUTASSIST_CANCEL    = 0x265
   609  
   610  	// Diagonal movement keys
   611  
   612  	KEY_RIGHT_UP   = 0x266
   613  	KEY_RIGHT_DOWN = 0x267
   614  	KEY_LEFT_UP    = 0x268
   615  	KEY_LEFT_DOWN  = 0x269
   616  
   617  	KEY_ROOT_MENU = 0x26a // Show Device's Root Menu
   618  	// Show Top Menu of the Media (e.g. DVD)
   619  
   620  	KEY_MEDIA_TOP_MENU = 0x26b
   621  	KEY_NUMERIC_11     = 0x26c
   622  	KEY_NUMERIC_12     = 0x26d
   623  	// Toggle Audio Description: refers to an audio service that helps blind and
   624  	// visually impaired consumers understand the action in a program. Note: in
   625  	// some countries this is referred to as "Video Description".
   626  
   627  	KEY_AUDIO_DESC    = 0x26e
   628  	KEY_3D_MODE       = 0x26f
   629  	KEY_NEXT_FAVORITE = 0x270
   630  	KEY_STOP_RECORD   = 0x271
   631  	KEY_PAUSE_RECORD  = 0x272
   632  	KEY_VOD           = 0x273 // Video on Demand
   633  	KEY_UNMUTE        = 0x274
   634  	KEY_FASTREVERSE   = 0x275
   635  	KEY_SLOWREVERSE   = 0x276
   636  	// Control a data application associated with the currently viewed channel,
   637  	// e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
   638  
   639  	KEY_DATA              = 0x277
   640  	KEY_ONSCREEN_KEYBOARD = 0x278
   641  	// Electronic privacy screen control
   642  
   643  	KEY_PRIVACY_SCREEN_TOGGLE = 0x279
   644  
   645  	// Select an area of screen to be copied
   646  
   647  	KEY_SELECTIVE_SCREENSHOT = 0x27a
   648  
   649  	// Some keyboards have keys which do not have a defined meaning, these keys
   650  	// are intended to be programmed / bound to macros by the user. For most
   651  	// keyboards with these macro-keys the key-sequence to inject, or action to
   652  	// take, is all handled by software on the host side. So from the kernel's
   653  	// point of view these are just normal keys.
   654  	// The KEY_MACRO# codes below are intended for such keys, which may be labeled
   655  	// e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
   656  	// where the marking on the key does indicate a defined meaning / purpose.
   657  	// The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
   658  	// KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
   659  	// define MUST be added.
   660  
   661  	KEY_MACRO1  = 0x290
   662  	KEY_MACRO2  = 0x291
   663  	KEY_MACRO3  = 0x292
   664  	KEY_MACRO4  = 0x293
   665  	KEY_MACRO5  = 0x294
   666  	KEY_MACRO6  = 0x295
   667  	KEY_MACRO7  = 0x296
   668  	KEY_MACRO8  = 0x297
   669  	KEY_MACRO9  = 0x298
   670  	KEY_MACRO10 = 0x299
   671  	KEY_MACRO11 = 0x29a
   672  	KEY_MACRO12 = 0x29b
   673  	KEY_MACRO13 = 0x29c
   674  	KEY_MACRO14 = 0x29d
   675  	KEY_MACRO15 = 0x29e
   676  	KEY_MACRO16 = 0x29f
   677  	KEY_MACRO17 = 0x2a0
   678  	KEY_MACRO18 = 0x2a1
   679  	KEY_MACRO19 = 0x2a2
   680  	KEY_MACRO20 = 0x2a3
   681  	KEY_MACRO21 = 0x2a4
   682  	KEY_MACRO22 = 0x2a5
   683  	KEY_MACRO23 = 0x2a6
   684  	KEY_MACRO24 = 0x2a7
   685  	KEY_MACRO25 = 0x2a8
   686  	KEY_MACRO26 = 0x2a9
   687  	KEY_MACRO27 = 0x2aa
   688  	KEY_MACRO28 = 0x2ab
   689  	KEY_MACRO29 = 0x2ac
   690  	KEY_MACRO30 = 0x2ad
   691  
   692  	// Some keyboards with the macro-keys described above have some extra keys
   693  	// for controlling the host-side software responsible for the macro handling:
   694  	// -A macro recording start/stop key. Note that not all keyboards which emit
   695  	// KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
   696  	// KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
   697  	// should be interpreted as a recording start/stop toggle;
   698  	// -Keys for switching between different macro (pre)sets, either a key for
   699  	// cycling through the configured presets or keys to directly select a preset.
   700  
   701  	KEY_MACRO_RECORD_START = 0x2b0
   702  	KEY_MACRO_RECORD_STOP  = 0x2b1
   703  	KEY_MACRO_PRESET_CYCLE = 0x2b2
   704  	KEY_MACRO_PRESET1      = 0x2b3
   705  	KEY_MACRO_PRESET2      = 0x2b4
   706  	KEY_MACRO_PRESET3      = 0x2b5
   707  
   708  	// Some keyboards have a buildin LCD panel where the contents are controlled
   709  	// by the host. Often these have a number of keys directly below the LCD
   710  	// intended for controlling a menu shown on the LCD. These keys often don't
   711  	// have any labeling so we just name them KEY_KBD_LCD_MENU#
   712  
   713  	KEY_KBD_LCD_MENU1 = 0x2b8
   714  	KEY_KBD_LCD_MENU2 = 0x2b9
   715  	KEY_KBD_LCD_MENU3 = 0x2ba
   716  	KEY_KBD_LCD_MENU4 = 0x2bb
   717  	KEY_KBD_LCD_MENU5 = 0x2bc
   718  
   719  	BTN_TRIGGER_HAPPY   = 0x2c0
   720  	BTN_TRIGGER_HAPPY1  = 0x2c0
   721  	BTN_TRIGGER_HAPPY2  = 0x2c1
   722  	BTN_TRIGGER_HAPPY3  = 0x2c2
   723  	BTN_TRIGGER_HAPPY4  = 0x2c3
   724  	BTN_TRIGGER_HAPPY5  = 0x2c4
   725  	BTN_TRIGGER_HAPPY6  = 0x2c5
   726  	BTN_TRIGGER_HAPPY7  = 0x2c6
   727  	BTN_TRIGGER_HAPPY8  = 0x2c7
   728  	BTN_TRIGGER_HAPPY9  = 0x2c8
   729  	BTN_TRIGGER_HAPPY10 = 0x2c9
   730  	BTN_TRIGGER_HAPPY11 = 0x2ca
   731  	BTN_TRIGGER_HAPPY12 = 0x2cb
   732  	BTN_TRIGGER_HAPPY13 = 0x2cc
   733  	BTN_TRIGGER_HAPPY14 = 0x2cd
   734  	BTN_TRIGGER_HAPPY15 = 0x2ce
   735  	BTN_TRIGGER_HAPPY16 = 0x2cf
   736  	BTN_TRIGGER_HAPPY17 = 0x2d0
   737  	BTN_TRIGGER_HAPPY18 = 0x2d1
   738  	BTN_TRIGGER_HAPPY19 = 0x2d2
   739  	BTN_TRIGGER_HAPPY20 = 0x2d3
   740  	BTN_TRIGGER_HAPPY21 = 0x2d4
   741  	BTN_TRIGGER_HAPPY22 = 0x2d5
   742  	BTN_TRIGGER_HAPPY23 = 0x2d6
   743  	BTN_TRIGGER_HAPPY24 = 0x2d7
   744  	BTN_TRIGGER_HAPPY25 = 0x2d8
   745  	BTN_TRIGGER_HAPPY26 = 0x2d9
   746  	BTN_TRIGGER_HAPPY27 = 0x2da
   747  	BTN_TRIGGER_HAPPY28 = 0x2db
   748  	BTN_TRIGGER_HAPPY29 = 0x2dc
   749  	BTN_TRIGGER_HAPPY30 = 0x2dd
   750  	BTN_TRIGGER_HAPPY31 = 0x2de
   751  	BTN_TRIGGER_HAPPY32 = 0x2df
   752  	BTN_TRIGGER_HAPPY33 = 0x2e0
   753  	BTN_TRIGGER_HAPPY34 = 0x2e1
   754  	BTN_TRIGGER_HAPPY35 = 0x2e2
   755  	BTN_TRIGGER_HAPPY36 = 0x2e3
   756  	BTN_TRIGGER_HAPPY37 = 0x2e4
   757  	BTN_TRIGGER_HAPPY38 = 0x2e5
   758  	BTN_TRIGGER_HAPPY39 = 0x2e6
   759  	BTN_TRIGGER_HAPPY40 = 0x2e7
   760  
   761  	// We avoid low common keys in module aliases so they don't get huge.
   762  
   763  	KEY_MIN_INTERESTING = KEY_MUTE
   764  	KEY_MAX             = 0x2ff
   765  	KEY_CNT             = (KEY_MAX + 1)
   766  )
   767  
   768  // Relative axes
   769  const (
   770  	REL_X      = 0x00
   771  	REL_Y      = 0x01
   772  	REL_Z      = 0x02
   773  	REL_RX     = 0x03
   774  	REL_RY     = 0x04
   775  	REL_RZ     = 0x05
   776  	REL_HWHEEL = 0x06
   777  	REL_DIAL   = 0x07
   778  	REL_WHEEL  = 0x08
   779  	REL_MISC   = 0x09
   780  	// 0x0a is reserved and should not be used in input drivers.
   781  	// It was used by HID as REL_MISC+1 and userspace needs to detect if
   782  	// the next REL_* event is correct or is just REL_MISC + n.
   783  	// We define here REL_RESERVED so userspace can rely on it and detect
   784  	// the situation described above.
   785  
   786  	REL_RESERVED      = 0x0a
   787  	REL_WHEEL_HI_RES  = 0x0b
   788  	REL_HWHEEL_HI_RES = 0x0c
   789  	REL_MAX           = 0x0f
   790  	REL_CNT           = (REL_MAX + 1)
   791  )
   792  
   793  // Absolute axes
   794  const (
   795  	ABS_X          = 0x00
   796  	ABS_Y          = 0x01
   797  	ABS_Z          = 0x02
   798  	ABS_RX         = 0x03
   799  	ABS_RY         = 0x04
   800  	ABS_RZ         = 0x05
   801  	ABS_THROTTLE   = 0x06
   802  	ABS_RUDDER     = 0x07
   803  	ABS_WHEEL      = 0x08
   804  	ABS_GAS        = 0x09
   805  	ABS_BRAKE      = 0x0a
   806  	ABS_HAT0X      = 0x10
   807  	ABS_HAT0Y      = 0x11
   808  	ABS_HAT1X      = 0x12
   809  	ABS_HAT1Y      = 0x13
   810  	ABS_HAT2X      = 0x14
   811  	ABS_HAT2Y      = 0x15
   812  	ABS_HAT3X      = 0x16
   813  	ABS_HAT3Y      = 0x17
   814  	ABS_PRESSURE   = 0x18
   815  	ABS_DISTANCE   = 0x19
   816  	ABS_TILT_X     = 0x1a
   817  	ABS_TILT_Y     = 0x1b
   818  	ABS_TOOL_WIDTH = 0x1c
   819  
   820  	ABS_VOLUME = 0x20
   821  
   822  	ABS_MISC = 0x28
   823  
   824  	// 0x2e is reserved and should not be used in input drivers.
   825  	// It was used by HID as ABS_MISC+6 and userspace needs to detect if
   826  	// the next ABS_* event is correct or is just ABS_MISC + n.
   827  	// We define here ABS_RESERVED so userspace can rely on it and detect
   828  	// the situation described above.
   829  
   830  	ABS_RESERVED = 0x2e
   831  
   832  	ABS_MT_SLOT        = 0x2f // MT slot being modified
   833  	ABS_MT_TOUCH_MAJOR = 0x30 // Major axis of touching ellipse
   834  	ABS_MT_TOUCH_MINOR = 0x31 // Minor axis (omit if circular)
   835  	ABS_MT_WIDTH_MAJOR = 0x32 // Major axis of approaching ellipse
   836  	ABS_MT_WIDTH_MINOR = 0x33 // Minor axis (omit if circular)
   837  	ABS_MT_ORIENTATION = 0x34 // Ellipse orientation
   838  	ABS_MT_POSITION_X  = 0x35 // Center X touch position
   839  	ABS_MT_POSITION_Y  = 0x36 // Center Y touch position
   840  	ABS_MT_TOOL_TYPE   = 0x37 // Type of touching device
   841  	ABS_MT_BLOB_ID     = 0x38 // Group a set of packets as a blob
   842  	ABS_MT_TRACKING_ID = 0x39 // Unique ID of initiated contact
   843  	ABS_MT_PRESSURE    = 0x3a // Pressure on contact area
   844  	ABS_MT_DISTANCE    = 0x3b // Contact hover distance
   845  	ABS_MT_TOOL_X      = 0x3c // Center X tool position
   846  	ABS_MT_TOOL_Y      = 0x3d // Center Y tool position
   847  
   848  	ABS_MAX = 0x3f
   849  	ABS_CNT = (ABS_MAX + 1)
   850  )
   851  
   852  // Switch events
   853  const (
   854  	SW_LID              = 0x00 // set = lid shut
   855  	SW_TABLET_MODE      = 0x01 // set = tablet mode
   856  	SW_HEADPHONE_INSERT = 0x02 // set = inserted
   857  	SW_RFKILL_ALL       = 0x03 // rfkill master switch, type "any"set = radio enabled
   858  
   859  	SW_RADIO                = SW_RFKILL_ALL // deprecated
   860  	SW_MICROPHONE_INSERT    = 0x04          // set = inserted
   861  	SW_DOCK                 = 0x05          // set = plugged into dock
   862  	SW_LINEOUT_INSERT       = 0x06          // set = inserted
   863  	SW_JACK_PHYSICAL_INSERT = 0x07          // set = mechanical switch set
   864  	SW_VIDEOOUT_INSERT      = 0x08          // set = inserted
   865  	SW_CAMERA_LENS_COVER    = 0x09          // set = lens covered
   866  	SW_KEYPAD_SLIDE         = 0x0a          // set = keypad slide out
   867  	SW_FRONT_PROXIMITY      = 0x0b          // set = front proximity sensor active
   868  	SW_ROTATE_LOCK          = 0x0c          // set = rotate locked/disabled
   869  	SW_LINEIN_INSERT        = 0x0d          // set = inserted
   870  	SW_MUTE_DEVICE          = 0x0e          // set = device disabled
   871  	SW_PEN_INSERTED         = 0x0f          // set = pen inserted
   872  	SW_MACHINE_COVER        = 0x10          // set = cover closed
   873  	SW_MAX                  = 0x10
   874  	SW_CNT                  = (SW_MAX + 1)
   875  )
   876  
   877  // Misc events
   878  const (
   879  	MSC_SERIAL    = 0x00
   880  	MSC_PULSELED  = 0x01
   881  	MSC_GESTURE   = 0x02
   882  	MSC_RAW       = 0x03
   883  	MSC_SCAN      = 0x04
   884  	MSC_TIMESTAMP = 0x05
   885  	MSC_MAX       = 0x07
   886  	MSC_CNT       = (MSC_MAX + 1)
   887  )
   888  
   889  // LEDs
   890  const (
   891  	LED_NUML     = 0x00
   892  	LED_CAPSL    = 0x01
   893  	LED_SCROLLL  = 0x02
   894  	LED_COMPOSE  = 0x03
   895  	LED_KANA     = 0x04
   896  	LED_SLEEP    = 0x05
   897  	LED_SUSPEND  = 0x06
   898  	LED_MUTE     = 0x07
   899  	LED_MISC     = 0x08
   900  	LED_MAIL     = 0x09
   901  	LED_CHARGING = 0x0a
   902  	LED_MAX      = 0x0f
   903  	LED_CNT      = (LED_MAX + 1)
   904  )
   905  
   906  // Autorepeat values
   907  const (
   908  	REP_DELAY  = 0x00
   909  	REP_PERIOD = 0x01
   910  	REP_MAX    = 0x01
   911  	REP_CNT    = (REP_MAX + 1)
   912  )
   913  
   914  // Sounds
   915  const (
   916  	SND_CLICK = 0x00
   917  	SND_BELL  = 0x01
   918  	SND_TONE  = 0x02
   919  	SND_MAX   = 0x07
   920  	SND_CNT   = (SND_MAX + 1)
   921  )
   922  
   923  // IDs.
   924  const (
   925  	ID_BUS     = 0
   926  	ID_VENDOR  = 1
   927  	ID_PRODUCT = 2
   928  	ID_VERSION = 3
   929  )
   930  
   931  const (
   932  	BUS_PCI       = 0x01
   933  	BUS_ISAPNP    = 0x02
   934  	BUS_USB       = 0x03
   935  	BUS_HIL       = 0x04
   936  	BUS_BLUETOOTH = 0x05
   937  	BUS_VIRTUAL   = 0x06
   938  
   939  	BUS_ISA         = 0x10
   940  	BUS_I8042       = 0x11
   941  	BUS_XTKBD       = 0x12
   942  	BUS_RS232       = 0x13
   943  	BUS_GAMEPORT    = 0x14
   944  	BUS_PARPORT     = 0x15
   945  	BUS_AMIGA       = 0x16
   946  	BUS_ADB         = 0x17
   947  	BUS_I2C         = 0x18
   948  	BUS_HOST        = 0x19
   949  	BUS_GSC         = 0x1A
   950  	BUS_ATARI       = 0x1B
   951  	BUS_SPI         = 0x1C
   952  	BUS_RMI         = 0x1D
   953  	BUS_CEC         = 0x1E
   954  	BUS_INTEL_ISHTP = 0x1F
   955  )
   956  
   957  // MT_TOOL types
   958  const (
   959  	MT_TOOL_FINGER = 0x00
   960  	MT_TOOL_PEN    = 0x01
   961  	MT_TOOL_PALM   = 0x02
   962  	MT_TOOL_DIAL   = 0x0a
   963  	MT_TOOL_MAX    = 0x0f
   964  )
   965  
   966  // Values describing the status of a force-feedback effect
   967  const (
   968  	FF_STATUS_STOPPED = 0x00
   969  	FF_STATUS_PLAYING = 0x01
   970  	FF_STATUS_MAX     = 0x01
   971  
   972  	// Force feedback effect types
   973  
   974  	FF_RUMBLE   = 0x50
   975  	FF_PERIODIC = 0x51
   976  	FF_CONSTANT = 0x52
   977  	FF_SPRING   = 0x53
   978  	FF_FRICTION = 0x54
   979  	FF_DAMPER   = 0x55
   980  	FF_INERTIA  = 0x56
   981  	FF_RAMP     = 0x57
   982  
   983  	FF_EFFECT_MIN = FF_RUMBLE
   984  	FF_EFFECT_MAX = FF_RAMP
   985  
   986  	// Force feedback periodic effect types
   987  
   988  	FF_SQUARE   = 0x58
   989  	FF_TRIANGLE = 0x59
   990  	FF_SINE     = 0x5a
   991  	FF_SAW_UP   = 0x5b
   992  	FF_SAW_DOWN = 0x5c
   993  	FF_CUSTOM   = 0x5d
   994  
   995  	FF_WAVEFORM_MIN = FF_SQUARE
   996  	FF_WAVEFORM_MAX = FF_CUSTOM
   997  
   998  	// Set ff device properties
   999  
  1000  	FF_GAIN       = 0x60
  1001  	FF_AUTOCENTER = 0x61
  1002  
  1003  	// ff->playback(effect_id = FF_GAIN) is the first effect_id to
  1004  	// cause a collision with another ff method, in this case ff->set_gain().
  1005  	// Therefore the greatest safe value for effect_id is FF_GAIN - 1,
  1006  	// and thus the total number of effects should never exceed FF_GAIN.
  1007  
  1008  	FF_MAX_EFFECTS = FF_GAIN
  1009  
  1010  	FF_MAX = 0x7f
  1011  	FF_CNT = (FF_MAX + 1)
  1012  )
  1013  
  1014  //
  1015  // Type to String
  1016  //
  1017  
  1018  var INPUTToString = map[EvProp]string{
  1019  	INPUT_PROP_POINTER:        "INPUT_PROP_POINTER",
  1020  	INPUT_PROP_DIRECT:         "INPUT_PROP_DIRECT",
  1021  	INPUT_PROP_BUTTONPAD:      "INPUT_PROP_BUTTONPAD",
  1022  	INPUT_PROP_SEMI_MT:        "INPUT_PROP_SEMI_MT",
  1023  	INPUT_PROP_TOPBUTTONPAD:   "INPUT_PROP_TOPBUTTONPAD",
  1024  	INPUT_PROP_POINTING_STICK: "INPUT_PROP_POINTING_STICK",
  1025  	INPUT_PROP_ACCELEROMETER:  "INPUT_PROP_ACCELEROMETER",
  1026  
  1027  	INPUT_PROP_MAX: "INPUT_PROP_MAX",
  1028  	INPUT_PROP_CNT: "INPUT_PROP_CNT",
  1029  }
  1030  
  1031  var EVToString = map[EvType]string{
  1032  	EV_SYN:       "EV_SYN",
  1033  	EV_KEY:       "EV_KEY",
  1034  	EV_REL:       "EV_REL",
  1035  	EV_ABS:       "EV_ABS",
  1036  	EV_MSC:       "EV_MSC",
  1037  	EV_SW:        "EV_SW",
  1038  	EV_LED:       "EV_LED",
  1039  	EV_SND:       "EV_SND",
  1040  	EV_REP:       "EV_REP",
  1041  	EV_FF:        "EV_FF",
  1042  	EV_PWR:       "EV_PWR",
  1043  	EV_FF_STATUS: "EV_FF_STATUS",
  1044  	EV_MAX:       "EV_MAX",
  1045  	EV_CNT:       "EV_CNT",
  1046  }
  1047  
  1048  var SYNToString = map[EvCode]string{
  1049  	SYN_REPORT:    "SYN_REPORT",
  1050  	SYN_CONFIG:    "SYN_CONFIG",
  1051  	SYN_MT_REPORT: "SYN_MT_REPORT",
  1052  	SYN_DROPPED:   "SYN_DROPPED",
  1053  	SYN_MAX:       "SYN_MAX",
  1054  	SYN_CNT:       "SYN_CNT",
  1055  }
  1056  
  1057  var KEYToString = map[EvCode]string{
  1058  	KEY_RESERVED:   "KEY_RESERVED",
  1059  	KEY_ESC:        "KEY_ESC",
  1060  	KEY_1:          "KEY_1",
  1061  	KEY_2:          "KEY_2",
  1062  	KEY_3:          "KEY_3",
  1063  	KEY_4:          "KEY_4",
  1064  	KEY_5:          "KEY_5",
  1065  	KEY_6:          "KEY_6",
  1066  	KEY_7:          "KEY_7",
  1067  	KEY_8:          "KEY_8",
  1068  	KEY_9:          "KEY_9",
  1069  	KEY_0:          "KEY_0",
  1070  	KEY_MINUS:      "KEY_MINUS",
  1071  	KEY_EQUAL:      "KEY_EQUAL",
  1072  	KEY_BACKSPACE:  "KEY_BACKSPACE",
  1073  	KEY_TAB:        "KEY_TAB",
  1074  	KEY_Q:          "KEY_Q",
  1075  	KEY_W:          "KEY_W",
  1076  	KEY_E:          "KEY_E",
  1077  	KEY_R:          "KEY_R",
  1078  	KEY_T:          "KEY_T",
  1079  	KEY_Y:          "KEY_Y",
  1080  	KEY_U:          "KEY_U",
  1081  	KEY_I:          "KEY_I",
  1082  	KEY_O:          "KEY_O",
  1083  	KEY_P:          "KEY_P",
  1084  	KEY_LEFTBRACE:  "KEY_LEFTBRACE",
  1085  	KEY_RIGHTBRACE: "KEY_RIGHTBRACE",
  1086  	KEY_ENTER:      "KEY_ENTER",
  1087  	KEY_LEFTCTRL:   "KEY_LEFTCTRL",
  1088  	KEY_A:          "KEY_A",
  1089  	KEY_S:          "KEY_S",
  1090  	KEY_D:          "KEY_D",
  1091  	KEY_F:          "KEY_F",
  1092  	KEY_G:          "KEY_G",
  1093  	KEY_H:          "KEY_H",
  1094  	KEY_J:          "KEY_J",
  1095  	KEY_K:          "KEY_K",
  1096  	KEY_L:          "KEY_L",
  1097  	KEY_SEMICOLON:  "KEY_SEMICOLON",
  1098  	KEY_APOSTROPHE: "KEY_APOSTROPHE",
  1099  	KEY_GRAVE:      "KEY_GRAVE",
  1100  	KEY_LEFTSHIFT:  "KEY_LEFTSHIFT",
  1101  	KEY_BACKSLASH:  "KEY_BACKSLASH",
  1102  	KEY_Z:          "KEY_Z",
  1103  	KEY_X:          "KEY_X",
  1104  	KEY_C:          "KEY_C",
  1105  	KEY_V:          "KEY_V",
  1106  	KEY_B:          "KEY_B",
  1107  	KEY_N:          "KEY_N",
  1108  	KEY_M:          "KEY_M",
  1109  	KEY_COMMA:      "KEY_COMMA",
  1110  	KEY_DOT:        "KEY_DOT",
  1111  	KEY_SLASH:      "KEY_SLASH",
  1112  	KEY_RIGHTSHIFT: "KEY_RIGHTSHIFT",
  1113  	KEY_KPASTERISK: "KEY_KPASTERISK",
  1114  	KEY_LEFTALT:    "KEY_LEFTALT",
  1115  	KEY_SPACE:      "KEY_SPACE",
  1116  	KEY_CAPSLOCK:   "KEY_CAPSLOCK",
  1117  	KEY_F1:         "KEY_F1",
  1118  	KEY_F2:         "KEY_F2",
  1119  	KEY_F3:         "KEY_F3",
  1120  	KEY_F4:         "KEY_F4",
  1121  	KEY_F5:         "KEY_F5",
  1122  	KEY_F6:         "KEY_F6",
  1123  	KEY_F7:         "KEY_F7",
  1124  	KEY_F8:         "KEY_F8",
  1125  	KEY_F9:         "KEY_F9",
  1126  	KEY_F10:        "KEY_F10",
  1127  	KEY_NUMLOCK:    "KEY_NUMLOCK",
  1128  	KEY_SCROLLLOCK: "KEY_SCROLLLOCK",
  1129  	KEY_KP7:        "KEY_KP7",
  1130  	KEY_KP8:        "KEY_KP8",
  1131  	KEY_KP9:        "KEY_KP9",
  1132  	KEY_KPMINUS:    "KEY_KPMINUS",
  1133  	KEY_KP4:        "KEY_KP4",
  1134  	KEY_KP5:        "KEY_KP5",
  1135  	KEY_KP6:        "KEY_KP6",
  1136  	KEY_KPPLUS:     "KEY_KPPLUS",
  1137  	KEY_KP1:        "KEY_KP1",
  1138  	KEY_KP2:        "KEY_KP2",
  1139  	KEY_KP3:        "KEY_KP3",
  1140  	KEY_KP0:        "KEY_KP0",
  1141  	KEY_KPDOT:      "KEY_KPDOT",
  1142  
  1143  	KEY_ZENKAKUHANKAKU:   "KEY_ZENKAKUHANKAKU",
  1144  	KEY_102ND:            "KEY_102ND",
  1145  	KEY_F11:              "KEY_F11",
  1146  	KEY_F12:              "KEY_F12",
  1147  	KEY_RO:               "KEY_RO",
  1148  	KEY_KATAKANA:         "KEY_KATAKANA",
  1149  	KEY_HIRAGANA:         "KEY_HIRAGANA",
  1150  	KEY_HENKAN:           "KEY_HENKAN",
  1151  	KEY_KATAKANAHIRAGANA: "KEY_KATAKANAHIRAGANA",
  1152  	KEY_MUHENKAN:         "KEY_MUHENKAN",
  1153  	KEY_KPJPCOMMA:        "KEY_KPJPCOMMA",
  1154  	KEY_KPENTER:          "KEY_KPENTER",
  1155  	KEY_RIGHTCTRL:        "KEY_RIGHTCTRL",
  1156  	KEY_KPSLASH:          "KEY_KPSLASH",
  1157  	KEY_SYSRQ:            "KEY_SYSRQ",
  1158  	KEY_RIGHTALT:         "KEY_RIGHTALT",
  1159  	KEY_LINEFEED:         "KEY_LINEFEED",
  1160  	KEY_HOME:             "KEY_HOME",
  1161  	KEY_UP:               "KEY_UP",
  1162  	KEY_PAGEUP:           "KEY_PAGEUP",
  1163  	KEY_LEFT:             "KEY_LEFT",
  1164  	KEY_RIGHT:            "KEY_RIGHT",
  1165  	KEY_END:              "KEY_END",
  1166  	KEY_DOWN:             "KEY_DOWN",
  1167  	KEY_PAGEDOWN:         "KEY_PAGEDOWN",
  1168  	KEY_INSERT:           "KEY_INSERT",
  1169  	KEY_DELETE:           "KEY_DELETE",
  1170  	KEY_MACRO:            "KEY_MACRO",
  1171  	KEY_MUTE:             "KEY_MUTE",
  1172  	KEY_VOLUMEDOWN:       "KEY_VOLUMEDOWN",
  1173  	KEY_VOLUMEUP:         "KEY_VOLUMEUP",
  1174  	KEY_POWER:            "KEY_POWER",
  1175  	KEY_KPEQUAL:          "KEY_KPEQUAL",
  1176  	KEY_KPPLUSMINUS:      "KEY_KPPLUSMINUS",
  1177  	KEY_PAUSE:            "KEY_PAUSE",
  1178  	KEY_SCALE:            "KEY_SCALE",
  1179  
  1180  	KEY_KPCOMMA: "KEY_KPCOMMA",
  1181  	KEY_HANGEUL: "KEY_HANGEUL",
  1182  	// KEY_HANGUEL: "KEY_HANGUEL", // (KEY_HANGEUL)
  1183  	KEY_HANJA:     "KEY_HANJA",
  1184  	KEY_YEN:       "KEY_YEN",
  1185  	KEY_LEFTMETA:  "KEY_LEFTMETA",
  1186  	KEY_RIGHTMETA: "KEY_RIGHTMETA",
  1187  	KEY_COMPOSE:   "KEY_COMPOSE",
  1188  
  1189  	KEY_STOP:       "KEY_STOP",
  1190  	KEY_AGAIN:      "KEY_AGAIN",
  1191  	KEY_PROPS:      "KEY_PROPS",
  1192  	KEY_UNDO:       "KEY_UNDO",
  1193  	KEY_FRONT:      "KEY_FRONT",
  1194  	KEY_COPY:       "KEY_COPY",
  1195  	KEY_OPEN:       "KEY_OPEN",
  1196  	KEY_PASTE:      "KEY_PASTE",
  1197  	KEY_FIND:       "KEY_FIND",
  1198  	KEY_CUT:        "KEY_CUT",
  1199  	KEY_HELP:       "KEY_HELP",
  1200  	KEY_MENU:       "KEY_MENU",
  1201  	KEY_CALC:       "KEY_CALC",
  1202  	KEY_SETUP:      "KEY_SETUP",
  1203  	KEY_SLEEP:      "KEY_SLEEP",
  1204  	KEY_WAKEUP:     "KEY_WAKEUP",
  1205  	KEY_FILE:       "KEY_FILE",
  1206  	KEY_SENDFILE:   "KEY_SENDFILE",
  1207  	KEY_DELETEFILE: "KEY_DELETEFILE",
  1208  	KEY_XFER:       "KEY_XFER",
  1209  	KEY_PROG1:      "KEY_PROG1",
  1210  	KEY_PROG2:      "KEY_PROG2",
  1211  	KEY_WWW:        "KEY_WWW",
  1212  	KEY_MSDOS:      "KEY_MSDOS",
  1213  	KEY_COFFEE:     "KEY_COFFEE",
  1214  	// KEY_SCREENLOCK: "KEY_SCREENLOCK", // (KEY_COFFEE)
  1215  	KEY_ROTATE_DISPLAY: "KEY_ROTATE_DISPLAY",
  1216  	// KEY_DIRECTION: "KEY_DIRECTION", // (KEY_ROTATE_DISPLAY)
  1217  	KEY_CYCLEWINDOWS: "KEY_CYCLEWINDOWS",
  1218  	KEY_MAIL:         "KEY_MAIL",
  1219  	KEY_BOOKMARKS:    "KEY_BOOKMARKS",
  1220  	KEY_COMPUTER:     "KEY_COMPUTER",
  1221  	KEY_BACK:         "KEY_BACK",
  1222  	KEY_FORWARD:      "KEY_FORWARD",
  1223  	KEY_CLOSECD:      "KEY_CLOSECD",
  1224  	KEY_EJECTCD:      "KEY_EJECTCD",
  1225  	KEY_EJECTCLOSECD: "KEY_EJECTCLOSECD",
  1226  	KEY_NEXTSONG:     "KEY_NEXTSONG",
  1227  	KEY_PLAYPAUSE:    "KEY_PLAYPAUSE",
  1228  	KEY_PREVIOUSSONG: "KEY_PREVIOUSSONG",
  1229  	KEY_STOPCD:       "KEY_STOPCD",
  1230  	KEY_RECORD:       "KEY_RECORD",
  1231  	KEY_REWIND:       "KEY_REWIND",
  1232  	KEY_PHONE:        "KEY_PHONE",
  1233  	KEY_ISO:          "KEY_ISO",
  1234  	KEY_CONFIG:       "KEY_CONFIG",
  1235  	KEY_HOMEPAGE:     "KEY_HOMEPAGE",
  1236  	KEY_REFRESH:      "KEY_REFRESH",
  1237  	KEY_EXIT:         "KEY_EXIT",
  1238  	KEY_MOVE:         "KEY_MOVE",
  1239  	KEY_EDIT:         "KEY_EDIT",
  1240  	KEY_SCROLLUP:     "KEY_SCROLLUP",
  1241  	KEY_SCROLLDOWN:   "KEY_SCROLLDOWN",
  1242  	KEY_KPLEFTPAREN:  "KEY_KPLEFTPAREN",
  1243  	KEY_KPRIGHTPAREN: "KEY_KPRIGHTPAREN",
  1244  	KEY_NEW:          "KEY_NEW",
  1245  	KEY_REDO:         "KEY_REDO",
  1246  
  1247  	KEY_F13: "KEY_F13",
  1248  	KEY_F14: "KEY_F14",
  1249  	KEY_F15: "KEY_F15",
  1250  	KEY_F16: "KEY_F16",
  1251  	KEY_F17: "KEY_F17",
  1252  	KEY_F18: "KEY_F18",
  1253  	KEY_F19: "KEY_F19",
  1254  	KEY_F20: "KEY_F20",
  1255  	KEY_F21: "KEY_F21",
  1256  	KEY_F22: "KEY_F22",
  1257  	KEY_F23: "KEY_F23",
  1258  	KEY_F24: "KEY_F24",
  1259  
  1260  	KEY_PLAYCD:           "KEY_PLAYCD",
  1261  	KEY_PAUSECD:          "KEY_PAUSECD",
  1262  	KEY_PROG3:            "KEY_PROG3",
  1263  	KEY_PROG4:            "KEY_PROG4",
  1264  	KEY_ALL_APPLICATIONS: "KEY_ALL_APPLICATIONS",
  1265  	// KEY_DASHBOARD: "KEY_DASHBOARD", // (KEY_ALL_APPLICATIONS)
  1266  	KEY_SUSPEND:        "KEY_SUSPEND",
  1267  	KEY_CLOSE:          "KEY_CLOSE",
  1268  	KEY_PLAY:           "KEY_PLAY",
  1269  	KEY_FASTFORWARD:    "KEY_FASTFORWARD",
  1270  	KEY_BASSBOOST:      "KEY_BASSBOOST",
  1271  	KEY_PRINT:          "KEY_PRINT",
  1272  	KEY_HP:             "KEY_HP",
  1273  	KEY_CAMERA:         "KEY_CAMERA",
  1274  	KEY_SOUND:          "KEY_SOUND",
  1275  	KEY_QUESTION:       "KEY_QUESTION",
  1276  	KEY_EMAIL:          "KEY_EMAIL",
  1277  	KEY_CHAT:           "KEY_CHAT",
  1278  	KEY_SEARCH:         "KEY_SEARCH",
  1279  	KEY_CONNECT:        "KEY_CONNECT",
  1280  	KEY_FINANCE:        "KEY_FINANCE",
  1281  	KEY_SPORT:          "KEY_SPORT",
  1282  	KEY_SHOP:           "KEY_SHOP",
  1283  	KEY_ALTERASE:       "KEY_ALTERASE",
  1284  	KEY_CANCEL:         "KEY_CANCEL",
  1285  	KEY_BRIGHTNESSDOWN: "KEY_BRIGHTNESSDOWN",
  1286  	KEY_BRIGHTNESSUP:   "KEY_BRIGHTNESSUP",
  1287  	KEY_MEDIA:          "KEY_MEDIA",
  1288  
  1289  	KEY_SWITCHVIDEOMODE: "KEY_SWITCHVIDEOMODE",
  1290  	KEY_KBDILLUMTOGGLE:  "KEY_KBDILLUMTOGGLE",
  1291  	KEY_KBDILLUMDOWN:    "KEY_KBDILLUMDOWN",
  1292  	KEY_KBDILLUMUP:      "KEY_KBDILLUMUP",
  1293  
  1294  	KEY_SEND:        "KEY_SEND",
  1295  	KEY_REPLY:       "KEY_REPLY",
  1296  	KEY_FORWARDMAIL: "KEY_FORWARDMAIL",
  1297  	KEY_SAVE:        "KEY_SAVE",
  1298  	KEY_DOCUMENTS:   "KEY_DOCUMENTS",
  1299  
  1300  	KEY_BATTERY: "KEY_BATTERY",
  1301  
  1302  	KEY_BLUETOOTH: "KEY_BLUETOOTH",
  1303  	KEY_WLAN:      "KEY_WLAN",
  1304  	KEY_UWB:       "KEY_UWB",
  1305  
  1306  	KEY_UNKNOWN: "KEY_UNKNOWN",
  1307  
  1308  	KEY_VIDEO_NEXT:       "KEY_VIDEO_NEXT",
  1309  	KEY_VIDEO_PREV:       "KEY_VIDEO_PREV",
  1310  	KEY_BRIGHTNESS_CYCLE: "KEY_BRIGHTNESS_CYCLE",
  1311  	KEY_BRIGHTNESS_AUTO:  "KEY_BRIGHTNESS_AUTO",
  1312  	// KEY_BRIGHTNESS_ZERO: "KEY_BRIGHTNESS_ZERO", // (KEY_BRIGHTNESS_AUTO)
  1313  	KEY_DISPLAY_OFF: "KEY_DISPLAY_OFF",
  1314  
  1315  	KEY_WWAN: "KEY_WWAN",
  1316  	// KEY_WIMAX: "KEY_WIMAX", // (KEY_WWAN)
  1317  	KEY_RFKILL: "KEY_RFKILL",
  1318  
  1319  	KEY_MICMUTE: "KEY_MICMUTE",
  1320  
  1321  	BTN_MISC: "BTN_MISC",
  1322  	// BTN_0: "BTN_0", // (BTN_MISC)
  1323  	BTN_1: "BTN_1",
  1324  	BTN_2: "BTN_2",
  1325  	BTN_3: "BTN_3",
  1326  	BTN_4: "BTN_4",
  1327  	BTN_5: "BTN_5",
  1328  	BTN_6: "BTN_6",
  1329  	BTN_7: "BTN_7",
  1330  	BTN_8: "BTN_8",
  1331  	BTN_9: "BTN_9",
  1332  
  1333  	BTN_MOUSE: "BTN_MOUSE",
  1334  	// BTN_LEFT: "BTN_LEFT", // (BTN_MOUSE)
  1335  	BTN_RIGHT:   "BTN_RIGHT",
  1336  	BTN_MIDDLE:  "BTN_MIDDLE",
  1337  	BTN_SIDE:    "BTN_SIDE",
  1338  	BTN_EXTRA:   "BTN_EXTRA",
  1339  	BTN_FORWARD: "BTN_FORWARD",
  1340  	BTN_BACK:    "BTN_BACK",
  1341  	BTN_TASK:    "BTN_TASK",
  1342  
  1343  	BTN_JOYSTICK: "BTN_JOYSTICK",
  1344  	// BTN_TRIGGER: "BTN_TRIGGER", // (BTN_JOYSTICK)
  1345  	BTN_THUMB:  "BTN_THUMB",
  1346  	BTN_THUMB2: "BTN_THUMB2",
  1347  	BTN_TOP:    "BTN_TOP",
  1348  	BTN_TOP2:   "BTN_TOP2",
  1349  	BTN_PINKIE: "BTN_PINKIE",
  1350  	BTN_BASE:   "BTN_BASE",
  1351  	BTN_BASE2:  "BTN_BASE2",
  1352  	BTN_BASE3:  "BTN_BASE3",
  1353  	BTN_BASE4:  "BTN_BASE4",
  1354  	BTN_BASE5:  "BTN_BASE5",
  1355  	BTN_BASE6:  "BTN_BASE6",
  1356  	BTN_DEAD:   "BTN_DEAD",
  1357  
  1358  	BTN_GAMEPAD: "BTN_GAMEPAD",
  1359  	// BTN_SOUTH: "BTN_SOUTH", // (BTN_GAMEPAD)
  1360  	// BTN_A: "BTN_A", // (BTN_GAMEPAD)
  1361  	BTN_EAST: "BTN_EAST",
  1362  	// BTN_B: "BTN_B", // (BTN_EAST)
  1363  	BTN_C:     "BTN_C",
  1364  	BTN_NORTH: "BTN_NORTH",
  1365  	// BTN_X: "BTN_X", // (BTN_NORTH)
  1366  	BTN_WEST: "BTN_WEST",
  1367  	// BTN_Y: "BTN_Y", // (BTN_WEST)
  1368  	BTN_Z:      "BTN_Z",
  1369  	BTN_TL:     "BTN_TL",
  1370  	BTN_TR:     "BTN_TR",
  1371  	BTN_TL2:    "BTN_TL2",
  1372  	BTN_TR2:    "BTN_TR2",
  1373  	BTN_SELECT: "BTN_SELECT",
  1374  	BTN_START:  "BTN_START",
  1375  	BTN_MODE:   "BTN_MODE",
  1376  	BTN_THUMBL: "BTN_THUMBL",
  1377  	BTN_THUMBR: "BTN_THUMBR",
  1378  
  1379  	BTN_DIGI: "BTN_DIGI",
  1380  	// BTN_TOOL_PEN: "BTN_TOOL_PEN", // (BTN_DIGI)
  1381  	BTN_TOOL_RUBBER:    "BTN_TOOL_RUBBER",
  1382  	BTN_TOOL_BRUSH:     "BTN_TOOL_BRUSH",
  1383  	BTN_TOOL_PENCIL:    "BTN_TOOL_PENCIL",
  1384  	BTN_TOOL_AIRBRUSH:  "BTN_TOOL_AIRBRUSH",
  1385  	BTN_TOOL_FINGER:    "BTN_TOOL_FINGER",
  1386  	BTN_TOOL_MOUSE:     "BTN_TOOL_MOUSE",
  1387  	BTN_TOOL_LENS:      "BTN_TOOL_LENS",
  1388  	BTN_TOOL_QUINTTAP:  "BTN_TOOL_QUINTTAP",
  1389  	BTN_STYLUS3:        "BTN_STYLUS3",
  1390  	BTN_TOUCH:          "BTN_TOUCH",
  1391  	BTN_STYLUS:         "BTN_STYLUS",
  1392  	BTN_STYLUS2:        "BTN_STYLUS2",
  1393  	BTN_TOOL_DOUBLETAP: "BTN_TOOL_DOUBLETAP",
  1394  	BTN_TOOL_TRIPLETAP: "BTN_TOOL_TRIPLETAP",
  1395  	BTN_TOOL_QUADTAP:   "BTN_TOOL_QUADTAP",
  1396  
  1397  	BTN_WHEEL: "BTN_WHEEL",
  1398  	// BTN_GEAR_DOWN: "BTN_GEAR_DOWN", // (BTN_WHEEL)
  1399  	BTN_GEAR_UP: "BTN_GEAR_UP",
  1400  
  1401  	KEY_OK:          "KEY_OK",
  1402  	KEY_SELECT:      "KEY_SELECT",
  1403  	KEY_GOTO:        "KEY_GOTO",
  1404  	KEY_CLEAR:       "KEY_CLEAR",
  1405  	KEY_POWER2:      "KEY_POWER2",
  1406  	KEY_OPTION:      "KEY_OPTION",
  1407  	KEY_INFO:        "KEY_INFO",
  1408  	KEY_TIME:        "KEY_TIME",
  1409  	KEY_VENDOR:      "KEY_VENDOR",
  1410  	KEY_ARCHIVE:     "KEY_ARCHIVE",
  1411  	KEY_PROGRAM:     "KEY_PROGRAM",
  1412  	KEY_CHANNEL:     "KEY_CHANNEL",
  1413  	KEY_FAVORITES:   "KEY_FAVORITES",
  1414  	KEY_EPG:         "KEY_EPG",
  1415  	KEY_PVR:         "KEY_PVR",
  1416  	KEY_MHP:         "KEY_MHP",
  1417  	KEY_LANGUAGE:    "KEY_LANGUAGE",
  1418  	KEY_TITLE:       "KEY_TITLE",
  1419  	KEY_SUBTITLE:    "KEY_SUBTITLE",
  1420  	KEY_ANGLE:       "KEY_ANGLE",
  1421  	KEY_FULL_SCREEN: "KEY_FULL_SCREEN",
  1422  	// KEY_ZOOM: "KEY_ZOOM", // (KEY_FULL_SCREEN)
  1423  	KEY_MODE:         "KEY_MODE",
  1424  	KEY_KEYBOARD:     "KEY_KEYBOARD",
  1425  	KEY_ASPECT_RATIO: "KEY_ASPECT_RATIO",
  1426  	// KEY_SCREEN: "KEY_SCREEN", // (KEY_ASPECT_RATIO)
  1427  	KEY_PC:             "KEY_PC",
  1428  	KEY_TV:             "KEY_TV",
  1429  	KEY_TV2:            "KEY_TV2",
  1430  	KEY_VCR:            "KEY_VCR",
  1431  	KEY_VCR2:           "KEY_VCR2",
  1432  	KEY_SAT:            "KEY_SAT",
  1433  	KEY_SAT2:           "KEY_SAT2",
  1434  	KEY_CD:             "KEY_CD",
  1435  	KEY_TAPE:           "KEY_TAPE",
  1436  	KEY_RADIO:          "KEY_RADIO",
  1437  	KEY_TUNER:          "KEY_TUNER",
  1438  	KEY_PLAYER:         "KEY_PLAYER",
  1439  	KEY_TEXT:           "KEY_TEXT",
  1440  	KEY_DVD:            "KEY_DVD",
  1441  	KEY_AUX:            "KEY_AUX",
  1442  	KEY_MP3:            "KEY_MP3",
  1443  	KEY_AUDIO:          "KEY_AUDIO",
  1444  	KEY_VIDEO:          "KEY_VIDEO",
  1445  	KEY_DIRECTORY:      "KEY_DIRECTORY",
  1446  	KEY_LIST:           "KEY_LIST",
  1447  	KEY_MEMO:           "KEY_MEMO",
  1448  	KEY_CALENDAR:       "KEY_CALENDAR",
  1449  	KEY_RED:            "KEY_RED",
  1450  	KEY_GREEN:          "KEY_GREEN",
  1451  	KEY_YELLOW:         "KEY_YELLOW",
  1452  	KEY_BLUE:           "KEY_BLUE",
  1453  	KEY_CHANNELUP:      "KEY_CHANNELUP",
  1454  	KEY_CHANNELDOWN:    "KEY_CHANNELDOWN",
  1455  	KEY_FIRST:          "KEY_FIRST",
  1456  	KEY_LAST:           "KEY_LAST",
  1457  	KEY_AB:             "KEY_AB",
  1458  	KEY_NEXT:           "KEY_NEXT",
  1459  	KEY_RESTART:        "KEY_RESTART",
  1460  	KEY_SLOW:           "KEY_SLOW",
  1461  	KEY_SHUFFLE:        "KEY_SHUFFLE",
  1462  	KEY_BREAK:          "KEY_BREAK",
  1463  	KEY_PREVIOUS:       "KEY_PREVIOUS",
  1464  	KEY_DIGITS:         "KEY_DIGITS",
  1465  	KEY_TEEN:           "KEY_TEEN",
  1466  	KEY_TWEN:           "KEY_TWEN",
  1467  	KEY_VIDEOPHONE:     "KEY_VIDEOPHONE",
  1468  	KEY_GAMES:          "KEY_GAMES",
  1469  	KEY_ZOOMIN:         "KEY_ZOOMIN",
  1470  	KEY_ZOOMOUT:        "KEY_ZOOMOUT",
  1471  	KEY_ZOOMRESET:      "KEY_ZOOMRESET",
  1472  	KEY_WORDPROCESSOR:  "KEY_WORDPROCESSOR",
  1473  	KEY_EDITOR:         "KEY_EDITOR",
  1474  	KEY_SPREADSHEET:    "KEY_SPREADSHEET",
  1475  	KEY_GRAPHICSEDITOR: "KEY_GRAPHICSEDITOR",
  1476  	KEY_PRESENTATION:   "KEY_PRESENTATION",
  1477  	KEY_DATABASE:       "KEY_DATABASE",
  1478  	KEY_NEWS:           "KEY_NEWS",
  1479  	KEY_VOICEMAIL:      "KEY_VOICEMAIL",
  1480  	KEY_ADDRESSBOOK:    "KEY_ADDRESSBOOK",
  1481  	KEY_MESSENGER:      "KEY_MESSENGER",
  1482  	KEY_DISPLAYTOGGLE:  "KEY_DISPLAYTOGGLE",
  1483  	// KEY_BRIGHTNESS_TOGGLE: "KEY_BRIGHTNESS_TOGGLE", // (KEY_DISPLAYTOGGLE)
  1484  	KEY_SPELLCHECK: "KEY_SPELLCHECK",
  1485  	KEY_LOGOFF:     "KEY_LOGOFF",
  1486  
  1487  	KEY_DOLLAR: "KEY_DOLLAR",
  1488  	KEY_EURO:   "KEY_EURO",
  1489  
  1490  	KEY_FRAMEBACK:           "KEY_FRAMEBACK",
  1491  	KEY_FRAMEFORWARD:        "KEY_FRAMEFORWARD",
  1492  	KEY_CONTEXT_MENU:        "KEY_CONTEXT_MENU",
  1493  	KEY_MEDIA_REPEAT:        "KEY_MEDIA_REPEAT",
  1494  	KEY_10CHANNELSUP:        "KEY_10CHANNELSUP",
  1495  	KEY_10CHANNELSDOWN:      "KEY_10CHANNELSDOWN",
  1496  	KEY_IMAGES:              "KEY_IMAGES",
  1497  	KEY_NOTIFICATION_CENTER: "KEY_NOTIFICATION_CENTER",
  1498  	KEY_PICKUP_PHONE:        "KEY_PICKUP_PHONE",
  1499  	KEY_HANGUP_PHONE:        "KEY_HANGUP_PHONE",
  1500  
  1501  	KEY_DEL_EOL:  "KEY_DEL_EOL",
  1502  	KEY_DEL_EOS:  "KEY_DEL_EOS",
  1503  	KEY_INS_LINE: "KEY_INS_LINE",
  1504  	KEY_DEL_LINE: "KEY_DEL_LINE",
  1505  
  1506  	KEY_FN:             "KEY_FN",
  1507  	KEY_FN_ESC:         "KEY_FN_ESC",
  1508  	KEY_FN_F1:          "KEY_FN_F1",
  1509  	KEY_FN_F2:          "KEY_FN_F2",
  1510  	KEY_FN_F3:          "KEY_FN_F3",
  1511  	KEY_FN_F4:          "KEY_FN_F4",
  1512  	KEY_FN_F5:          "KEY_FN_F5",
  1513  	KEY_FN_F6:          "KEY_FN_F6",
  1514  	KEY_FN_F7:          "KEY_FN_F7",
  1515  	KEY_FN_F8:          "KEY_FN_F8",
  1516  	KEY_FN_F9:          "KEY_FN_F9",
  1517  	KEY_FN_F10:         "KEY_FN_F10",
  1518  	KEY_FN_F11:         "KEY_FN_F11",
  1519  	KEY_FN_F12:         "KEY_FN_F12",
  1520  	KEY_FN_1:           "KEY_FN_1",
  1521  	KEY_FN_2:           "KEY_FN_2",
  1522  	KEY_FN_D:           "KEY_FN_D",
  1523  	KEY_FN_E:           "KEY_FN_E",
  1524  	KEY_FN_F:           "KEY_FN_F",
  1525  	KEY_FN_S:           "KEY_FN_S",
  1526  	KEY_FN_B:           "KEY_FN_B",
  1527  	KEY_FN_RIGHT_SHIFT: "KEY_FN_RIGHT_SHIFT",
  1528  
  1529  	KEY_BRL_DOT1:  "KEY_BRL_DOT1",
  1530  	KEY_BRL_DOT2:  "KEY_BRL_DOT2",
  1531  	KEY_BRL_DOT3:  "KEY_BRL_DOT3",
  1532  	KEY_BRL_DOT4:  "KEY_BRL_DOT4",
  1533  	KEY_BRL_DOT5:  "KEY_BRL_DOT5",
  1534  	KEY_BRL_DOT6:  "KEY_BRL_DOT6",
  1535  	KEY_BRL_DOT7:  "KEY_BRL_DOT7",
  1536  	KEY_BRL_DOT8:  "KEY_BRL_DOT8",
  1537  	KEY_BRL_DOT9:  "KEY_BRL_DOT9",
  1538  	KEY_BRL_DOT10: "KEY_BRL_DOT10",
  1539  
  1540  	KEY_NUMERIC_0:     "KEY_NUMERIC_0",
  1541  	KEY_NUMERIC_1:     "KEY_NUMERIC_1",
  1542  	KEY_NUMERIC_2:     "KEY_NUMERIC_2",
  1543  	KEY_NUMERIC_3:     "KEY_NUMERIC_3",
  1544  	KEY_NUMERIC_4:     "KEY_NUMERIC_4",
  1545  	KEY_NUMERIC_5:     "KEY_NUMERIC_5",
  1546  	KEY_NUMERIC_6:     "KEY_NUMERIC_6",
  1547  	KEY_NUMERIC_7:     "KEY_NUMERIC_7",
  1548  	KEY_NUMERIC_8:     "KEY_NUMERIC_8",
  1549  	KEY_NUMERIC_9:     "KEY_NUMERIC_9",
  1550  	KEY_NUMERIC_STAR:  "KEY_NUMERIC_STAR",
  1551  	KEY_NUMERIC_POUND: "KEY_NUMERIC_POUND",
  1552  	KEY_NUMERIC_A:     "KEY_NUMERIC_A",
  1553  	KEY_NUMERIC_B:     "KEY_NUMERIC_B",
  1554  	KEY_NUMERIC_C:     "KEY_NUMERIC_C",
  1555  	KEY_NUMERIC_D:     "KEY_NUMERIC_D",
  1556  
  1557  	KEY_CAMERA_FOCUS: "KEY_CAMERA_FOCUS",
  1558  	KEY_WPS_BUTTON:   "KEY_WPS_BUTTON",
  1559  
  1560  	KEY_TOUCHPAD_TOGGLE: "KEY_TOUCHPAD_TOGGLE",
  1561  	KEY_TOUCHPAD_ON:     "KEY_TOUCHPAD_ON",
  1562  	KEY_TOUCHPAD_OFF:    "KEY_TOUCHPAD_OFF",
  1563  
  1564  	KEY_CAMERA_ZOOMIN:  "KEY_CAMERA_ZOOMIN",
  1565  	KEY_CAMERA_ZOOMOUT: "KEY_CAMERA_ZOOMOUT",
  1566  	KEY_CAMERA_UP:      "KEY_CAMERA_UP",
  1567  	KEY_CAMERA_DOWN:    "KEY_CAMERA_DOWN",
  1568  	KEY_CAMERA_LEFT:    "KEY_CAMERA_LEFT",
  1569  	KEY_CAMERA_RIGHT:   "KEY_CAMERA_RIGHT",
  1570  
  1571  	KEY_ATTENDANT_ON:     "KEY_ATTENDANT_ON",
  1572  	KEY_ATTENDANT_OFF:    "KEY_ATTENDANT_OFF",
  1573  	KEY_ATTENDANT_TOGGLE: "KEY_ATTENDANT_TOGGLE",
  1574  	KEY_LIGHTS_TOGGLE:    "KEY_LIGHTS_TOGGLE",
  1575  
  1576  	BTN_DPAD_UP:    "BTN_DPAD_UP",
  1577  	BTN_DPAD_DOWN:  "BTN_DPAD_DOWN",
  1578  	BTN_DPAD_LEFT:  "BTN_DPAD_LEFT",
  1579  	BTN_DPAD_RIGHT: "BTN_DPAD_RIGHT",
  1580  
  1581  	KEY_ALS_TOGGLE:         "KEY_ALS_TOGGLE",
  1582  	KEY_ROTATE_LOCK_TOGGLE: "KEY_ROTATE_LOCK_TOGGLE",
  1583  
  1584  	KEY_BUTTONCONFIG:    "KEY_BUTTONCONFIG",
  1585  	KEY_TASKMANAGER:     "KEY_TASKMANAGER",
  1586  	KEY_JOURNAL:         "KEY_JOURNAL",
  1587  	KEY_CONTROLPANEL:    "KEY_CONTROLPANEL",
  1588  	KEY_APPSELECT:       "KEY_APPSELECT",
  1589  	KEY_SCREENSAVER:     "KEY_SCREENSAVER",
  1590  	KEY_VOICECOMMAND:    "KEY_VOICECOMMAND",
  1591  	KEY_ASSISTANT:       "KEY_ASSISTANT",
  1592  	KEY_KBD_LAYOUT_NEXT: "KEY_KBD_LAYOUT_NEXT",
  1593  	KEY_EMOJI_PICKER:    "KEY_EMOJI_PICKER",
  1594  	KEY_DICTATE:         "KEY_DICTATE",
  1595  
  1596  	KEY_BRIGHTNESS_MIN: "KEY_BRIGHTNESS_MIN",
  1597  	KEY_BRIGHTNESS_MAX: "KEY_BRIGHTNESS_MAX",
  1598  
  1599  	KEY_KBDINPUTASSIST_PREV:      "KEY_KBDINPUTASSIST_PREV",
  1600  	KEY_KBDINPUTASSIST_NEXT:      "KEY_KBDINPUTASSIST_NEXT",
  1601  	KEY_KBDINPUTASSIST_PREVGROUP: "KEY_KBDINPUTASSIST_PREVGROUP",
  1602  	KEY_KBDINPUTASSIST_NEXTGROUP: "KEY_KBDINPUTASSIST_NEXTGROUP",
  1603  	KEY_KBDINPUTASSIST_ACCEPT:    "KEY_KBDINPUTASSIST_ACCEPT",
  1604  	KEY_KBDINPUTASSIST_CANCEL:    "KEY_KBDINPUTASSIST_CANCEL",
  1605  
  1606  	KEY_RIGHT_UP:   "KEY_RIGHT_UP",
  1607  	KEY_RIGHT_DOWN: "KEY_RIGHT_DOWN",
  1608  	KEY_LEFT_UP:    "KEY_LEFT_UP",
  1609  	KEY_LEFT_DOWN:  "KEY_LEFT_DOWN",
  1610  
  1611  	KEY_ROOT_MENU: "KEY_ROOT_MENU",
  1612  
  1613  	KEY_MEDIA_TOP_MENU: "KEY_MEDIA_TOP_MENU",
  1614  	KEY_NUMERIC_11:     "KEY_NUMERIC_11",
  1615  	KEY_NUMERIC_12:     "KEY_NUMERIC_12",
  1616  
  1617  	KEY_AUDIO_DESC:    "KEY_AUDIO_DESC",
  1618  	KEY_3D_MODE:       "KEY_3D_MODE",
  1619  	KEY_NEXT_FAVORITE: "KEY_NEXT_FAVORITE",
  1620  	KEY_STOP_RECORD:   "KEY_STOP_RECORD",
  1621  	KEY_PAUSE_RECORD:  "KEY_PAUSE_RECORD",
  1622  	KEY_VOD:           "KEY_VOD",
  1623  	KEY_UNMUTE:        "KEY_UNMUTE",
  1624  	KEY_FASTREVERSE:   "KEY_FASTREVERSE",
  1625  	KEY_SLOWREVERSE:   "KEY_SLOWREVERSE",
  1626  
  1627  	KEY_DATA:              "KEY_DATA",
  1628  	KEY_ONSCREEN_KEYBOARD: "KEY_ONSCREEN_KEYBOARD",
  1629  
  1630  	KEY_PRIVACY_SCREEN_TOGGLE: "KEY_PRIVACY_SCREEN_TOGGLE",
  1631  
  1632  	KEY_SELECTIVE_SCREENSHOT: "KEY_SELECTIVE_SCREENSHOT",
  1633  
  1634  	KEY_MACRO1:  "KEY_MACRO1",
  1635  	KEY_MACRO2:  "KEY_MACRO2",
  1636  	KEY_MACRO3:  "KEY_MACRO3",
  1637  	KEY_MACRO4:  "KEY_MACRO4",
  1638  	KEY_MACRO5:  "KEY_MACRO5",
  1639  	KEY_MACRO6:  "KEY_MACRO6",
  1640  	KEY_MACRO7:  "KEY_MACRO7",
  1641  	KEY_MACRO8:  "KEY_MACRO8",
  1642  	KEY_MACRO9:  "KEY_MACRO9",
  1643  	KEY_MACRO10: "KEY_MACRO10",
  1644  	KEY_MACRO11: "KEY_MACRO11",
  1645  	KEY_MACRO12: "KEY_MACRO12",
  1646  	KEY_MACRO13: "KEY_MACRO13",
  1647  	KEY_MACRO14: "KEY_MACRO14",
  1648  	KEY_MACRO15: "KEY_MACRO15",
  1649  	KEY_MACRO16: "KEY_MACRO16",
  1650  	KEY_MACRO17: "KEY_MACRO17",
  1651  	KEY_MACRO18: "KEY_MACRO18",
  1652  	KEY_MACRO19: "KEY_MACRO19",
  1653  	KEY_MACRO20: "KEY_MACRO20",
  1654  	KEY_MACRO21: "KEY_MACRO21",
  1655  	KEY_MACRO22: "KEY_MACRO22",
  1656  	KEY_MACRO23: "KEY_MACRO23",
  1657  	KEY_MACRO24: "KEY_MACRO24",
  1658  	KEY_MACRO25: "KEY_MACRO25",
  1659  	KEY_MACRO26: "KEY_MACRO26",
  1660  	KEY_MACRO27: "KEY_MACRO27",
  1661  	KEY_MACRO28: "KEY_MACRO28",
  1662  	KEY_MACRO29: "KEY_MACRO29",
  1663  	KEY_MACRO30: "KEY_MACRO30",
  1664  
  1665  	KEY_MACRO_RECORD_START: "KEY_MACRO_RECORD_START",
  1666  	KEY_MACRO_RECORD_STOP:  "KEY_MACRO_RECORD_STOP",
  1667  	KEY_MACRO_PRESET_CYCLE: "KEY_MACRO_PRESET_CYCLE",
  1668  	KEY_MACRO_PRESET1:      "KEY_MACRO_PRESET1",
  1669  	KEY_MACRO_PRESET2:      "KEY_MACRO_PRESET2",
  1670  	KEY_MACRO_PRESET3:      "KEY_MACRO_PRESET3",
  1671  
  1672  	KEY_KBD_LCD_MENU1: "KEY_KBD_LCD_MENU1",
  1673  	KEY_KBD_LCD_MENU2: "KEY_KBD_LCD_MENU2",
  1674  	KEY_KBD_LCD_MENU3: "KEY_KBD_LCD_MENU3",
  1675  	KEY_KBD_LCD_MENU4: "KEY_KBD_LCD_MENU4",
  1676  	KEY_KBD_LCD_MENU5: "KEY_KBD_LCD_MENU5",
  1677  
  1678  	BTN_TRIGGER_HAPPY: "BTN_TRIGGER_HAPPY",
  1679  	// BTN_TRIGGER_HAPPY1: "BTN_TRIGGER_HAPPY1", // (BTN_TRIGGER_HAPPY)
  1680  	BTN_TRIGGER_HAPPY2:  "BTN_TRIGGER_HAPPY2",
  1681  	BTN_TRIGGER_HAPPY3:  "BTN_TRIGGER_HAPPY3",
  1682  	BTN_TRIGGER_HAPPY4:  "BTN_TRIGGER_HAPPY4",
  1683  	BTN_TRIGGER_HAPPY5:  "BTN_TRIGGER_HAPPY5",
  1684  	BTN_TRIGGER_HAPPY6:  "BTN_TRIGGER_HAPPY6",
  1685  	BTN_TRIGGER_HAPPY7:  "BTN_TRIGGER_HAPPY7",
  1686  	BTN_TRIGGER_HAPPY8:  "BTN_TRIGGER_HAPPY8",
  1687  	BTN_TRIGGER_HAPPY9:  "BTN_TRIGGER_HAPPY9",
  1688  	BTN_TRIGGER_HAPPY10: "BTN_TRIGGER_HAPPY10",
  1689  	BTN_TRIGGER_HAPPY11: "BTN_TRIGGER_HAPPY11",
  1690  	BTN_TRIGGER_HAPPY12: "BTN_TRIGGER_HAPPY12",
  1691  	BTN_TRIGGER_HAPPY13: "BTN_TRIGGER_HAPPY13",
  1692  	BTN_TRIGGER_HAPPY14: "BTN_TRIGGER_HAPPY14",
  1693  	BTN_TRIGGER_HAPPY15: "BTN_TRIGGER_HAPPY15",
  1694  	BTN_TRIGGER_HAPPY16: "BTN_TRIGGER_HAPPY16",
  1695  	BTN_TRIGGER_HAPPY17: "BTN_TRIGGER_HAPPY17",
  1696  	BTN_TRIGGER_HAPPY18: "BTN_TRIGGER_HAPPY18",
  1697  	BTN_TRIGGER_HAPPY19: "BTN_TRIGGER_HAPPY19",
  1698  	BTN_TRIGGER_HAPPY20: "BTN_TRIGGER_HAPPY20",
  1699  	BTN_TRIGGER_HAPPY21: "BTN_TRIGGER_HAPPY21",
  1700  	BTN_TRIGGER_HAPPY22: "BTN_TRIGGER_HAPPY22",
  1701  	BTN_TRIGGER_HAPPY23: "BTN_TRIGGER_HAPPY23",
  1702  	BTN_TRIGGER_HAPPY24: "BTN_TRIGGER_HAPPY24",
  1703  	BTN_TRIGGER_HAPPY25: "BTN_TRIGGER_HAPPY25",
  1704  	BTN_TRIGGER_HAPPY26: "BTN_TRIGGER_HAPPY26",
  1705  	BTN_TRIGGER_HAPPY27: "BTN_TRIGGER_HAPPY27",
  1706  	BTN_TRIGGER_HAPPY28: "BTN_TRIGGER_HAPPY28",
  1707  	BTN_TRIGGER_HAPPY29: "BTN_TRIGGER_HAPPY29",
  1708  	BTN_TRIGGER_HAPPY30: "BTN_TRIGGER_HAPPY30",
  1709  	BTN_TRIGGER_HAPPY31: "BTN_TRIGGER_HAPPY31",
  1710  	BTN_TRIGGER_HAPPY32: "BTN_TRIGGER_HAPPY32",
  1711  	BTN_TRIGGER_HAPPY33: "BTN_TRIGGER_HAPPY33",
  1712  	BTN_TRIGGER_HAPPY34: "BTN_TRIGGER_HAPPY34",
  1713  	BTN_TRIGGER_HAPPY35: "BTN_TRIGGER_HAPPY35",
  1714  	BTN_TRIGGER_HAPPY36: "BTN_TRIGGER_HAPPY36",
  1715  	BTN_TRIGGER_HAPPY37: "BTN_TRIGGER_HAPPY37",
  1716  	BTN_TRIGGER_HAPPY38: "BTN_TRIGGER_HAPPY38",
  1717  	BTN_TRIGGER_HAPPY39: "BTN_TRIGGER_HAPPY39",
  1718  	BTN_TRIGGER_HAPPY40: "BTN_TRIGGER_HAPPY40",
  1719  
  1720  	// KEY_MIN_INTERESTING: "KEY_MIN_INTERESTING", // (KEY_MUTE)
  1721  	KEY_MAX: "KEY_MAX",
  1722  	KEY_CNT: "KEY_CNT",
  1723  }
  1724  
  1725  var RELToString = map[EvCode]string{
  1726  	REL_X:      "REL_X",
  1727  	REL_Y:      "REL_Y",
  1728  	REL_Z:      "REL_Z",
  1729  	REL_RX:     "REL_RX",
  1730  	REL_RY:     "REL_RY",
  1731  	REL_RZ:     "REL_RZ",
  1732  	REL_HWHEEL: "REL_HWHEEL",
  1733  	REL_DIAL:   "REL_DIAL",
  1734  	REL_WHEEL:  "REL_WHEEL",
  1735  	REL_MISC:   "REL_MISC",
  1736  
  1737  	REL_RESERVED:      "REL_RESERVED",
  1738  	REL_WHEEL_HI_RES:  "REL_WHEEL_HI_RES",
  1739  	REL_HWHEEL_HI_RES: "REL_HWHEEL_HI_RES",
  1740  	REL_MAX:           "REL_MAX",
  1741  	REL_CNT:           "REL_CNT",
  1742  }
  1743  
  1744  var ABSToString = map[EvCode]string{
  1745  	ABS_X:          "ABS_X",
  1746  	ABS_Y:          "ABS_Y",
  1747  	ABS_Z:          "ABS_Z",
  1748  	ABS_RX:         "ABS_RX",
  1749  	ABS_RY:         "ABS_RY",
  1750  	ABS_RZ:         "ABS_RZ",
  1751  	ABS_THROTTLE:   "ABS_THROTTLE",
  1752  	ABS_RUDDER:     "ABS_RUDDER",
  1753  	ABS_WHEEL:      "ABS_WHEEL",
  1754  	ABS_GAS:        "ABS_GAS",
  1755  	ABS_BRAKE:      "ABS_BRAKE",
  1756  	ABS_HAT0X:      "ABS_HAT0X",
  1757  	ABS_HAT0Y:      "ABS_HAT0Y",
  1758  	ABS_HAT1X:      "ABS_HAT1X",
  1759  	ABS_HAT1Y:      "ABS_HAT1Y",
  1760  	ABS_HAT2X:      "ABS_HAT2X",
  1761  	ABS_HAT2Y:      "ABS_HAT2Y",
  1762  	ABS_HAT3X:      "ABS_HAT3X",
  1763  	ABS_HAT3Y:      "ABS_HAT3Y",
  1764  	ABS_PRESSURE:   "ABS_PRESSURE",
  1765  	ABS_DISTANCE:   "ABS_DISTANCE",
  1766  	ABS_TILT_X:     "ABS_TILT_X",
  1767  	ABS_TILT_Y:     "ABS_TILT_Y",
  1768  	ABS_TOOL_WIDTH: "ABS_TOOL_WIDTH",
  1769  
  1770  	ABS_VOLUME: "ABS_VOLUME",
  1771  
  1772  	ABS_MISC: "ABS_MISC",
  1773  
  1774  	ABS_RESERVED: "ABS_RESERVED",
  1775  
  1776  	ABS_MT_SLOT:        "ABS_MT_SLOT",
  1777  	ABS_MT_TOUCH_MAJOR: "ABS_MT_TOUCH_MAJOR",
  1778  	ABS_MT_TOUCH_MINOR: "ABS_MT_TOUCH_MINOR",
  1779  	ABS_MT_WIDTH_MAJOR: "ABS_MT_WIDTH_MAJOR",
  1780  	ABS_MT_WIDTH_MINOR: "ABS_MT_WIDTH_MINOR",
  1781  	ABS_MT_ORIENTATION: "ABS_MT_ORIENTATION",
  1782  	ABS_MT_POSITION_X:  "ABS_MT_POSITION_X",
  1783  	ABS_MT_POSITION_Y:  "ABS_MT_POSITION_Y",
  1784  	ABS_MT_TOOL_TYPE:   "ABS_MT_TOOL_TYPE",
  1785  	ABS_MT_BLOB_ID:     "ABS_MT_BLOB_ID",
  1786  	ABS_MT_TRACKING_ID: "ABS_MT_TRACKING_ID",
  1787  	ABS_MT_PRESSURE:    "ABS_MT_PRESSURE",
  1788  	ABS_MT_DISTANCE:    "ABS_MT_DISTANCE",
  1789  	ABS_MT_TOOL_X:      "ABS_MT_TOOL_X",
  1790  	ABS_MT_TOOL_Y:      "ABS_MT_TOOL_Y",
  1791  
  1792  	ABS_MAX: "ABS_MAX",
  1793  	ABS_CNT: "ABS_CNT",
  1794  }
  1795  
  1796  var SWToString = map[EvCode]string{
  1797  	SW_LID:              "SW_LID",
  1798  	SW_TABLET_MODE:      "SW_TABLET_MODE",
  1799  	SW_HEADPHONE_INSERT: "SW_HEADPHONE_INSERT",
  1800  	SW_RFKILL_ALL:       "SW_RFKILL_ALL",
  1801  	// SW_RADIO: "SW_RADIO", // (SW_RFKILL_ALL)
  1802  	SW_MICROPHONE_INSERT:    "SW_MICROPHONE_INSERT",
  1803  	SW_DOCK:                 "SW_DOCK",
  1804  	SW_LINEOUT_INSERT:       "SW_LINEOUT_INSERT",
  1805  	SW_JACK_PHYSICAL_INSERT: "SW_JACK_PHYSICAL_INSERT",
  1806  	SW_VIDEOOUT_INSERT:      "SW_VIDEOOUT_INSERT",
  1807  	SW_CAMERA_LENS_COVER:    "SW_CAMERA_LENS_COVER",
  1808  	SW_KEYPAD_SLIDE:         "SW_KEYPAD_SLIDE",
  1809  	SW_FRONT_PROXIMITY:      "SW_FRONT_PROXIMITY",
  1810  	SW_ROTATE_LOCK:          "SW_ROTATE_LOCK",
  1811  	SW_LINEIN_INSERT:        "SW_LINEIN_INSERT",
  1812  	SW_MUTE_DEVICE:          "SW_MUTE_DEVICE",
  1813  	SW_PEN_INSERTED:         "SW_PEN_INSERTED",
  1814  	SW_MACHINE_COVER:        "SW_MACHINE_COVER",
  1815  	// SW_MAX: "SW_MAX", // (SW_MACHINE_COVER)
  1816  	SW_CNT: "SW_CNT",
  1817  }
  1818  
  1819  var MSCToString = map[EvCode]string{
  1820  	MSC_SERIAL:    "MSC_SERIAL",
  1821  	MSC_PULSELED:  "MSC_PULSELED",
  1822  	MSC_GESTURE:   "MSC_GESTURE",
  1823  	MSC_RAW:       "MSC_RAW",
  1824  	MSC_SCAN:      "MSC_SCAN",
  1825  	MSC_TIMESTAMP: "MSC_TIMESTAMP",
  1826  	MSC_MAX:       "MSC_MAX",
  1827  	MSC_CNT:       "MSC_CNT",
  1828  }
  1829  
  1830  var LEDToString = map[EvCode]string{
  1831  	LED_NUML:     "LED_NUML",
  1832  	LED_CAPSL:    "LED_CAPSL",
  1833  	LED_SCROLLL:  "LED_SCROLLL",
  1834  	LED_COMPOSE:  "LED_COMPOSE",
  1835  	LED_KANA:     "LED_KANA",
  1836  	LED_SLEEP:    "LED_SLEEP",
  1837  	LED_SUSPEND:  "LED_SUSPEND",
  1838  	LED_MUTE:     "LED_MUTE",
  1839  	LED_MISC:     "LED_MISC",
  1840  	LED_MAIL:     "LED_MAIL",
  1841  	LED_CHARGING: "LED_CHARGING",
  1842  	LED_MAX:      "LED_MAX",
  1843  	LED_CNT:      "LED_CNT",
  1844  }
  1845  
  1846  var REPToString = map[EvCode]string{
  1847  	REP_DELAY:  "REP_DELAY",
  1848  	REP_PERIOD: "REP_PERIOD",
  1849  	// REP_MAX: "REP_MAX", // (REP_PERIOD)
  1850  	REP_CNT: "REP_CNT",
  1851  }
  1852  
  1853  var SNDToString = map[EvCode]string{
  1854  	SND_CLICK: "SND_CLICK",
  1855  	SND_BELL:  "SND_BELL",
  1856  	SND_TONE:  "SND_TONE",
  1857  	SND_MAX:   "SND_MAX",
  1858  	SND_CNT:   "SND_CNT",
  1859  }
  1860  
  1861  var IDToString = map[EvCode]string{
  1862  	ID_BUS:     "ID_BUS",
  1863  	ID_VENDOR:  "ID_VENDOR",
  1864  	ID_PRODUCT: "ID_PRODUCT",
  1865  	ID_VERSION: "ID_VERSION",
  1866  }
  1867  
  1868  var BUSToString = map[EvCode]string{
  1869  	BUS_PCI:       "BUS_PCI",
  1870  	BUS_ISAPNP:    "BUS_ISAPNP",
  1871  	BUS_USB:       "BUS_USB",
  1872  	BUS_HIL:       "BUS_HIL",
  1873  	BUS_BLUETOOTH: "BUS_BLUETOOTH",
  1874  	BUS_VIRTUAL:   "BUS_VIRTUAL",
  1875  
  1876  	BUS_ISA:         "BUS_ISA",
  1877  	BUS_I8042:       "BUS_I8042",
  1878  	BUS_XTKBD:       "BUS_XTKBD",
  1879  	BUS_RS232:       "BUS_RS232",
  1880  	BUS_GAMEPORT:    "BUS_GAMEPORT",
  1881  	BUS_PARPORT:     "BUS_PARPORT",
  1882  	BUS_AMIGA:       "BUS_AMIGA",
  1883  	BUS_ADB:         "BUS_ADB",
  1884  	BUS_I2C:         "BUS_I2C",
  1885  	BUS_HOST:        "BUS_HOST",
  1886  	BUS_GSC:         "BUS_GSC",
  1887  	BUS_ATARI:       "BUS_ATARI",
  1888  	BUS_SPI:         "BUS_SPI",
  1889  	BUS_RMI:         "BUS_RMI",
  1890  	BUS_CEC:         "BUS_CEC",
  1891  	BUS_INTEL_ISHTP: "BUS_INTEL_ISHTP",
  1892  }
  1893  
  1894  var MTToString = map[EvCode]string{
  1895  	MT_TOOL_FINGER: "MT_TOOL_FINGER",
  1896  	MT_TOOL_PEN:    "MT_TOOL_PEN",
  1897  	MT_TOOL_PALM:   "MT_TOOL_PALM",
  1898  	MT_TOOL_DIAL:   "MT_TOOL_DIAL",
  1899  	MT_TOOL_MAX:    "MT_TOOL_MAX",
  1900  }
  1901  
  1902  var FFToString = map[EvCode]string{
  1903  	FF_STATUS_STOPPED: "FF_STATUS_STOPPED",
  1904  	FF_STATUS_PLAYING: "FF_STATUS_PLAYING",
  1905  	// FF_STATUS_MAX: "FF_STATUS_MAX", // (FF_STATUS_PLAYING)
  1906  
  1907  	FF_RUMBLE:   "FF_RUMBLE",
  1908  	FF_PERIODIC: "FF_PERIODIC",
  1909  	FF_CONSTANT: "FF_CONSTANT",
  1910  	FF_SPRING:   "FF_SPRING",
  1911  	FF_FRICTION: "FF_FRICTION",
  1912  	FF_DAMPER:   "FF_DAMPER",
  1913  	FF_INERTIA:  "FF_INERTIA",
  1914  	FF_RAMP:     "FF_RAMP",
  1915  
  1916  	// FF_EFFECT_MIN: "FF_EFFECT_MIN", // (FF_RUMBLE)
  1917  	// FF_EFFECT_MAX: "FF_EFFECT_MAX", // (FF_RAMP)
  1918  
  1919  	FF_SQUARE:   "FF_SQUARE",
  1920  	FF_TRIANGLE: "FF_TRIANGLE",
  1921  	FF_SINE:     "FF_SINE",
  1922  	FF_SAW_UP:   "FF_SAW_UP",
  1923  	FF_SAW_DOWN: "FF_SAW_DOWN",
  1924  	FF_CUSTOM:   "FF_CUSTOM",
  1925  
  1926  	// FF_WAVEFORM_MIN: "FF_WAVEFORM_MIN", // (FF_SQUARE)
  1927  	// FF_WAVEFORM_MAX: "FF_WAVEFORM_MAX", // (FF_CUSTOM)
  1928  
  1929  	FF_GAIN:       "FF_GAIN",
  1930  	FF_AUTOCENTER: "FF_AUTOCENTER",
  1931  
  1932  	// FF_MAX_EFFECTS: "FF_MAX_EFFECTS", // (FF_GAIN)
  1933  
  1934  	FF_MAX: "FF_MAX",
  1935  	FF_CNT: "FF_CNT",
  1936  }
  1937  
  1938  //
  1939  // Type from String
  1940  //
  1941  
  1942  var INPUTFromString = map[string]EvProp{
  1943  	"INPUT_PROP_POINTER":        INPUT_PROP_POINTER,
  1944  	"INPUT_PROP_DIRECT":         INPUT_PROP_DIRECT,
  1945  	"INPUT_PROP_BUTTONPAD":      INPUT_PROP_BUTTONPAD,
  1946  	"INPUT_PROP_SEMI_MT":        INPUT_PROP_SEMI_MT,
  1947  	"INPUT_PROP_TOPBUTTONPAD":   INPUT_PROP_TOPBUTTONPAD,
  1948  	"INPUT_PROP_POINTING_STICK": INPUT_PROP_POINTING_STICK,
  1949  	"INPUT_PROP_ACCELEROMETER":  INPUT_PROP_ACCELEROMETER,
  1950  
  1951  	"INPUT_PROP_MAX": INPUT_PROP_MAX,
  1952  	"INPUT_PROP_CNT": INPUT_PROP_CNT,
  1953  }
  1954  
  1955  var EVFromString = map[string]EvType{
  1956  	"EV_SYN":       EV_SYN,
  1957  	"EV_KEY":       EV_KEY,
  1958  	"EV_REL":       EV_REL,
  1959  	"EV_ABS":       EV_ABS,
  1960  	"EV_MSC":       EV_MSC,
  1961  	"EV_SW":        EV_SW,
  1962  	"EV_LED":       EV_LED,
  1963  	"EV_SND":       EV_SND,
  1964  	"EV_REP":       EV_REP,
  1965  	"EV_FF":        EV_FF,
  1966  	"EV_PWR":       EV_PWR,
  1967  	"EV_FF_STATUS": EV_FF_STATUS,
  1968  	"EV_MAX":       EV_MAX,
  1969  	"EV_CNT":       EV_CNT,
  1970  }
  1971  
  1972  var SYNFromString = map[string]EvCode{
  1973  	"SYN_REPORT":    SYN_REPORT,
  1974  	"SYN_CONFIG":    SYN_CONFIG,
  1975  	"SYN_MT_REPORT": SYN_MT_REPORT,
  1976  	"SYN_DROPPED":   SYN_DROPPED,
  1977  	"SYN_MAX":       SYN_MAX,
  1978  	"SYN_CNT":       SYN_CNT,
  1979  }
  1980  
  1981  var KEYFromString = map[string]EvCode{
  1982  	"KEY_RESERVED":   KEY_RESERVED,
  1983  	"KEY_ESC":        KEY_ESC,
  1984  	"KEY_1":          KEY_1,
  1985  	"KEY_2":          KEY_2,
  1986  	"KEY_3":          KEY_3,
  1987  	"KEY_4":          KEY_4,
  1988  	"KEY_5":          KEY_5,
  1989  	"KEY_6":          KEY_6,
  1990  	"KEY_7":          KEY_7,
  1991  	"KEY_8":          KEY_8,
  1992  	"KEY_9":          KEY_9,
  1993  	"KEY_0":          KEY_0,
  1994  	"KEY_MINUS":      KEY_MINUS,
  1995  	"KEY_EQUAL":      KEY_EQUAL,
  1996  	"KEY_BACKSPACE":  KEY_BACKSPACE,
  1997  	"KEY_TAB":        KEY_TAB,
  1998  	"KEY_Q":          KEY_Q,
  1999  	"KEY_W":          KEY_W,
  2000  	"KEY_E":          KEY_E,
  2001  	"KEY_R":          KEY_R,
  2002  	"KEY_T":          KEY_T,
  2003  	"KEY_Y":          KEY_Y,
  2004  	"KEY_U":          KEY_U,
  2005  	"KEY_I":          KEY_I,
  2006  	"KEY_O":          KEY_O,
  2007  	"KEY_P":          KEY_P,
  2008  	"KEY_LEFTBRACE":  KEY_LEFTBRACE,
  2009  	"KEY_RIGHTBRACE": KEY_RIGHTBRACE,
  2010  	"KEY_ENTER":      KEY_ENTER,
  2011  	"KEY_LEFTCTRL":   KEY_LEFTCTRL,
  2012  	"KEY_A":          KEY_A,
  2013  	"KEY_S":          KEY_S,
  2014  	"KEY_D":          KEY_D,
  2015  	"KEY_F":          KEY_F,
  2016  	"KEY_G":          KEY_G,
  2017  	"KEY_H":          KEY_H,
  2018  	"KEY_J":          KEY_J,
  2019  	"KEY_K":          KEY_K,
  2020  	"KEY_L":          KEY_L,
  2021  	"KEY_SEMICOLON":  KEY_SEMICOLON,
  2022  	"KEY_APOSTROPHE": KEY_APOSTROPHE,
  2023  	"KEY_GRAVE":      KEY_GRAVE,
  2024  	"KEY_LEFTSHIFT":  KEY_LEFTSHIFT,
  2025  	"KEY_BACKSLASH":  KEY_BACKSLASH,
  2026  	"KEY_Z":          KEY_Z,
  2027  	"KEY_X":          KEY_X,
  2028  	"KEY_C":          KEY_C,
  2029  	"KEY_V":          KEY_V,
  2030  	"KEY_B":          KEY_B,
  2031  	"KEY_N":          KEY_N,
  2032  	"KEY_M":          KEY_M,
  2033  	"KEY_COMMA":      KEY_COMMA,
  2034  	"KEY_DOT":        KEY_DOT,
  2035  	"KEY_SLASH":      KEY_SLASH,
  2036  	"KEY_RIGHTSHIFT": KEY_RIGHTSHIFT,
  2037  	"KEY_KPASTERISK": KEY_KPASTERISK,
  2038  	"KEY_LEFTALT":    KEY_LEFTALT,
  2039  	"KEY_SPACE":      KEY_SPACE,
  2040  	"KEY_CAPSLOCK":   KEY_CAPSLOCK,
  2041  	"KEY_F1":         KEY_F1,
  2042  	"KEY_F2":         KEY_F2,
  2043  	"KEY_F3":         KEY_F3,
  2044  	"KEY_F4":         KEY_F4,
  2045  	"KEY_F5":         KEY_F5,
  2046  	"KEY_F6":         KEY_F6,
  2047  	"KEY_F7":         KEY_F7,
  2048  	"KEY_F8":         KEY_F8,
  2049  	"KEY_F9":         KEY_F9,
  2050  	"KEY_F10":        KEY_F10,
  2051  	"KEY_NUMLOCK":    KEY_NUMLOCK,
  2052  	"KEY_SCROLLLOCK": KEY_SCROLLLOCK,
  2053  	"KEY_KP7":        KEY_KP7,
  2054  	"KEY_KP8":        KEY_KP8,
  2055  	"KEY_KP9":        KEY_KP9,
  2056  	"KEY_KPMINUS":    KEY_KPMINUS,
  2057  	"KEY_KP4":        KEY_KP4,
  2058  	"KEY_KP5":        KEY_KP5,
  2059  	"KEY_KP6":        KEY_KP6,
  2060  	"KEY_KPPLUS":     KEY_KPPLUS,
  2061  	"KEY_KP1":        KEY_KP1,
  2062  	"KEY_KP2":        KEY_KP2,
  2063  	"KEY_KP3":        KEY_KP3,
  2064  	"KEY_KP0":        KEY_KP0,
  2065  	"KEY_KPDOT":      KEY_KPDOT,
  2066  
  2067  	"KEY_ZENKAKUHANKAKU":   KEY_ZENKAKUHANKAKU,
  2068  	"KEY_102ND":            KEY_102ND,
  2069  	"KEY_F11":              KEY_F11,
  2070  	"KEY_F12":              KEY_F12,
  2071  	"KEY_RO":               KEY_RO,
  2072  	"KEY_KATAKANA":         KEY_KATAKANA,
  2073  	"KEY_HIRAGANA":         KEY_HIRAGANA,
  2074  	"KEY_HENKAN":           KEY_HENKAN,
  2075  	"KEY_KATAKANAHIRAGANA": KEY_KATAKANAHIRAGANA,
  2076  	"KEY_MUHENKAN":         KEY_MUHENKAN,
  2077  	"KEY_KPJPCOMMA":        KEY_KPJPCOMMA,
  2078  	"KEY_KPENTER":          KEY_KPENTER,
  2079  	"KEY_RIGHTCTRL":        KEY_RIGHTCTRL,
  2080  	"KEY_KPSLASH":          KEY_KPSLASH,
  2081  	"KEY_SYSRQ":            KEY_SYSRQ,
  2082  	"KEY_RIGHTALT":         KEY_RIGHTALT,
  2083  	"KEY_LINEFEED":         KEY_LINEFEED,
  2084  	"KEY_HOME":             KEY_HOME,
  2085  	"KEY_UP":               KEY_UP,
  2086  	"KEY_PAGEUP":           KEY_PAGEUP,
  2087  	"KEY_LEFT":             KEY_LEFT,
  2088  	"KEY_RIGHT":            KEY_RIGHT,
  2089  	"KEY_END":              KEY_END,
  2090  	"KEY_DOWN":             KEY_DOWN,
  2091  	"KEY_PAGEDOWN":         KEY_PAGEDOWN,
  2092  	"KEY_INSERT":           KEY_INSERT,
  2093  	"KEY_DELETE":           KEY_DELETE,
  2094  	"KEY_MACRO":            KEY_MACRO,
  2095  	"KEY_MUTE":             KEY_MUTE,
  2096  	"KEY_VOLUMEDOWN":       KEY_VOLUMEDOWN,
  2097  	"KEY_VOLUMEUP":         KEY_VOLUMEUP,
  2098  	"KEY_POWER":            KEY_POWER,
  2099  	"KEY_KPEQUAL":          KEY_KPEQUAL,
  2100  	"KEY_KPPLUSMINUS":      KEY_KPPLUSMINUS,
  2101  	"KEY_PAUSE":            KEY_PAUSE,
  2102  	"KEY_SCALE":            KEY_SCALE,
  2103  
  2104  	"KEY_KPCOMMA":   KEY_KPCOMMA,
  2105  	"KEY_HANGEUL":   KEY_HANGEUL,
  2106  	"KEY_HANGUEL":   KEY_HANGUEL,
  2107  	"KEY_HANJA":     KEY_HANJA,
  2108  	"KEY_YEN":       KEY_YEN,
  2109  	"KEY_LEFTMETA":  KEY_LEFTMETA,
  2110  	"KEY_RIGHTMETA": KEY_RIGHTMETA,
  2111  	"KEY_COMPOSE":   KEY_COMPOSE,
  2112  
  2113  	"KEY_STOP":           KEY_STOP,
  2114  	"KEY_AGAIN":          KEY_AGAIN,
  2115  	"KEY_PROPS":          KEY_PROPS,
  2116  	"KEY_UNDO":           KEY_UNDO,
  2117  	"KEY_FRONT":          KEY_FRONT,
  2118  	"KEY_COPY":           KEY_COPY,
  2119  	"KEY_OPEN":           KEY_OPEN,
  2120  	"KEY_PASTE":          KEY_PASTE,
  2121  	"KEY_FIND":           KEY_FIND,
  2122  	"KEY_CUT":            KEY_CUT,
  2123  	"KEY_HELP":           KEY_HELP,
  2124  	"KEY_MENU":           KEY_MENU,
  2125  	"KEY_CALC":           KEY_CALC,
  2126  	"KEY_SETUP":          KEY_SETUP,
  2127  	"KEY_SLEEP":          KEY_SLEEP,
  2128  	"KEY_WAKEUP":         KEY_WAKEUP,
  2129  	"KEY_FILE":           KEY_FILE,
  2130  	"KEY_SENDFILE":       KEY_SENDFILE,
  2131  	"KEY_DELETEFILE":     KEY_DELETEFILE,
  2132  	"KEY_XFER":           KEY_XFER,
  2133  	"KEY_PROG1":          KEY_PROG1,
  2134  	"KEY_PROG2":          KEY_PROG2,
  2135  	"KEY_WWW":            KEY_WWW,
  2136  	"KEY_MSDOS":          KEY_MSDOS,
  2137  	"KEY_COFFEE":         KEY_COFFEE,
  2138  	"KEY_SCREENLOCK":     KEY_SCREENLOCK,
  2139  	"KEY_ROTATE_DISPLAY": KEY_ROTATE_DISPLAY,
  2140  	"KEY_DIRECTION":      KEY_DIRECTION,
  2141  	"KEY_CYCLEWINDOWS":   KEY_CYCLEWINDOWS,
  2142  	"KEY_MAIL":           KEY_MAIL,
  2143  	"KEY_BOOKMARKS":      KEY_BOOKMARKS,
  2144  	"KEY_COMPUTER":       KEY_COMPUTER,
  2145  	"KEY_BACK":           KEY_BACK,
  2146  	"KEY_FORWARD":        KEY_FORWARD,
  2147  	"KEY_CLOSECD":        KEY_CLOSECD,
  2148  	"KEY_EJECTCD":        KEY_EJECTCD,
  2149  	"KEY_EJECTCLOSECD":   KEY_EJECTCLOSECD,
  2150  	"KEY_NEXTSONG":       KEY_NEXTSONG,
  2151  	"KEY_PLAYPAUSE":      KEY_PLAYPAUSE,
  2152  	"KEY_PREVIOUSSONG":   KEY_PREVIOUSSONG,
  2153  	"KEY_STOPCD":         KEY_STOPCD,
  2154  	"KEY_RECORD":         KEY_RECORD,
  2155  	"KEY_REWIND":         KEY_REWIND,
  2156  	"KEY_PHONE":          KEY_PHONE,
  2157  	"KEY_ISO":            KEY_ISO,
  2158  	"KEY_CONFIG":         KEY_CONFIG,
  2159  	"KEY_HOMEPAGE":       KEY_HOMEPAGE,
  2160  	"KEY_REFRESH":        KEY_REFRESH,
  2161  	"KEY_EXIT":           KEY_EXIT,
  2162  	"KEY_MOVE":           KEY_MOVE,
  2163  	"KEY_EDIT":           KEY_EDIT,
  2164  	"KEY_SCROLLUP":       KEY_SCROLLUP,
  2165  	"KEY_SCROLLDOWN":     KEY_SCROLLDOWN,
  2166  	"KEY_KPLEFTPAREN":    KEY_KPLEFTPAREN,
  2167  	"KEY_KPRIGHTPAREN":   KEY_KPRIGHTPAREN,
  2168  	"KEY_NEW":            KEY_NEW,
  2169  	"KEY_REDO":           KEY_REDO,
  2170  
  2171  	"KEY_F13": KEY_F13,
  2172  	"KEY_F14": KEY_F14,
  2173  	"KEY_F15": KEY_F15,
  2174  	"KEY_F16": KEY_F16,
  2175  	"KEY_F17": KEY_F17,
  2176  	"KEY_F18": KEY_F18,
  2177  	"KEY_F19": KEY_F19,
  2178  	"KEY_F20": KEY_F20,
  2179  	"KEY_F21": KEY_F21,
  2180  	"KEY_F22": KEY_F22,
  2181  	"KEY_F23": KEY_F23,
  2182  	"KEY_F24": KEY_F24,
  2183  
  2184  	"KEY_PLAYCD":           KEY_PLAYCD,
  2185  	"KEY_PAUSECD":          KEY_PAUSECD,
  2186  	"KEY_PROG3":            KEY_PROG3,
  2187  	"KEY_PROG4":            KEY_PROG4,
  2188  	"KEY_ALL_APPLICATIONS": KEY_ALL_APPLICATIONS,
  2189  	"KEY_DASHBOARD":        KEY_DASHBOARD,
  2190  	"KEY_SUSPEND":          KEY_SUSPEND,
  2191  	"KEY_CLOSE":            KEY_CLOSE,
  2192  	"KEY_PLAY":             KEY_PLAY,
  2193  	"KEY_FASTFORWARD":      KEY_FASTFORWARD,
  2194  	"KEY_BASSBOOST":        KEY_BASSBOOST,
  2195  	"KEY_PRINT":            KEY_PRINT,
  2196  	"KEY_HP":               KEY_HP,
  2197  	"KEY_CAMERA":           KEY_CAMERA,
  2198  	"KEY_SOUND":            KEY_SOUND,
  2199  	"KEY_QUESTION":         KEY_QUESTION,
  2200  	"KEY_EMAIL":            KEY_EMAIL,
  2201  	"KEY_CHAT":             KEY_CHAT,
  2202  	"KEY_SEARCH":           KEY_SEARCH,
  2203  	"KEY_CONNECT":          KEY_CONNECT,
  2204  	"KEY_FINANCE":          KEY_FINANCE,
  2205  	"KEY_SPORT":            KEY_SPORT,
  2206  	"KEY_SHOP":             KEY_SHOP,
  2207  	"KEY_ALTERASE":         KEY_ALTERASE,
  2208  	"KEY_CANCEL":           KEY_CANCEL,
  2209  	"KEY_BRIGHTNESSDOWN":   KEY_BRIGHTNESSDOWN,
  2210  	"KEY_BRIGHTNESSUP":     KEY_BRIGHTNESSUP,
  2211  	"KEY_MEDIA":            KEY_MEDIA,
  2212  
  2213  	"KEY_SWITCHVIDEOMODE": KEY_SWITCHVIDEOMODE,
  2214  	"KEY_KBDILLUMTOGGLE":  KEY_KBDILLUMTOGGLE,
  2215  	"KEY_KBDILLUMDOWN":    KEY_KBDILLUMDOWN,
  2216  	"KEY_KBDILLUMUP":      KEY_KBDILLUMUP,
  2217  
  2218  	"KEY_SEND":        KEY_SEND,
  2219  	"KEY_REPLY":       KEY_REPLY,
  2220  	"KEY_FORWARDMAIL": KEY_FORWARDMAIL,
  2221  	"KEY_SAVE":        KEY_SAVE,
  2222  	"KEY_DOCUMENTS":   KEY_DOCUMENTS,
  2223  
  2224  	"KEY_BATTERY": KEY_BATTERY,
  2225  
  2226  	"KEY_BLUETOOTH": KEY_BLUETOOTH,
  2227  	"KEY_WLAN":      KEY_WLAN,
  2228  	"KEY_UWB":       KEY_UWB,
  2229  
  2230  	"KEY_UNKNOWN": KEY_UNKNOWN,
  2231  
  2232  	"KEY_VIDEO_NEXT":       KEY_VIDEO_NEXT,
  2233  	"KEY_VIDEO_PREV":       KEY_VIDEO_PREV,
  2234  	"KEY_BRIGHTNESS_CYCLE": KEY_BRIGHTNESS_CYCLE,
  2235  	"KEY_BRIGHTNESS_AUTO":  KEY_BRIGHTNESS_AUTO,
  2236  	"KEY_BRIGHTNESS_ZERO":  KEY_BRIGHTNESS_ZERO,
  2237  	"KEY_DISPLAY_OFF":      KEY_DISPLAY_OFF,
  2238  
  2239  	"KEY_WWAN":   KEY_WWAN,
  2240  	"KEY_WIMAX":  KEY_WIMAX,
  2241  	"KEY_RFKILL": KEY_RFKILL,
  2242  
  2243  	"KEY_MICMUTE": KEY_MICMUTE,
  2244  
  2245  	"BTN_MISC": BTN_MISC,
  2246  	"BTN_0":    BTN_0,
  2247  	"BTN_1":    BTN_1,
  2248  	"BTN_2":    BTN_2,
  2249  	"BTN_3":    BTN_3,
  2250  	"BTN_4":    BTN_4,
  2251  	"BTN_5":    BTN_5,
  2252  	"BTN_6":    BTN_6,
  2253  	"BTN_7":    BTN_7,
  2254  	"BTN_8":    BTN_8,
  2255  	"BTN_9":    BTN_9,
  2256  
  2257  	"BTN_MOUSE":   BTN_MOUSE,
  2258  	"BTN_LEFT":    BTN_LEFT,
  2259  	"BTN_RIGHT":   BTN_RIGHT,
  2260  	"BTN_MIDDLE":  BTN_MIDDLE,
  2261  	"BTN_SIDE":    BTN_SIDE,
  2262  	"BTN_EXTRA":   BTN_EXTRA,
  2263  	"BTN_FORWARD": BTN_FORWARD,
  2264  	"BTN_BACK":    BTN_BACK,
  2265  	"BTN_TASK":    BTN_TASK,
  2266  
  2267  	"BTN_JOYSTICK": BTN_JOYSTICK,
  2268  	"BTN_TRIGGER":  BTN_TRIGGER,
  2269  	"BTN_THUMB":    BTN_THUMB,
  2270  	"BTN_THUMB2":   BTN_THUMB2,
  2271  	"BTN_TOP":      BTN_TOP,
  2272  	"BTN_TOP2":     BTN_TOP2,
  2273  	"BTN_PINKIE":   BTN_PINKIE,
  2274  	"BTN_BASE":     BTN_BASE,
  2275  	"BTN_BASE2":    BTN_BASE2,
  2276  	"BTN_BASE3":    BTN_BASE3,
  2277  	"BTN_BASE4":    BTN_BASE4,
  2278  	"BTN_BASE5":    BTN_BASE5,
  2279  	"BTN_BASE6":    BTN_BASE6,
  2280  	"BTN_DEAD":     BTN_DEAD,
  2281  
  2282  	"BTN_GAMEPAD": BTN_GAMEPAD,
  2283  	"BTN_SOUTH":   BTN_SOUTH,
  2284  	"BTN_A":       BTN_A,
  2285  	"BTN_EAST":    BTN_EAST,
  2286  	"BTN_B":       BTN_B,
  2287  	"BTN_C":       BTN_C,
  2288  	"BTN_NORTH":   BTN_NORTH,
  2289  	"BTN_X":       BTN_X,
  2290  	"BTN_WEST":    BTN_WEST,
  2291  	"BTN_Y":       BTN_Y,
  2292  	"BTN_Z":       BTN_Z,
  2293  	"BTN_TL":      BTN_TL,
  2294  	"BTN_TR":      BTN_TR,
  2295  	"BTN_TL2":     BTN_TL2,
  2296  	"BTN_TR2":     BTN_TR2,
  2297  	"BTN_SELECT":  BTN_SELECT,
  2298  	"BTN_START":   BTN_START,
  2299  	"BTN_MODE":    BTN_MODE,
  2300  	"BTN_THUMBL":  BTN_THUMBL,
  2301  	"BTN_THUMBR":  BTN_THUMBR,
  2302  
  2303  	"BTN_DIGI":           BTN_DIGI,
  2304  	"BTN_TOOL_PEN":       BTN_TOOL_PEN,
  2305  	"BTN_TOOL_RUBBER":    BTN_TOOL_RUBBER,
  2306  	"BTN_TOOL_BRUSH":     BTN_TOOL_BRUSH,
  2307  	"BTN_TOOL_PENCIL":    BTN_TOOL_PENCIL,
  2308  	"BTN_TOOL_AIRBRUSH":  BTN_TOOL_AIRBRUSH,
  2309  	"BTN_TOOL_FINGER":    BTN_TOOL_FINGER,
  2310  	"BTN_TOOL_MOUSE":     BTN_TOOL_MOUSE,
  2311  	"BTN_TOOL_LENS":      BTN_TOOL_LENS,
  2312  	"BTN_TOOL_QUINTTAP":  BTN_TOOL_QUINTTAP,
  2313  	"BTN_STYLUS3":        BTN_STYLUS3,
  2314  	"BTN_TOUCH":          BTN_TOUCH,
  2315  	"BTN_STYLUS":         BTN_STYLUS,
  2316  	"BTN_STYLUS2":        BTN_STYLUS2,
  2317  	"BTN_TOOL_DOUBLETAP": BTN_TOOL_DOUBLETAP,
  2318  	"BTN_TOOL_TRIPLETAP": BTN_TOOL_TRIPLETAP,
  2319  	"BTN_TOOL_QUADTAP":   BTN_TOOL_QUADTAP,
  2320  
  2321  	"BTN_WHEEL":     BTN_WHEEL,
  2322  	"BTN_GEAR_DOWN": BTN_GEAR_DOWN,
  2323  	"BTN_GEAR_UP":   BTN_GEAR_UP,
  2324  
  2325  	"KEY_OK":                KEY_OK,
  2326  	"KEY_SELECT":            KEY_SELECT,
  2327  	"KEY_GOTO":              KEY_GOTO,
  2328  	"KEY_CLEAR":             KEY_CLEAR,
  2329  	"KEY_POWER2":            KEY_POWER2,
  2330  	"KEY_OPTION":            KEY_OPTION,
  2331  	"KEY_INFO":              KEY_INFO,
  2332  	"KEY_TIME":              KEY_TIME,
  2333  	"KEY_VENDOR":            KEY_VENDOR,
  2334  	"KEY_ARCHIVE":           KEY_ARCHIVE,
  2335  	"KEY_PROGRAM":           KEY_PROGRAM,
  2336  	"KEY_CHANNEL":           KEY_CHANNEL,
  2337  	"KEY_FAVORITES":         KEY_FAVORITES,
  2338  	"KEY_EPG":               KEY_EPG,
  2339  	"KEY_PVR":               KEY_PVR,
  2340  	"KEY_MHP":               KEY_MHP,
  2341  	"KEY_LANGUAGE":          KEY_LANGUAGE,
  2342  	"KEY_TITLE":             KEY_TITLE,
  2343  	"KEY_SUBTITLE":          KEY_SUBTITLE,
  2344  	"KEY_ANGLE":             KEY_ANGLE,
  2345  	"KEY_FULL_SCREEN":       KEY_FULL_SCREEN,
  2346  	"KEY_ZOOM":              KEY_ZOOM,
  2347  	"KEY_MODE":              KEY_MODE,
  2348  	"KEY_KEYBOARD":          KEY_KEYBOARD,
  2349  	"KEY_ASPECT_RATIO":      KEY_ASPECT_RATIO,
  2350  	"KEY_SCREEN":            KEY_SCREEN,
  2351  	"KEY_PC":                KEY_PC,
  2352  	"KEY_TV":                KEY_TV,
  2353  	"KEY_TV2":               KEY_TV2,
  2354  	"KEY_VCR":               KEY_VCR,
  2355  	"KEY_VCR2":              KEY_VCR2,
  2356  	"KEY_SAT":               KEY_SAT,
  2357  	"KEY_SAT2":              KEY_SAT2,
  2358  	"KEY_CD":                KEY_CD,
  2359  	"KEY_TAPE":              KEY_TAPE,
  2360  	"KEY_RADIO":             KEY_RADIO,
  2361  	"KEY_TUNER":             KEY_TUNER,
  2362  	"KEY_PLAYER":            KEY_PLAYER,
  2363  	"KEY_TEXT":              KEY_TEXT,
  2364  	"KEY_DVD":               KEY_DVD,
  2365  	"KEY_AUX":               KEY_AUX,
  2366  	"KEY_MP3":               KEY_MP3,
  2367  	"KEY_AUDIO":             KEY_AUDIO,
  2368  	"KEY_VIDEO":             KEY_VIDEO,
  2369  	"KEY_DIRECTORY":         KEY_DIRECTORY,
  2370  	"KEY_LIST":              KEY_LIST,
  2371  	"KEY_MEMO":              KEY_MEMO,
  2372  	"KEY_CALENDAR":          KEY_CALENDAR,
  2373  	"KEY_RED":               KEY_RED,
  2374  	"KEY_GREEN":             KEY_GREEN,
  2375  	"KEY_YELLOW":            KEY_YELLOW,
  2376  	"KEY_BLUE":              KEY_BLUE,
  2377  	"KEY_CHANNELUP":         KEY_CHANNELUP,
  2378  	"KEY_CHANNELDOWN":       KEY_CHANNELDOWN,
  2379  	"KEY_FIRST":             KEY_FIRST,
  2380  	"KEY_LAST":              KEY_LAST,
  2381  	"KEY_AB":                KEY_AB,
  2382  	"KEY_NEXT":              KEY_NEXT,
  2383  	"KEY_RESTART":           KEY_RESTART,
  2384  	"KEY_SLOW":              KEY_SLOW,
  2385  	"KEY_SHUFFLE":           KEY_SHUFFLE,
  2386  	"KEY_BREAK":             KEY_BREAK,
  2387  	"KEY_PREVIOUS":          KEY_PREVIOUS,
  2388  	"KEY_DIGITS":            KEY_DIGITS,
  2389  	"KEY_TEEN":              KEY_TEEN,
  2390  	"KEY_TWEN":              KEY_TWEN,
  2391  	"KEY_VIDEOPHONE":        KEY_VIDEOPHONE,
  2392  	"KEY_GAMES":             KEY_GAMES,
  2393  	"KEY_ZOOMIN":            KEY_ZOOMIN,
  2394  	"KEY_ZOOMOUT":           KEY_ZOOMOUT,
  2395  	"KEY_ZOOMRESET":         KEY_ZOOMRESET,
  2396  	"KEY_WORDPROCESSOR":     KEY_WORDPROCESSOR,
  2397  	"KEY_EDITOR":            KEY_EDITOR,
  2398  	"KEY_SPREADSHEET":       KEY_SPREADSHEET,
  2399  	"KEY_GRAPHICSEDITOR":    KEY_GRAPHICSEDITOR,
  2400  	"KEY_PRESENTATION":      KEY_PRESENTATION,
  2401  	"KEY_DATABASE":          KEY_DATABASE,
  2402  	"KEY_NEWS":              KEY_NEWS,
  2403  	"KEY_VOICEMAIL":         KEY_VOICEMAIL,
  2404  	"KEY_ADDRESSBOOK":       KEY_ADDRESSBOOK,
  2405  	"KEY_MESSENGER":         KEY_MESSENGER,
  2406  	"KEY_DISPLAYTOGGLE":     KEY_DISPLAYTOGGLE,
  2407  	"KEY_BRIGHTNESS_TOGGLE": KEY_BRIGHTNESS_TOGGLE,
  2408  	"KEY_SPELLCHECK":        KEY_SPELLCHECK,
  2409  	"KEY_LOGOFF":            KEY_LOGOFF,
  2410  
  2411  	"KEY_DOLLAR": KEY_DOLLAR,
  2412  	"KEY_EURO":   KEY_EURO,
  2413  
  2414  	"KEY_FRAMEBACK":           KEY_FRAMEBACK,
  2415  	"KEY_FRAMEFORWARD":        KEY_FRAMEFORWARD,
  2416  	"KEY_CONTEXT_MENU":        KEY_CONTEXT_MENU,
  2417  	"KEY_MEDIA_REPEAT":        KEY_MEDIA_REPEAT,
  2418  	"KEY_10CHANNELSUP":        KEY_10CHANNELSUP,
  2419  	"KEY_10CHANNELSDOWN":      KEY_10CHANNELSDOWN,
  2420  	"KEY_IMAGES":              KEY_IMAGES,
  2421  	"KEY_NOTIFICATION_CENTER": KEY_NOTIFICATION_CENTER,
  2422  	"KEY_PICKUP_PHONE":        KEY_PICKUP_PHONE,
  2423  	"KEY_HANGUP_PHONE":        KEY_HANGUP_PHONE,
  2424  
  2425  	"KEY_DEL_EOL":  KEY_DEL_EOL,
  2426  	"KEY_DEL_EOS":  KEY_DEL_EOS,
  2427  	"KEY_INS_LINE": KEY_INS_LINE,
  2428  	"KEY_DEL_LINE": KEY_DEL_LINE,
  2429  
  2430  	"KEY_FN":             KEY_FN,
  2431  	"KEY_FN_ESC":         KEY_FN_ESC,
  2432  	"KEY_FN_F1":          KEY_FN_F1,
  2433  	"KEY_FN_F2":          KEY_FN_F2,
  2434  	"KEY_FN_F3":          KEY_FN_F3,
  2435  	"KEY_FN_F4":          KEY_FN_F4,
  2436  	"KEY_FN_F5":          KEY_FN_F5,
  2437  	"KEY_FN_F6":          KEY_FN_F6,
  2438  	"KEY_FN_F7":          KEY_FN_F7,
  2439  	"KEY_FN_F8":          KEY_FN_F8,
  2440  	"KEY_FN_F9":          KEY_FN_F9,
  2441  	"KEY_FN_F10":         KEY_FN_F10,
  2442  	"KEY_FN_F11":         KEY_FN_F11,
  2443  	"KEY_FN_F12":         KEY_FN_F12,
  2444  	"KEY_FN_1":           KEY_FN_1,
  2445  	"KEY_FN_2":           KEY_FN_2,
  2446  	"KEY_FN_D":           KEY_FN_D,
  2447  	"KEY_FN_E":           KEY_FN_E,
  2448  	"KEY_FN_F":           KEY_FN_F,
  2449  	"KEY_FN_S":           KEY_FN_S,
  2450  	"KEY_FN_B":           KEY_FN_B,
  2451  	"KEY_FN_RIGHT_SHIFT": KEY_FN_RIGHT_SHIFT,
  2452  
  2453  	"KEY_BRL_DOT1":  KEY_BRL_DOT1,
  2454  	"KEY_BRL_DOT2":  KEY_BRL_DOT2,
  2455  	"KEY_BRL_DOT3":  KEY_BRL_DOT3,
  2456  	"KEY_BRL_DOT4":  KEY_BRL_DOT4,
  2457  	"KEY_BRL_DOT5":  KEY_BRL_DOT5,
  2458  	"KEY_BRL_DOT6":  KEY_BRL_DOT6,
  2459  	"KEY_BRL_DOT7":  KEY_BRL_DOT7,
  2460  	"KEY_BRL_DOT8":  KEY_BRL_DOT8,
  2461  	"KEY_BRL_DOT9":  KEY_BRL_DOT9,
  2462  	"KEY_BRL_DOT10": KEY_BRL_DOT10,
  2463  
  2464  	"KEY_NUMERIC_0":     KEY_NUMERIC_0,
  2465  	"KEY_NUMERIC_1":     KEY_NUMERIC_1,
  2466  	"KEY_NUMERIC_2":     KEY_NUMERIC_2,
  2467  	"KEY_NUMERIC_3":     KEY_NUMERIC_3,
  2468  	"KEY_NUMERIC_4":     KEY_NUMERIC_4,
  2469  	"KEY_NUMERIC_5":     KEY_NUMERIC_5,
  2470  	"KEY_NUMERIC_6":     KEY_NUMERIC_6,
  2471  	"KEY_NUMERIC_7":     KEY_NUMERIC_7,
  2472  	"KEY_NUMERIC_8":     KEY_NUMERIC_8,
  2473  	"KEY_NUMERIC_9":     KEY_NUMERIC_9,
  2474  	"KEY_NUMERIC_STAR":  KEY_NUMERIC_STAR,
  2475  	"KEY_NUMERIC_POUND": KEY_NUMERIC_POUND,
  2476  	"KEY_NUMERIC_A":     KEY_NUMERIC_A,
  2477  	"KEY_NUMERIC_B":     KEY_NUMERIC_B,
  2478  	"KEY_NUMERIC_C":     KEY_NUMERIC_C,
  2479  	"KEY_NUMERIC_D":     KEY_NUMERIC_D,
  2480  
  2481  	"KEY_CAMERA_FOCUS": KEY_CAMERA_FOCUS,
  2482  	"KEY_WPS_BUTTON":   KEY_WPS_BUTTON,
  2483  
  2484  	"KEY_TOUCHPAD_TOGGLE": KEY_TOUCHPAD_TOGGLE,
  2485  	"KEY_TOUCHPAD_ON":     KEY_TOUCHPAD_ON,
  2486  	"KEY_TOUCHPAD_OFF":    KEY_TOUCHPAD_OFF,
  2487  
  2488  	"KEY_CAMERA_ZOOMIN":  KEY_CAMERA_ZOOMIN,
  2489  	"KEY_CAMERA_ZOOMOUT": KEY_CAMERA_ZOOMOUT,
  2490  	"KEY_CAMERA_UP":      KEY_CAMERA_UP,
  2491  	"KEY_CAMERA_DOWN":    KEY_CAMERA_DOWN,
  2492  	"KEY_CAMERA_LEFT":    KEY_CAMERA_LEFT,
  2493  	"KEY_CAMERA_RIGHT":   KEY_CAMERA_RIGHT,
  2494  
  2495  	"KEY_ATTENDANT_ON":     KEY_ATTENDANT_ON,
  2496  	"KEY_ATTENDANT_OFF":    KEY_ATTENDANT_OFF,
  2497  	"KEY_ATTENDANT_TOGGLE": KEY_ATTENDANT_TOGGLE,
  2498  	"KEY_LIGHTS_TOGGLE":    KEY_LIGHTS_TOGGLE,
  2499  
  2500  	"BTN_DPAD_UP":    BTN_DPAD_UP,
  2501  	"BTN_DPAD_DOWN":  BTN_DPAD_DOWN,
  2502  	"BTN_DPAD_LEFT":  BTN_DPAD_LEFT,
  2503  	"BTN_DPAD_RIGHT": BTN_DPAD_RIGHT,
  2504  
  2505  	"KEY_ALS_TOGGLE":         KEY_ALS_TOGGLE,
  2506  	"KEY_ROTATE_LOCK_TOGGLE": KEY_ROTATE_LOCK_TOGGLE,
  2507  
  2508  	"KEY_BUTTONCONFIG":    KEY_BUTTONCONFIG,
  2509  	"KEY_TASKMANAGER":     KEY_TASKMANAGER,
  2510  	"KEY_JOURNAL":         KEY_JOURNAL,
  2511  	"KEY_CONTROLPANEL":    KEY_CONTROLPANEL,
  2512  	"KEY_APPSELECT":       KEY_APPSELECT,
  2513  	"KEY_SCREENSAVER":     KEY_SCREENSAVER,
  2514  	"KEY_VOICECOMMAND":    KEY_VOICECOMMAND,
  2515  	"KEY_ASSISTANT":       KEY_ASSISTANT,
  2516  	"KEY_KBD_LAYOUT_NEXT": KEY_KBD_LAYOUT_NEXT,
  2517  	"KEY_EMOJI_PICKER":    KEY_EMOJI_PICKER,
  2518  	"KEY_DICTATE":         KEY_DICTATE,
  2519  
  2520  	"KEY_BRIGHTNESS_MIN": KEY_BRIGHTNESS_MIN,
  2521  	"KEY_BRIGHTNESS_MAX": KEY_BRIGHTNESS_MAX,
  2522  
  2523  	"KEY_KBDINPUTASSIST_PREV":      KEY_KBDINPUTASSIST_PREV,
  2524  	"KEY_KBDINPUTASSIST_NEXT":      KEY_KBDINPUTASSIST_NEXT,
  2525  	"KEY_KBDINPUTASSIST_PREVGROUP": KEY_KBDINPUTASSIST_PREVGROUP,
  2526  	"KEY_KBDINPUTASSIST_NEXTGROUP": KEY_KBDINPUTASSIST_NEXTGROUP,
  2527  	"KEY_KBDINPUTASSIST_ACCEPT":    KEY_KBDINPUTASSIST_ACCEPT,
  2528  	"KEY_KBDINPUTASSIST_CANCEL":    KEY_KBDINPUTASSIST_CANCEL,
  2529  
  2530  	"KEY_RIGHT_UP":   KEY_RIGHT_UP,
  2531  	"KEY_RIGHT_DOWN": KEY_RIGHT_DOWN,
  2532  	"KEY_LEFT_UP":    KEY_LEFT_UP,
  2533  	"KEY_LEFT_DOWN":  KEY_LEFT_DOWN,
  2534  
  2535  	"KEY_ROOT_MENU": KEY_ROOT_MENU,
  2536  
  2537  	"KEY_MEDIA_TOP_MENU": KEY_MEDIA_TOP_MENU,
  2538  	"KEY_NUMERIC_11":     KEY_NUMERIC_11,
  2539  	"KEY_NUMERIC_12":     KEY_NUMERIC_12,
  2540  
  2541  	"KEY_AUDIO_DESC":    KEY_AUDIO_DESC,
  2542  	"KEY_3D_MODE":       KEY_3D_MODE,
  2543  	"KEY_NEXT_FAVORITE": KEY_NEXT_FAVORITE,
  2544  	"KEY_STOP_RECORD":   KEY_STOP_RECORD,
  2545  	"KEY_PAUSE_RECORD":  KEY_PAUSE_RECORD,
  2546  	"KEY_VOD":           KEY_VOD,
  2547  	"KEY_UNMUTE":        KEY_UNMUTE,
  2548  	"KEY_FASTREVERSE":   KEY_FASTREVERSE,
  2549  	"KEY_SLOWREVERSE":   KEY_SLOWREVERSE,
  2550  
  2551  	"KEY_DATA":              KEY_DATA,
  2552  	"KEY_ONSCREEN_KEYBOARD": KEY_ONSCREEN_KEYBOARD,
  2553  
  2554  	"KEY_PRIVACY_SCREEN_TOGGLE": KEY_PRIVACY_SCREEN_TOGGLE,
  2555  
  2556  	"KEY_SELECTIVE_SCREENSHOT": KEY_SELECTIVE_SCREENSHOT,
  2557  
  2558  	"KEY_MACRO1":  KEY_MACRO1,
  2559  	"KEY_MACRO2":  KEY_MACRO2,
  2560  	"KEY_MACRO3":  KEY_MACRO3,
  2561  	"KEY_MACRO4":  KEY_MACRO4,
  2562  	"KEY_MACRO5":  KEY_MACRO5,
  2563  	"KEY_MACRO6":  KEY_MACRO6,
  2564  	"KEY_MACRO7":  KEY_MACRO7,
  2565  	"KEY_MACRO8":  KEY_MACRO8,
  2566  	"KEY_MACRO9":  KEY_MACRO9,
  2567  	"KEY_MACRO10": KEY_MACRO10,
  2568  	"KEY_MACRO11": KEY_MACRO11,
  2569  	"KEY_MACRO12": KEY_MACRO12,
  2570  	"KEY_MACRO13": KEY_MACRO13,
  2571  	"KEY_MACRO14": KEY_MACRO14,
  2572  	"KEY_MACRO15": KEY_MACRO15,
  2573  	"KEY_MACRO16": KEY_MACRO16,
  2574  	"KEY_MACRO17": KEY_MACRO17,
  2575  	"KEY_MACRO18": KEY_MACRO18,
  2576  	"KEY_MACRO19": KEY_MACRO19,
  2577  	"KEY_MACRO20": KEY_MACRO20,
  2578  	"KEY_MACRO21": KEY_MACRO21,
  2579  	"KEY_MACRO22": KEY_MACRO22,
  2580  	"KEY_MACRO23": KEY_MACRO23,
  2581  	"KEY_MACRO24": KEY_MACRO24,
  2582  	"KEY_MACRO25": KEY_MACRO25,
  2583  	"KEY_MACRO26": KEY_MACRO26,
  2584  	"KEY_MACRO27": KEY_MACRO27,
  2585  	"KEY_MACRO28": KEY_MACRO28,
  2586  	"KEY_MACRO29": KEY_MACRO29,
  2587  	"KEY_MACRO30": KEY_MACRO30,
  2588  
  2589  	"KEY_MACRO_RECORD_START": KEY_MACRO_RECORD_START,
  2590  	"KEY_MACRO_RECORD_STOP":  KEY_MACRO_RECORD_STOP,
  2591  	"KEY_MACRO_PRESET_CYCLE": KEY_MACRO_PRESET_CYCLE,
  2592  	"KEY_MACRO_PRESET1":      KEY_MACRO_PRESET1,
  2593  	"KEY_MACRO_PRESET2":      KEY_MACRO_PRESET2,
  2594  	"KEY_MACRO_PRESET3":      KEY_MACRO_PRESET3,
  2595  
  2596  	"KEY_KBD_LCD_MENU1": KEY_KBD_LCD_MENU1,
  2597  	"KEY_KBD_LCD_MENU2": KEY_KBD_LCD_MENU2,
  2598  	"KEY_KBD_LCD_MENU3": KEY_KBD_LCD_MENU3,
  2599  	"KEY_KBD_LCD_MENU4": KEY_KBD_LCD_MENU4,
  2600  	"KEY_KBD_LCD_MENU5": KEY_KBD_LCD_MENU5,
  2601  
  2602  	"BTN_TRIGGER_HAPPY":   BTN_TRIGGER_HAPPY,
  2603  	"BTN_TRIGGER_HAPPY1":  BTN_TRIGGER_HAPPY1,
  2604  	"BTN_TRIGGER_HAPPY2":  BTN_TRIGGER_HAPPY2,
  2605  	"BTN_TRIGGER_HAPPY3":  BTN_TRIGGER_HAPPY3,
  2606  	"BTN_TRIGGER_HAPPY4":  BTN_TRIGGER_HAPPY4,
  2607  	"BTN_TRIGGER_HAPPY5":  BTN_TRIGGER_HAPPY5,
  2608  	"BTN_TRIGGER_HAPPY6":  BTN_TRIGGER_HAPPY6,
  2609  	"BTN_TRIGGER_HAPPY7":  BTN_TRIGGER_HAPPY7,
  2610  	"BTN_TRIGGER_HAPPY8":  BTN_TRIGGER_HAPPY8,
  2611  	"BTN_TRIGGER_HAPPY9":  BTN_TRIGGER_HAPPY9,
  2612  	"BTN_TRIGGER_HAPPY10": BTN_TRIGGER_HAPPY10,
  2613  	"BTN_TRIGGER_HAPPY11": BTN_TRIGGER_HAPPY11,
  2614  	"BTN_TRIGGER_HAPPY12": BTN_TRIGGER_HAPPY12,
  2615  	"BTN_TRIGGER_HAPPY13": BTN_TRIGGER_HAPPY13,
  2616  	"BTN_TRIGGER_HAPPY14": BTN_TRIGGER_HAPPY14,
  2617  	"BTN_TRIGGER_HAPPY15": BTN_TRIGGER_HAPPY15,
  2618  	"BTN_TRIGGER_HAPPY16": BTN_TRIGGER_HAPPY16,
  2619  	"BTN_TRIGGER_HAPPY17": BTN_TRIGGER_HAPPY17,
  2620  	"BTN_TRIGGER_HAPPY18": BTN_TRIGGER_HAPPY18,
  2621  	"BTN_TRIGGER_HAPPY19": BTN_TRIGGER_HAPPY19,
  2622  	"BTN_TRIGGER_HAPPY20": BTN_TRIGGER_HAPPY20,
  2623  	"BTN_TRIGGER_HAPPY21": BTN_TRIGGER_HAPPY21,
  2624  	"BTN_TRIGGER_HAPPY22": BTN_TRIGGER_HAPPY22,
  2625  	"BTN_TRIGGER_HAPPY23": BTN_TRIGGER_HAPPY23,
  2626  	"BTN_TRIGGER_HAPPY24": BTN_TRIGGER_HAPPY24,
  2627  	"BTN_TRIGGER_HAPPY25": BTN_TRIGGER_HAPPY25,
  2628  	"BTN_TRIGGER_HAPPY26": BTN_TRIGGER_HAPPY26,
  2629  	"BTN_TRIGGER_HAPPY27": BTN_TRIGGER_HAPPY27,
  2630  	"BTN_TRIGGER_HAPPY28": BTN_TRIGGER_HAPPY28,
  2631  	"BTN_TRIGGER_HAPPY29": BTN_TRIGGER_HAPPY29,
  2632  	"BTN_TRIGGER_HAPPY30": BTN_TRIGGER_HAPPY30,
  2633  	"BTN_TRIGGER_HAPPY31": BTN_TRIGGER_HAPPY31,
  2634  	"BTN_TRIGGER_HAPPY32": BTN_TRIGGER_HAPPY32,
  2635  	"BTN_TRIGGER_HAPPY33": BTN_TRIGGER_HAPPY33,
  2636  	"BTN_TRIGGER_HAPPY34": BTN_TRIGGER_HAPPY34,
  2637  	"BTN_TRIGGER_HAPPY35": BTN_TRIGGER_HAPPY35,
  2638  	"BTN_TRIGGER_HAPPY36": BTN_TRIGGER_HAPPY36,
  2639  	"BTN_TRIGGER_HAPPY37": BTN_TRIGGER_HAPPY37,
  2640  	"BTN_TRIGGER_HAPPY38": BTN_TRIGGER_HAPPY38,
  2641  	"BTN_TRIGGER_HAPPY39": BTN_TRIGGER_HAPPY39,
  2642  	"BTN_TRIGGER_HAPPY40": BTN_TRIGGER_HAPPY40,
  2643  
  2644  	"KEY_MIN_INTERESTING": KEY_MIN_INTERESTING,
  2645  	"KEY_MAX":             KEY_MAX,
  2646  	"KEY_CNT":             KEY_CNT,
  2647  }
  2648  
  2649  var RELFromString = map[string]EvCode{
  2650  	"REL_X":      REL_X,
  2651  	"REL_Y":      REL_Y,
  2652  	"REL_Z":      REL_Z,
  2653  	"REL_RX":     REL_RX,
  2654  	"REL_RY":     REL_RY,
  2655  	"REL_RZ":     REL_RZ,
  2656  	"REL_HWHEEL": REL_HWHEEL,
  2657  	"REL_DIAL":   REL_DIAL,
  2658  	"REL_WHEEL":  REL_WHEEL,
  2659  	"REL_MISC":   REL_MISC,
  2660  
  2661  	"REL_RESERVED":      REL_RESERVED,
  2662  	"REL_WHEEL_HI_RES":  REL_WHEEL_HI_RES,
  2663  	"REL_HWHEEL_HI_RES": REL_HWHEEL_HI_RES,
  2664  	"REL_MAX":           REL_MAX,
  2665  	"REL_CNT":           REL_CNT,
  2666  }
  2667  
  2668  var ABSFromString = map[string]EvCode{
  2669  	"ABS_X":          ABS_X,
  2670  	"ABS_Y":          ABS_Y,
  2671  	"ABS_Z":          ABS_Z,
  2672  	"ABS_RX":         ABS_RX,
  2673  	"ABS_RY":         ABS_RY,
  2674  	"ABS_RZ":         ABS_RZ,
  2675  	"ABS_THROTTLE":   ABS_THROTTLE,
  2676  	"ABS_RUDDER":     ABS_RUDDER,
  2677  	"ABS_WHEEL":      ABS_WHEEL,
  2678  	"ABS_GAS":        ABS_GAS,
  2679  	"ABS_BRAKE":      ABS_BRAKE,
  2680  	"ABS_HAT0X":      ABS_HAT0X,
  2681  	"ABS_HAT0Y":      ABS_HAT0Y,
  2682  	"ABS_HAT1X":      ABS_HAT1X,
  2683  	"ABS_HAT1Y":      ABS_HAT1Y,
  2684  	"ABS_HAT2X":      ABS_HAT2X,
  2685  	"ABS_HAT2Y":      ABS_HAT2Y,
  2686  	"ABS_HAT3X":      ABS_HAT3X,
  2687  	"ABS_HAT3Y":      ABS_HAT3Y,
  2688  	"ABS_PRESSURE":   ABS_PRESSURE,
  2689  	"ABS_DISTANCE":   ABS_DISTANCE,
  2690  	"ABS_TILT_X":     ABS_TILT_X,
  2691  	"ABS_TILT_Y":     ABS_TILT_Y,
  2692  	"ABS_TOOL_WIDTH": ABS_TOOL_WIDTH,
  2693  
  2694  	"ABS_VOLUME": ABS_VOLUME,
  2695  
  2696  	"ABS_MISC": ABS_MISC,
  2697  
  2698  	"ABS_RESERVED": ABS_RESERVED,
  2699  
  2700  	"ABS_MT_SLOT":        ABS_MT_SLOT,
  2701  	"ABS_MT_TOUCH_MAJOR": ABS_MT_TOUCH_MAJOR,
  2702  	"ABS_MT_TOUCH_MINOR": ABS_MT_TOUCH_MINOR,
  2703  	"ABS_MT_WIDTH_MAJOR": ABS_MT_WIDTH_MAJOR,
  2704  	"ABS_MT_WIDTH_MINOR": ABS_MT_WIDTH_MINOR,
  2705  	"ABS_MT_ORIENTATION": ABS_MT_ORIENTATION,
  2706  	"ABS_MT_POSITION_X":  ABS_MT_POSITION_X,
  2707  	"ABS_MT_POSITION_Y":  ABS_MT_POSITION_Y,
  2708  	"ABS_MT_TOOL_TYPE":   ABS_MT_TOOL_TYPE,
  2709  	"ABS_MT_BLOB_ID":     ABS_MT_BLOB_ID,
  2710  	"ABS_MT_TRACKING_ID": ABS_MT_TRACKING_ID,
  2711  	"ABS_MT_PRESSURE":    ABS_MT_PRESSURE,
  2712  	"ABS_MT_DISTANCE":    ABS_MT_DISTANCE,
  2713  	"ABS_MT_TOOL_X":      ABS_MT_TOOL_X,
  2714  	"ABS_MT_TOOL_Y":      ABS_MT_TOOL_Y,
  2715  
  2716  	"ABS_MAX": ABS_MAX,
  2717  	"ABS_CNT": ABS_CNT,
  2718  }
  2719  
  2720  var SWFromString = map[string]EvCode{
  2721  	"SW_LID":                  SW_LID,
  2722  	"SW_TABLET_MODE":          SW_TABLET_MODE,
  2723  	"SW_HEADPHONE_INSERT":     SW_HEADPHONE_INSERT,
  2724  	"SW_RFKILL_ALL":           SW_RFKILL_ALL,
  2725  	"SW_RADIO":                SW_RADIO,
  2726  	"SW_MICROPHONE_INSERT":    SW_MICROPHONE_INSERT,
  2727  	"SW_DOCK":                 SW_DOCK,
  2728  	"SW_LINEOUT_INSERT":       SW_LINEOUT_INSERT,
  2729  	"SW_JACK_PHYSICAL_INSERT": SW_JACK_PHYSICAL_INSERT,
  2730  	"SW_VIDEOOUT_INSERT":      SW_VIDEOOUT_INSERT,
  2731  	"SW_CAMERA_LENS_COVER":    SW_CAMERA_LENS_COVER,
  2732  	"SW_KEYPAD_SLIDE":         SW_KEYPAD_SLIDE,
  2733  	"SW_FRONT_PROXIMITY":      SW_FRONT_PROXIMITY,
  2734  	"SW_ROTATE_LOCK":          SW_ROTATE_LOCK,
  2735  	"SW_LINEIN_INSERT":        SW_LINEIN_INSERT,
  2736  	"SW_MUTE_DEVICE":          SW_MUTE_DEVICE,
  2737  	"SW_PEN_INSERTED":         SW_PEN_INSERTED,
  2738  	"SW_MACHINE_COVER":        SW_MACHINE_COVER,
  2739  	"SW_MAX":                  SW_MAX,
  2740  	"SW_CNT":                  SW_CNT,
  2741  }
  2742  
  2743  var MSCFromString = map[string]EvCode{
  2744  	"MSC_SERIAL":    MSC_SERIAL,
  2745  	"MSC_PULSELED":  MSC_PULSELED,
  2746  	"MSC_GESTURE":   MSC_GESTURE,
  2747  	"MSC_RAW":       MSC_RAW,
  2748  	"MSC_SCAN":      MSC_SCAN,
  2749  	"MSC_TIMESTAMP": MSC_TIMESTAMP,
  2750  	"MSC_MAX":       MSC_MAX,
  2751  	"MSC_CNT":       MSC_CNT,
  2752  }
  2753  
  2754  var LEDFromString = map[string]EvCode{
  2755  	"LED_NUML":     LED_NUML,
  2756  	"LED_CAPSL":    LED_CAPSL,
  2757  	"LED_SCROLLL":  LED_SCROLLL,
  2758  	"LED_COMPOSE":  LED_COMPOSE,
  2759  	"LED_KANA":     LED_KANA,
  2760  	"LED_SLEEP":    LED_SLEEP,
  2761  	"LED_SUSPEND":  LED_SUSPEND,
  2762  	"LED_MUTE":     LED_MUTE,
  2763  	"LED_MISC":     LED_MISC,
  2764  	"LED_MAIL":     LED_MAIL,
  2765  	"LED_CHARGING": LED_CHARGING,
  2766  	"LED_MAX":      LED_MAX,
  2767  	"LED_CNT":      LED_CNT,
  2768  }
  2769  
  2770  var REPFromString = map[string]EvCode{
  2771  	"REP_DELAY":  REP_DELAY,
  2772  	"REP_PERIOD": REP_PERIOD,
  2773  	"REP_MAX":    REP_MAX,
  2774  	"REP_CNT":    REP_CNT,
  2775  }
  2776  
  2777  var SNDFromString = map[string]EvCode{
  2778  	"SND_CLICK": SND_CLICK,
  2779  	"SND_BELL":  SND_BELL,
  2780  	"SND_TONE":  SND_TONE,
  2781  	"SND_MAX":   SND_MAX,
  2782  	"SND_CNT":   SND_CNT,
  2783  }
  2784  
  2785  var IDFromString = map[string]EvCode{
  2786  	"ID_BUS":     ID_BUS,
  2787  	"ID_VENDOR":  ID_VENDOR,
  2788  	"ID_PRODUCT": ID_PRODUCT,
  2789  	"ID_VERSION": ID_VERSION,
  2790  }
  2791  
  2792  var BUSFromString = map[string]EvCode{
  2793  	"BUS_PCI":       BUS_PCI,
  2794  	"BUS_ISAPNP":    BUS_ISAPNP,
  2795  	"BUS_USB":       BUS_USB,
  2796  	"BUS_HIL":       BUS_HIL,
  2797  	"BUS_BLUETOOTH": BUS_BLUETOOTH,
  2798  	"BUS_VIRTUAL":   BUS_VIRTUAL,
  2799  
  2800  	"BUS_ISA":         BUS_ISA,
  2801  	"BUS_I8042":       BUS_I8042,
  2802  	"BUS_XTKBD":       BUS_XTKBD,
  2803  	"BUS_RS232":       BUS_RS232,
  2804  	"BUS_GAMEPORT":    BUS_GAMEPORT,
  2805  	"BUS_PARPORT":     BUS_PARPORT,
  2806  	"BUS_AMIGA":       BUS_AMIGA,
  2807  	"BUS_ADB":         BUS_ADB,
  2808  	"BUS_I2C":         BUS_I2C,
  2809  	"BUS_HOST":        BUS_HOST,
  2810  	"BUS_GSC":         BUS_GSC,
  2811  	"BUS_ATARI":       BUS_ATARI,
  2812  	"BUS_SPI":         BUS_SPI,
  2813  	"BUS_RMI":         BUS_RMI,
  2814  	"BUS_CEC":         BUS_CEC,
  2815  	"BUS_INTEL_ISHTP": BUS_INTEL_ISHTP,
  2816  }
  2817  
  2818  var MTFromString = map[string]EvCode{
  2819  	"MT_TOOL_FINGER": MT_TOOL_FINGER,
  2820  	"MT_TOOL_PEN":    MT_TOOL_PEN,
  2821  	"MT_TOOL_PALM":   MT_TOOL_PALM,
  2822  	"MT_TOOL_DIAL":   MT_TOOL_DIAL,
  2823  	"MT_TOOL_MAX":    MT_TOOL_MAX,
  2824  }
  2825  
  2826  var FFFromString = map[string]EvCode{
  2827  	"FF_STATUS_STOPPED": FF_STATUS_STOPPED,
  2828  	"FF_STATUS_PLAYING": FF_STATUS_PLAYING,
  2829  	"FF_STATUS_MAX":     FF_STATUS_MAX,
  2830  
  2831  	"FF_RUMBLE":   FF_RUMBLE,
  2832  	"FF_PERIODIC": FF_PERIODIC,
  2833  	"FF_CONSTANT": FF_CONSTANT,
  2834  	"FF_SPRING":   FF_SPRING,
  2835  	"FF_FRICTION": FF_FRICTION,
  2836  	"FF_DAMPER":   FF_DAMPER,
  2837  	"FF_INERTIA":  FF_INERTIA,
  2838  	"FF_RAMP":     FF_RAMP,
  2839  
  2840  	"FF_EFFECT_MIN": FF_EFFECT_MIN,
  2841  	"FF_EFFECT_MAX": FF_EFFECT_MAX,
  2842  
  2843  	"FF_SQUARE":   FF_SQUARE,
  2844  	"FF_TRIANGLE": FF_TRIANGLE,
  2845  	"FF_SINE":     FF_SINE,
  2846  	"FF_SAW_UP":   FF_SAW_UP,
  2847  	"FF_SAW_DOWN": FF_SAW_DOWN,
  2848  	"FF_CUSTOM":   FF_CUSTOM,
  2849  
  2850  	"FF_WAVEFORM_MIN": FF_WAVEFORM_MIN,
  2851  	"FF_WAVEFORM_MAX": FF_WAVEFORM_MAX,
  2852  
  2853  	"FF_GAIN":       FF_GAIN,
  2854  	"FF_AUTOCENTER": FF_AUTOCENTER,
  2855  
  2856  	"FF_MAX_EFFECTS": FF_MAX_EFFECTS,
  2857  
  2858  	"FF_MAX": FF_MAX,
  2859  	"FF_CNT": FF_CNT,
  2860  }
  2861  
  2862  //
  2863  // Type Names (informative debug use only)
  2864  //
  2865  
  2866  var INPUTNames = map[EvProp]string{
  2867  	INPUT_PROP_POINTER:        "INPUT_PROP_POINTER",
  2868  	INPUT_PROP_DIRECT:         "INPUT_PROP_DIRECT",
  2869  	INPUT_PROP_BUTTONPAD:      "INPUT_PROP_BUTTONPAD",
  2870  	INPUT_PROP_SEMI_MT:        "INPUT_PROP_SEMI_MT",
  2871  	INPUT_PROP_TOPBUTTONPAD:   "INPUT_PROP_TOPBUTTONPAD",
  2872  	INPUT_PROP_POINTING_STICK: "INPUT_PROP_POINTING_STICK",
  2873  	INPUT_PROP_ACCELEROMETER:  "INPUT_PROP_ACCELEROMETER",
  2874  
  2875  	INPUT_PROP_MAX: "INPUT_PROP_MAX",
  2876  	INPUT_PROP_CNT: "INPUT_PROP_CNT",
  2877  }
  2878  
  2879  var EVNames = map[EvType]string{
  2880  	EV_SYN:       "EV_SYN",
  2881  	EV_KEY:       "EV_KEY",
  2882  	EV_REL:       "EV_REL",
  2883  	EV_ABS:       "EV_ABS",
  2884  	EV_MSC:       "EV_MSC",
  2885  	EV_SW:        "EV_SW",
  2886  	EV_LED:       "EV_LED",
  2887  	EV_SND:       "EV_SND",
  2888  	EV_REP:       "EV_REP",
  2889  	EV_FF:        "EV_FF",
  2890  	EV_PWR:       "EV_PWR",
  2891  	EV_FF_STATUS: "EV_FF_STATUS",
  2892  	EV_MAX:       "EV_MAX",
  2893  	EV_CNT:       "EV_CNT",
  2894  }
  2895  
  2896  var SYNNames = map[EvCode]string{
  2897  	SYN_REPORT:    "SYN_REPORT",
  2898  	SYN_CONFIG:    "SYN_CONFIG",
  2899  	SYN_MT_REPORT: "SYN_MT_REPORT",
  2900  	SYN_DROPPED:   "SYN_DROPPED",
  2901  	SYN_MAX:       "SYN_MAX",
  2902  	SYN_CNT:       "SYN_CNT",
  2903  }
  2904  
  2905  var KEYNames = map[EvCode]string{
  2906  	KEY_RESERVED:   "KEY_RESERVED",
  2907  	KEY_ESC:        "KEY_ESC",
  2908  	KEY_1:          "KEY_1",
  2909  	KEY_2:          "KEY_2",
  2910  	KEY_3:          "KEY_3",
  2911  	KEY_4:          "KEY_4",
  2912  	KEY_5:          "KEY_5",
  2913  	KEY_6:          "KEY_6",
  2914  	KEY_7:          "KEY_7",
  2915  	KEY_8:          "KEY_8",
  2916  	KEY_9:          "KEY_9",
  2917  	KEY_0:          "KEY_0",
  2918  	KEY_MINUS:      "KEY_MINUS",
  2919  	KEY_EQUAL:      "KEY_EQUAL",
  2920  	KEY_BACKSPACE:  "KEY_BACKSPACE",
  2921  	KEY_TAB:        "KEY_TAB",
  2922  	KEY_Q:          "KEY_Q",
  2923  	KEY_W:          "KEY_W",
  2924  	KEY_E:          "KEY_E",
  2925  	KEY_R:          "KEY_R",
  2926  	KEY_T:          "KEY_T",
  2927  	KEY_Y:          "KEY_Y",
  2928  	KEY_U:          "KEY_U",
  2929  	KEY_I:          "KEY_I",
  2930  	KEY_O:          "KEY_O",
  2931  	KEY_P:          "KEY_P",
  2932  	KEY_LEFTBRACE:  "KEY_LEFTBRACE",
  2933  	KEY_RIGHTBRACE: "KEY_RIGHTBRACE",
  2934  	KEY_ENTER:      "KEY_ENTER",
  2935  	KEY_LEFTCTRL:   "KEY_LEFTCTRL",
  2936  	KEY_A:          "KEY_A",
  2937  	KEY_S:          "KEY_S",
  2938  	KEY_D:          "KEY_D",
  2939  	KEY_F:          "KEY_F",
  2940  	KEY_G:          "KEY_G",
  2941  	KEY_H:          "KEY_H",
  2942  	KEY_J:          "KEY_J",
  2943  	KEY_K:          "KEY_K",
  2944  	KEY_L:          "KEY_L",
  2945  	KEY_SEMICOLON:  "KEY_SEMICOLON",
  2946  	KEY_APOSTROPHE: "KEY_APOSTROPHE",
  2947  	KEY_GRAVE:      "KEY_GRAVE",
  2948  	KEY_LEFTSHIFT:  "KEY_LEFTSHIFT",
  2949  	KEY_BACKSLASH:  "KEY_BACKSLASH",
  2950  	KEY_Z:          "KEY_Z",
  2951  	KEY_X:          "KEY_X",
  2952  	KEY_C:          "KEY_C",
  2953  	KEY_V:          "KEY_V",
  2954  	KEY_B:          "KEY_B",
  2955  	KEY_N:          "KEY_N",
  2956  	KEY_M:          "KEY_M",
  2957  	KEY_COMMA:      "KEY_COMMA",
  2958  	KEY_DOT:        "KEY_DOT",
  2959  	KEY_SLASH:      "KEY_SLASH",
  2960  	KEY_RIGHTSHIFT: "KEY_RIGHTSHIFT",
  2961  	KEY_KPASTERISK: "KEY_KPASTERISK",
  2962  	KEY_LEFTALT:    "KEY_LEFTALT",
  2963  	KEY_SPACE:      "KEY_SPACE",
  2964  	KEY_CAPSLOCK:   "KEY_CAPSLOCK",
  2965  	KEY_F1:         "KEY_F1",
  2966  	KEY_F2:         "KEY_F2",
  2967  	KEY_F3:         "KEY_F3",
  2968  	KEY_F4:         "KEY_F4",
  2969  	KEY_F5:         "KEY_F5",
  2970  	KEY_F6:         "KEY_F6",
  2971  	KEY_F7:         "KEY_F7",
  2972  	KEY_F8:         "KEY_F8",
  2973  	KEY_F9:         "KEY_F9",
  2974  	KEY_F10:        "KEY_F10",
  2975  	KEY_NUMLOCK:    "KEY_NUMLOCK",
  2976  	KEY_SCROLLLOCK: "KEY_SCROLLLOCK",
  2977  	KEY_KP7:        "KEY_KP7",
  2978  	KEY_KP8:        "KEY_KP8",
  2979  	KEY_KP9:        "KEY_KP9",
  2980  	KEY_KPMINUS:    "KEY_KPMINUS",
  2981  	KEY_KP4:        "KEY_KP4",
  2982  	KEY_KP5:        "KEY_KP5",
  2983  	KEY_KP6:        "KEY_KP6",
  2984  	KEY_KPPLUS:     "KEY_KPPLUS",
  2985  	KEY_KP1:        "KEY_KP1",
  2986  	KEY_KP2:        "KEY_KP2",
  2987  	KEY_KP3:        "KEY_KP3",
  2988  	KEY_KP0:        "KEY_KP0",
  2989  	KEY_KPDOT:      "KEY_KPDOT",
  2990  
  2991  	KEY_ZENKAKUHANKAKU:   "KEY_ZENKAKUHANKAKU",
  2992  	KEY_102ND:            "KEY_102ND",
  2993  	KEY_F11:              "KEY_F11",
  2994  	KEY_F12:              "KEY_F12",
  2995  	KEY_RO:               "KEY_RO",
  2996  	KEY_KATAKANA:         "KEY_KATAKANA",
  2997  	KEY_HIRAGANA:         "KEY_HIRAGANA",
  2998  	KEY_HENKAN:           "KEY_HENKAN",
  2999  	KEY_KATAKANAHIRAGANA: "KEY_KATAKANAHIRAGANA",
  3000  	KEY_MUHENKAN:         "KEY_MUHENKAN",
  3001  	KEY_KPJPCOMMA:        "KEY_KPJPCOMMA",
  3002  	KEY_KPENTER:          "KEY_KPENTER",
  3003  	KEY_RIGHTCTRL:        "KEY_RIGHTCTRL",
  3004  	KEY_KPSLASH:          "KEY_KPSLASH",
  3005  	KEY_SYSRQ:            "KEY_SYSRQ",
  3006  	KEY_RIGHTALT:         "KEY_RIGHTALT",
  3007  	KEY_LINEFEED:         "KEY_LINEFEED",
  3008  	KEY_HOME:             "KEY_HOME",
  3009  	KEY_UP:               "KEY_UP",
  3010  	KEY_PAGEUP:           "KEY_PAGEUP",
  3011  	KEY_LEFT:             "KEY_LEFT",
  3012  	KEY_RIGHT:            "KEY_RIGHT",
  3013  	KEY_END:              "KEY_END",
  3014  	KEY_DOWN:             "KEY_DOWN",
  3015  	KEY_PAGEDOWN:         "KEY_PAGEDOWN",
  3016  	KEY_INSERT:           "KEY_INSERT",
  3017  	KEY_DELETE:           "KEY_DELETE",
  3018  	KEY_MACRO:            "KEY_MACRO",
  3019  	KEY_MUTE:             "KEY_MUTE/KEY_MIN_INTERESTING",
  3020  	KEY_VOLUMEDOWN:       "KEY_VOLUMEDOWN",
  3021  	KEY_VOLUMEUP:         "KEY_VOLUMEUP",
  3022  	KEY_POWER:            "KEY_POWER",
  3023  	KEY_KPEQUAL:          "KEY_KPEQUAL",
  3024  	KEY_KPPLUSMINUS:      "KEY_KPPLUSMINUS",
  3025  	KEY_PAUSE:            "KEY_PAUSE",
  3026  	KEY_SCALE:            "KEY_SCALE",
  3027  
  3028  	KEY_KPCOMMA:   "KEY_KPCOMMA",
  3029  	KEY_HANGEUL:   "KEY_HANGEUL/KEY_HANGUEL",
  3030  	KEY_HANJA:     "KEY_HANJA",
  3031  	KEY_YEN:       "KEY_YEN",
  3032  	KEY_LEFTMETA:  "KEY_LEFTMETA",
  3033  	KEY_RIGHTMETA: "KEY_RIGHTMETA",
  3034  	KEY_COMPOSE:   "KEY_COMPOSE",
  3035  
  3036  	KEY_STOP:           "KEY_STOP",
  3037  	KEY_AGAIN:          "KEY_AGAIN",
  3038  	KEY_PROPS:          "KEY_PROPS",
  3039  	KEY_UNDO:           "KEY_UNDO",
  3040  	KEY_FRONT:          "KEY_FRONT",
  3041  	KEY_COPY:           "KEY_COPY",
  3042  	KEY_OPEN:           "KEY_OPEN",
  3043  	KEY_PASTE:          "KEY_PASTE",
  3044  	KEY_FIND:           "KEY_FIND",
  3045  	KEY_CUT:            "KEY_CUT",
  3046  	KEY_HELP:           "KEY_HELP",
  3047  	KEY_MENU:           "KEY_MENU",
  3048  	KEY_CALC:           "KEY_CALC",
  3049  	KEY_SETUP:          "KEY_SETUP",
  3050  	KEY_SLEEP:          "KEY_SLEEP",
  3051  	KEY_WAKEUP:         "KEY_WAKEUP",
  3052  	KEY_FILE:           "KEY_FILE",
  3053  	KEY_SENDFILE:       "KEY_SENDFILE",
  3054  	KEY_DELETEFILE:     "KEY_DELETEFILE",
  3055  	KEY_XFER:           "KEY_XFER",
  3056  	KEY_PROG1:          "KEY_PROG1",
  3057  	KEY_PROG2:          "KEY_PROG2",
  3058  	KEY_WWW:            "KEY_WWW",
  3059  	KEY_MSDOS:          "KEY_MSDOS",
  3060  	KEY_COFFEE:         "KEY_COFFEE/KEY_SCREENLOCK",
  3061  	KEY_ROTATE_DISPLAY: "KEY_ROTATE_DISPLAY/KEY_DIRECTION",
  3062  	KEY_CYCLEWINDOWS:   "KEY_CYCLEWINDOWS",
  3063  	KEY_MAIL:           "KEY_MAIL",
  3064  	KEY_BOOKMARKS:      "KEY_BOOKMARKS",
  3065  	KEY_COMPUTER:       "KEY_COMPUTER",
  3066  	KEY_BACK:           "KEY_BACK",
  3067  	KEY_FORWARD:        "KEY_FORWARD",
  3068  	KEY_CLOSECD:        "KEY_CLOSECD",
  3069  	KEY_EJECTCD:        "KEY_EJECTCD",
  3070  	KEY_EJECTCLOSECD:   "KEY_EJECTCLOSECD",
  3071  	KEY_NEXTSONG:       "KEY_NEXTSONG",
  3072  	KEY_PLAYPAUSE:      "KEY_PLAYPAUSE",
  3073  	KEY_PREVIOUSSONG:   "KEY_PREVIOUSSONG",
  3074  	KEY_STOPCD:         "KEY_STOPCD",
  3075  	KEY_RECORD:         "KEY_RECORD",
  3076  	KEY_REWIND:         "KEY_REWIND",
  3077  	KEY_PHONE:          "KEY_PHONE",
  3078  	KEY_ISO:            "KEY_ISO",
  3079  	KEY_CONFIG:         "KEY_CONFIG",
  3080  	KEY_HOMEPAGE:       "KEY_HOMEPAGE",
  3081  	KEY_REFRESH:        "KEY_REFRESH",
  3082  	KEY_EXIT:           "KEY_EXIT",
  3083  	KEY_MOVE:           "KEY_MOVE",
  3084  	KEY_EDIT:           "KEY_EDIT",
  3085  	KEY_SCROLLUP:       "KEY_SCROLLUP",
  3086  	KEY_SCROLLDOWN:     "KEY_SCROLLDOWN",
  3087  	KEY_KPLEFTPAREN:    "KEY_KPLEFTPAREN",
  3088  	KEY_KPRIGHTPAREN:   "KEY_KPRIGHTPAREN",
  3089  	KEY_NEW:            "KEY_NEW",
  3090  	KEY_REDO:           "KEY_REDO",
  3091  
  3092  	KEY_F13: "KEY_F13",
  3093  	KEY_F14: "KEY_F14",
  3094  	KEY_F15: "KEY_F15",
  3095  	KEY_F16: "KEY_F16",
  3096  	KEY_F17: "KEY_F17",
  3097  	KEY_F18: "KEY_F18",
  3098  	KEY_F19: "KEY_F19",
  3099  	KEY_F20: "KEY_F20",
  3100  	KEY_F21: "KEY_F21",
  3101  	KEY_F22: "KEY_F22",
  3102  	KEY_F23: "KEY_F23",
  3103  	KEY_F24: "KEY_F24",
  3104  
  3105  	KEY_PLAYCD:           "KEY_PLAYCD",
  3106  	KEY_PAUSECD:          "KEY_PAUSECD",
  3107  	KEY_PROG3:            "KEY_PROG3",
  3108  	KEY_PROG4:            "KEY_PROG4",
  3109  	KEY_ALL_APPLICATIONS: "KEY_ALL_APPLICATIONS/KEY_DASHBOARD",
  3110  	KEY_SUSPEND:          "KEY_SUSPEND",
  3111  	KEY_CLOSE:            "KEY_CLOSE",
  3112  	KEY_PLAY:             "KEY_PLAY",
  3113  	KEY_FASTFORWARD:      "KEY_FASTFORWARD",
  3114  	KEY_BASSBOOST:        "KEY_BASSBOOST",
  3115  	KEY_PRINT:            "KEY_PRINT",
  3116  	KEY_HP:               "KEY_HP",
  3117  	KEY_CAMERA:           "KEY_CAMERA",
  3118  	KEY_SOUND:            "KEY_SOUND",
  3119  	KEY_QUESTION:         "KEY_QUESTION",
  3120  	KEY_EMAIL:            "KEY_EMAIL",
  3121  	KEY_CHAT:             "KEY_CHAT",
  3122  	KEY_SEARCH:           "KEY_SEARCH",
  3123  	KEY_CONNECT:          "KEY_CONNECT",
  3124  	KEY_FINANCE:          "KEY_FINANCE",
  3125  	KEY_SPORT:            "KEY_SPORT",
  3126  	KEY_SHOP:             "KEY_SHOP",
  3127  	KEY_ALTERASE:         "KEY_ALTERASE",
  3128  	KEY_CANCEL:           "KEY_CANCEL",
  3129  	KEY_BRIGHTNESSDOWN:   "KEY_BRIGHTNESSDOWN",
  3130  	KEY_BRIGHTNESSUP:     "KEY_BRIGHTNESSUP",
  3131  	KEY_MEDIA:            "KEY_MEDIA",
  3132  
  3133  	KEY_SWITCHVIDEOMODE: "KEY_SWITCHVIDEOMODE",
  3134  	KEY_KBDILLUMTOGGLE:  "KEY_KBDILLUMTOGGLE",
  3135  	KEY_KBDILLUMDOWN:    "KEY_KBDILLUMDOWN",
  3136  	KEY_KBDILLUMUP:      "KEY_KBDILLUMUP",
  3137  
  3138  	KEY_SEND:        "KEY_SEND",
  3139  	KEY_REPLY:       "KEY_REPLY",
  3140  	KEY_FORWARDMAIL: "KEY_FORWARDMAIL",
  3141  	KEY_SAVE:        "KEY_SAVE",
  3142  	KEY_DOCUMENTS:   "KEY_DOCUMENTS",
  3143  
  3144  	KEY_BATTERY: "KEY_BATTERY",
  3145  
  3146  	KEY_BLUETOOTH: "KEY_BLUETOOTH",
  3147  	KEY_WLAN:      "KEY_WLAN",
  3148  	KEY_UWB:       "KEY_UWB",
  3149  
  3150  	KEY_UNKNOWN: "KEY_UNKNOWN",
  3151  
  3152  	KEY_VIDEO_NEXT:       "KEY_VIDEO_NEXT",
  3153  	KEY_VIDEO_PREV:       "KEY_VIDEO_PREV",
  3154  	KEY_BRIGHTNESS_CYCLE: "KEY_BRIGHTNESS_CYCLE",
  3155  	KEY_BRIGHTNESS_AUTO:  "KEY_BRIGHTNESS_AUTO/KEY_BRIGHTNESS_ZERO",
  3156  	KEY_DISPLAY_OFF:      "KEY_DISPLAY_OFF",
  3157  
  3158  	KEY_WWAN:   "KEY_WWAN/KEY_WIMAX",
  3159  	KEY_RFKILL: "KEY_RFKILL",
  3160  
  3161  	KEY_MICMUTE: "KEY_MICMUTE",
  3162  
  3163  	BTN_MISC: "BTN_MISC/BTN_0",
  3164  	BTN_1:    "BTN_1",
  3165  	BTN_2:    "BTN_2",
  3166  	BTN_3:    "BTN_3",
  3167  	BTN_4:    "BTN_4",
  3168  	BTN_5:    "BTN_5",
  3169  	BTN_6:    "BTN_6",
  3170  	BTN_7:    "BTN_7",
  3171  	BTN_8:    "BTN_8",
  3172  	BTN_9:    "BTN_9",
  3173  
  3174  	BTN_MOUSE:   "BTN_MOUSE/BTN_LEFT",
  3175  	BTN_RIGHT:   "BTN_RIGHT",
  3176  	BTN_MIDDLE:  "BTN_MIDDLE",
  3177  	BTN_SIDE:    "BTN_SIDE",
  3178  	BTN_EXTRA:   "BTN_EXTRA",
  3179  	BTN_FORWARD: "BTN_FORWARD",
  3180  	BTN_BACK:    "BTN_BACK",
  3181  	BTN_TASK:    "BTN_TASK",
  3182  
  3183  	BTN_JOYSTICK: "BTN_JOYSTICK/BTN_TRIGGER",
  3184  	BTN_THUMB:    "BTN_THUMB",
  3185  	BTN_THUMB2:   "BTN_THUMB2",
  3186  	BTN_TOP:      "BTN_TOP",
  3187  	BTN_TOP2:     "BTN_TOP2",
  3188  	BTN_PINKIE:   "BTN_PINKIE",
  3189  	BTN_BASE:     "BTN_BASE",
  3190  	BTN_BASE2:    "BTN_BASE2",
  3191  	BTN_BASE3:    "BTN_BASE3",
  3192  	BTN_BASE4:    "BTN_BASE4",
  3193  	BTN_BASE5:    "BTN_BASE5",
  3194  	BTN_BASE6:    "BTN_BASE6",
  3195  	BTN_DEAD:     "BTN_DEAD",
  3196  
  3197  	BTN_GAMEPAD: "BTN_GAMEPAD/BTN_SOUTH/BTN_A",
  3198  	BTN_EAST:    "BTN_EAST/BTN_B",
  3199  	BTN_C:       "BTN_C",
  3200  	BTN_NORTH:   "BTN_NORTH/BTN_X",
  3201  	BTN_WEST:    "BTN_WEST/BTN_Y",
  3202  	BTN_Z:       "BTN_Z",
  3203  	BTN_TL:      "BTN_TL",
  3204  	BTN_TR:      "BTN_TR",
  3205  	BTN_TL2:     "BTN_TL2",
  3206  	BTN_TR2:     "BTN_TR2",
  3207  	BTN_SELECT:  "BTN_SELECT",
  3208  	BTN_START:   "BTN_START",
  3209  	BTN_MODE:    "BTN_MODE",
  3210  	BTN_THUMBL:  "BTN_THUMBL",
  3211  	BTN_THUMBR:  "BTN_THUMBR",
  3212  
  3213  	BTN_DIGI:           "BTN_DIGI/BTN_TOOL_PEN",
  3214  	BTN_TOOL_RUBBER:    "BTN_TOOL_RUBBER",
  3215  	BTN_TOOL_BRUSH:     "BTN_TOOL_BRUSH",
  3216  	BTN_TOOL_PENCIL:    "BTN_TOOL_PENCIL",
  3217  	BTN_TOOL_AIRBRUSH:  "BTN_TOOL_AIRBRUSH",
  3218  	BTN_TOOL_FINGER:    "BTN_TOOL_FINGER",
  3219  	BTN_TOOL_MOUSE:     "BTN_TOOL_MOUSE",
  3220  	BTN_TOOL_LENS:      "BTN_TOOL_LENS",
  3221  	BTN_TOOL_QUINTTAP:  "BTN_TOOL_QUINTTAP",
  3222  	BTN_STYLUS3:        "BTN_STYLUS3",
  3223  	BTN_TOUCH:          "BTN_TOUCH",
  3224  	BTN_STYLUS:         "BTN_STYLUS",
  3225  	BTN_STYLUS2:        "BTN_STYLUS2",
  3226  	BTN_TOOL_DOUBLETAP: "BTN_TOOL_DOUBLETAP",
  3227  	BTN_TOOL_TRIPLETAP: "BTN_TOOL_TRIPLETAP",
  3228  	BTN_TOOL_QUADTAP:   "BTN_TOOL_QUADTAP",
  3229  
  3230  	BTN_WHEEL:   "BTN_WHEEL/BTN_GEAR_DOWN",
  3231  	BTN_GEAR_UP: "BTN_GEAR_UP",
  3232  
  3233  	KEY_OK:             "KEY_OK",
  3234  	KEY_SELECT:         "KEY_SELECT",
  3235  	KEY_GOTO:           "KEY_GOTO",
  3236  	KEY_CLEAR:          "KEY_CLEAR",
  3237  	KEY_POWER2:         "KEY_POWER2",
  3238  	KEY_OPTION:         "KEY_OPTION",
  3239  	KEY_INFO:           "KEY_INFO",
  3240  	KEY_TIME:           "KEY_TIME",
  3241  	KEY_VENDOR:         "KEY_VENDOR",
  3242  	KEY_ARCHIVE:        "KEY_ARCHIVE",
  3243  	KEY_PROGRAM:        "KEY_PROGRAM",
  3244  	KEY_CHANNEL:        "KEY_CHANNEL",
  3245  	KEY_FAVORITES:      "KEY_FAVORITES",
  3246  	KEY_EPG:            "KEY_EPG",
  3247  	KEY_PVR:            "KEY_PVR",
  3248  	KEY_MHP:            "KEY_MHP",
  3249  	KEY_LANGUAGE:       "KEY_LANGUAGE",
  3250  	KEY_TITLE:          "KEY_TITLE",
  3251  	KEY_SUBTITLE:       "KEY_SUBTITLE",
  3252  	KEY_ANGLE:          "KEY_ANGLE",
  3253  	KEY_FULL_SCREEN:    "KEY_FULL_SCREEN/KEY_ZOOM",
  3254  	KEY_MODE:           "KEY_MODE",
  3255  	KEY_KEYBOARD:       "KEY_KEYBOARD",
  3256  	KEY_ASPECT_RATIO:   "KEY_ASPECT_RATIO/KEY_SCREEN",
  3257  	KEY_PC:             "KEY_PC",
  3258  	KEY_TV:             "KEY_TV",
  3259  	KEY_TV2:            "KEY_TV2",
  3260  	KEY_VCR:            "KEY_VCR",
  3261  	KEY_VCR2:           "KEY_VCR2",
  3262  	KEY_SAT:            "KEY_SAT",
  3263  	KEY_SAT2:           "KEY_SAT2",
  3264  	KEY_CD:             "KEY_CD",
  3265  	KEY_TAPE:           "KEY_TAPE",
  3266  	KEY_RADIO:          "KEY_RADIO",
  3267  	KEY_TUNER:          "KEY_TUNER",
  3268  	KEY_PLAYER:         "KEY_PLAYER",
  3269  	KEY_TEXT:           "KEY_TEXT",
  3270  	KEY_DVD:            "KEY_DVD",
  3271  	KEY_AUX:            "KEY_AUX",
  3272  	KEY_MP3:            "KEY_MP3",
  3273  	KEY_AUDIO:          "KEY_AUDIO",
  3274  	KEY_VIDEO:          "KEY_VIDEO",
  3275  	KEY_DIRECTORY:      "KEY_DIRECTORY",
  3276  	KEY_LIST:           "KEY_LIST",
  3277  	KEY_MEMO:           "KEY_MEMO",
  3278  	KEY_CALENDAR:       "KEY_CALENDAR",
  3279  	KEY_RED:            "KEY_RED",
  3280  	KEY_GREEN:          "KEY_GREEN",
  3281  	KEY_YELLOW:         "KEY_YELLOW",
  3282  	KEY_BLUE:           "KEY_BLUE",
  3283  	KEY_CHANNELUP:      "KEY_CHANNELUP",
  3284  	KEY_CHANNELDOWN:    "KEY_CHANNELDOWN",
  3285  	KEY_FIRST:          "KEY_FIRST",
  3286  	KEY_LAST:           "KEY_LAST",
  3287  	KEY_AB:             "KEY_AB",
  3288  	KEY_NEXT:           "KEY_NEXT",
  3289  	KEY_RESTART:        "KEY_RESTART",
  3290  	KEY_SLOW:           "KEY_SLOW",
  3291  	KEY_SHUFFLE:        "KEY_SHUFFLE",
  3292  	KEY_BREAK:          "KEY_BREAK",
  3293  	KEY_PREVIOUS:       "KEY_PREVIOUS",
  3294  	KEY_DIGITS:         "KEY_DIGITS",
  3295  	KEY_TEEN:           "KEY_TEEN",
  3296  	KEY_TWEN:           "KEY_TWEN",
  3297  	KEY_VIDEOPHONE:     "KEY_VIDEOPHONE",
  3298  	KEY_GAMES:          "KEY_GAMES",
  3299  	KEY_ZOOMIN:         "KEY_ZOOMIN",
  3300  	KEY_ZOOMOUT:        "KEY_ZOOMOUT",
  3301  	KEY_ZOOMRESET:      "KEY_ZOOMRESET",
  3302  	KEY_WORDPROCESSOR:  "KEY_WORDPROCESSOR",
  3303  	KEY_EDITOR:         "KEY_EDITOR",
  3304  	KEY_SPREADSHEET:    "KEY_SPREADSHEET",
  3305  	KEY_GRAPHICSEDITOR: "KEY_GRAPHICSEDITOR",
  3306  	KEY_PRESENTATION:   "KEY_PRESENTATION",
  3307  	KEY_DATABASE:       "KEY_DATABASE",
  3308  	KEY_NEWS:           "KEY_NEWS",
  3309  	KEY_VOICEMAIL:      "KEY_VOICEMAIL",
  3310  	KEY_ADDRESSBOOK:    "KEY_ADDRESSBOOK",
  3311  	KEY_MESSENGER:      "KEY_MESSENGER",
  3312  	KEY_DISPLAYTOGGLE:  "KEY_DISPLAYTOGGLE/KEY_BRIGHTNESS_TOGGLE",
  3313  	KEY_SPELLCHECK:     "KEY_SPELLCHECK",
  3314  	KEY_LOGOFF:         "KEY_LOGOFF",
  3315  
  3316  	KEY_DOLLAR: "KEY_DOLLAR",
  3317  	KEY_EURO:   "KEY_EURO",
  3318  
  3319  	KEY_FRAMEBACK:           "KEY_FRAMEBACK",
  3320  	KEY_FRAMEFORWARD:        "KEY_FRAMEFORWARD",
  3321  	KEY_CONTEXT_MENU:        "KEY_CONTEXT_MENU",
  3322  	KEY_MEDIA_REPEAT:        "KEY_MEDIA_REPEAT",
  3323  	KEY_10CHANNELSUP:        "KEY_10CHANNELSUP",
  3324  	KEY_10CHANNELSDOWN:      "KEY_10CHANNELSDOWN",
  3325  	KEY_IMAGES:              "KEY_IMAGES",
  3326  	KEY_NOTIFICATION_CENTER: "KEY_NOTIFICATION_CENTER",
  3327  	KEY_PICKUP_PHONE:        "KEY_PICKUP_PHONE",
  3328  	KEY_HANGUP_PHONE:        "KEY_HANGUP_PHONE",
  3329  
  3330  	KEY_DEL_EOL:  "KEY_DEL_EOL",
  3331  	KEY_DEL_EOS:  "KEY_DEL_EOS",
  3332  	KEY_INS_LINE: "KEY_INS_LINE",
  3333  	KEY_DEL_LINE: "KEY_DEL_LINE",
  3334  
  3335  	KEY_FN:             "KEY_FN",
  3336  	KEY_FN_ESC:         "KEY_FN_ESC",
  3337  	KEY_FN_F1:          "KEY_FN_F1",
  3338  	KEY_FN_F2:          "KEY_FN_F2",
  3339  	KEY_FN_F3:          "KEY_FN_F3",
  3340  	KEY_FN_F4:          "KEY_FN_F4",
  3341  	KEY_FN_F5:          "KEY_FN_F5",
  3342  	KEY_FN_F6:          "KEY_FN_F6",
  3343  	KEY_FN_F7:          "KEY_FN_F7",
  3344  	KEY_FN_F8:          "KEY_FN_F8",
  3345  	KEY_FN_F9:          "KEY_FN_F9",
  3346  	KEY_FN_F10:         "KEY_FN_F10",
  3347  	KEY_FN_F11:         "KEY_FN_F11",
  3348  	KEY_FN_F12:         "KEY_FN_F12",
  3349  	KEY_FN_1:           "KEY_FN_1",
  3350  	KEY_FN_2:           "KEY_FN_2",
  3351  	KEY_FN_D:           "KEY_FN_D",
  3352  	KEY_FN_E:           "KEY_FN_E",
  3353  	KEY_FN_F:           "KEY_FN_F",
  3354  	KEY_FN_S:           "KEY_FN_S",
  3355  	KEY_FN_B:           "KEY_FN_B",
  3356  	KEY_FN_RIGHT_SHIFT: "KEY_FN_RIGHT_SHIFT",
  3357  
  3358  	KEY_BRL_DOT1:  "KEY_BRL_DOT1",
  3359  	KEY_BRL_DOT2:  "KEY_BRL_DOT2",
  3360  	KEY_BRL_DOT3:  "KEY_BRL_DOT3",
  3361  	KEY_BRL_DOT4:  "KEY_BRL_DOT4",
  3362  	KEY_BRL_DOT5:  "KEY_BRL_DOT5",
  3363  	KEY_BRL_DOT6:  "KEY_BRL_DOT6",
  3364  	KEY_BRL_DOT7:  "KEY_BRL_DOT7",
  3365  	KEY_BRL_DOT8:  "KEY_BRL_DOT8",
  3366  	KEY_BRL_DOT9:  "KEY_BRL_DOT9",
  3367  	KEY_BRL_DOT10: "KEY_BRL_DOT10",
  3368  
  3369  	KEY_NUMERIC_0:     "KEY_NUMERIC_0",
  3370  	KEY_NUMERIC_1:     "KEY_NUMERIC_1",
  3371  	KEY_NUMERIC_2:     "KEY_NUMERIC_2",
  3372  	KEY_NUMERIC_3:     "KEY_NUMERIC_3",
  3373  	KEY_NUMERIC_4:     "KEY_NUMERIC_4",
  3374  	KEY_NUMERIC_5:     "KEY_NUMERIC_5",
  3375  	KEY_NUMERIC_6:     "KEY_NUMERIC_6",
  3376  	KEY_NUMERIC_7:     "KEY_NUMERIC_7",
  3377  	KEY_NUMERIC_8:     "KEY_NUMERIC_8",
  3378  	KEY_NUMERIC_9:     "KEY_NUMERIC_9",
  3379  	KEY_NUMERIC_STAR:  "KEY_NUMERIC_STAR",
  3380  	KEY_NUMERIC_POUND: "KEY_NUMERIC_POUND",
  3381  	KEY_NUMERIC_A:     "KEY_NUMERIC_A",
  3382  	KEY_NUMERIC_B:     "KEY_NUMERIC_B",
  3383  	KEY_NUMERIC_C:     "KEY_NUMERIC_C",
  3384  	KEY_NUMERIC_D:     "KEY_NUMERIC_D",
  3385  
  3386  	KEY_CAMERA_FOCUS: "KEY_CAMERA_FOCUS",
  3387  	KEY_WPS_BUTTON:   "KEY_WPS_BUTTON",
  3388  
  3389  	KEY_TOUCHPAD_TOGGLE: "KEY_TOUCHPAD_TOGGLE",
  3390  	KEY_TOUCHPAD_ON:     "KEY_TOUCHPAD_ON",
  3391  	KEY_TOUCHPAD_OFF:    "KEY_TOUCHPAD_OFF",
  3392  
  3393  	KEY_CAMERA_ZOOMIN:  "KEY_CAMERA_ZOOMIN",
  3394  	KEY_CAMERA_ZOOMOUT: "KEY_CAMERA_ZOOMOUT",
  3395  	KEY_CAMERA_UP:      "KEY_CAMERA_UP",
  3396  	KEY_CAMERA_DOWN:    "KEY_CAMERA_DOWN",
  3397  	KEY_CAMERA_LEFT:    "KEY_CAMERA_LEFT",
  3398  	KEY_CAMERA_RIGHT:   "KEY_CAMERA_RIGHT",
  3399  
  3400  	KEY_ATTENDANT_ON:     "KEY_ATTENDANT_ON",
  3401  	KEY_ATTENDANT_OFF:    "KEY_ATTENDANT_OFF",
  3402  	KEY_ATTENDANT_TOGGLE: "KEY_ATTENDANT_TOGGLE",
  3403  	KEY_LIGHTS_TOGGLE:    "KEY_LIGHTS_TOGGLE",
  3404  
  3405  	BTN_DPAD_UP:    "BTN_DPAD_UP",
  3406  	BTN_DPAD_DOWN:  "BTN_DPAD_DOWN",
  3407  	BTN_DPAD_LEFT:  "BTN_DPAD_LEFT",
  3408  	BTN_DPAD_RIGHT: "BTN_DPAD_RIGHT",
  3409  
  3410  	KEY_ALS_TOGGLE:         "KEY_ALS_TOGGLE",
  3411  	KEY_ROTATE_LOCK_TOGGLE: "KEY_ROTATE_LOCK_TOGGLE",
  3412  
  3413  	KEY_BUTTONCONFIG:    "KEY_BUTTONCONFIG",
  3414  	KEY_TASKMANAGER:     "KEY_TASKMANAGER",
  3415  	KEY_JOURNAL:         "KEY_JOURNAL",
  3416  	KEY_CONTROLPANEL:    "KEY_CONTROLPANEL",
  3417  	KEY_APPSELECT:       "KEY_APPSELECT",
  3418  	KEY_SCREENSAVER:     "KEY_SCREENSAVER",
  3419  	KEY_VOICECOMMAND:    "KEY_VOICECOMMAND",
  3420  	KEY_ASSISTANT:       "KEY_ASSISTANT",
  3421  	KEY_KBD_LAYOUT_NEXT: "KEY_KBD_LAYOUT_NEXT",
  3422  	KEY_EMOJI_PICKER:    "KEY_EMOJI_PICKER",
  3423  	KEY_DICTATE:         "KEY_DICTATE",
  3424  
  3425  	KEY_BRIGHTNESS_MIN: "KEY_BRIGHTNESS_MIN",
  3426  	KEY_BRIGHTNESS_MAX: "KEY_BRIGHTNESS_MAX",
  3427  
  3428  	KEY_KBDINPUTASSIST_PREV:      "KEY_KBDINPUTASSIST_PREV",
  3429  	KEY_KBDINPUTASSIST_NEXT:      "KEY_KBDINPUTASSIST_NEXT",
  3430  	KEY_KBDINPUTASSIST_PREVGROUP: "KEY_KBDINPUTASSIST_PREVGROUP",
  3431  	KEY_KBDINPUTASSIST_NEXTGROUP: "KEY_KBDINPUTASSIST_NEXTGROUP",
  3432  	KEY_KBDINPUTASSIST_ACCEPT:    "KEY_KBDINPUTASSIST_ACCEPT",
  3433  	KEY_KBDINPUTASSIST_CANCEL:    "KEY_KBDINPUTASSIST_CANCEL",
  3434  
  3435  	KEY_RIGHT_UP:   "KEY_RIGHT_UP",
  3436  	KEY_RIGHT_DOWN: "KEY_RIGHT_DOWN",
  3437  	KEY_LEFT_UP:    "KEY_LEFT_UP",
  3438  	KEY_LEFT_DOWN:  "KEY_LEFT_DOWN",
  3439  
  3440  	KEY_ROOT_MENU: "KEY_ROOT_MENU",
  3441  
  3442  	KEY_MEDIA_TOP_MENU: "KEY_MEDIA_TOP_MENU",
  3443  	KEY_NUMERIC_11:     "KEY_NUMERIC_11",
  3444  	KEY_NUMERIC_12:     "KEY_NUMERIC_12",
  3445  
  3446  	KEY_AUDIO_DESC:    "KEY_AUDIO_DESC",
  3447  	KEY_3D_MODE:       "KEY_3D_MODE",
  3448  	KEY_NEXT_FAVORITE: "KEY_NEXT_FAVORITE",
  3449  	KEY_STOP_RECORD:   "KEY_STOP_RECORD",
  3450  	KEY_PAUSE_RECORD:  "KEY_PAUSE_RECORD",
  3451  	KEY_VOD:           "KEY_VOD",
  3452  	KEY_UNMUTE:        "KEY_UNMUTE",
  3453  	KEY_FASTREVERSE:   "KEY_FASTREVERSE",
  3454  	KEY_SLOWREVERSE:   "KEY_SLOWREVERSE",
  3455  
  3456  	KEY_DATA:              "KEY_DATA",
  3457  	KEY_ONSCREEN_KEYBOARD: "KEY_ONSCREEN_KEYBOARD",
  3458  
  3459  	KEY_PRIVACY_SCREEN_TOGGLE: "KEY_PRIVACY_SCREEN_TOGGLE",
  3460  
  3461  	KEY_SELECTIVE_SCREENSHOT: "KEY_SELECTIVE_SCREENSHOT",
  3462  
  3463  	KEY_MACRO1:  "KEY_MACRO1",
  3464  	KEY_MACRO2:  "KEY_MACRO2",
  3465  	KEY_MACRO3:  "KEY_MACRO3",
  3466  	KEY_MACRO4:  "KEY_MACRO4",
  3467  	KEY_MACRO5:  "KEY_MACRO5",
  3468  	KEY_MACRO6:  "KEY_MACRO6",
  3469  	KEY_MACRO7:  "KEY_MACRO7",
  3470  	KEY_MACRO8:  "KEY_MACRO8",
  3471  	KEY_MACRO9:  "KEY_MACRO9",
  3472  	KEY_MACRO10: "KEY_MACRO10",
  3473  	KEY_MACRO11: "KEY_MACRO11",
  3474  	KEY_MACRO12: "KEY_MACRO12",
  3475  	KEY_MACRO13: "KEY_MACRO13",
  3476  	KEY_MACRO14: "KEY_MACRO14",
  3477  	KEY_MACRO15: "KEY_MACRO15",
  3478  	KEY_MACRO16: "KEY_MACRO16",
  3479  	KEY_MACRO17: "KEY_MACRO17",
  3480  	KEY_MACRO18: "KEY_MACRO18",
  3481  	KEY_MACRO19: "KEY_MACRO19",
  3482  	KEY_MACRO20: "KEY_MACRO20",
  3483  	KEY_MACRO21: "KEY_MACRO21",
  3484  	KEY_MACRO22: "KEY_MACRO22",
  3485  	KEY_MACRO23: "KEY_MACRO23",
  3486  	KEY_MACRO24: "KEY_MACRO24",
  3487  	KEY_MACRO25: "KEY_MACRO25",
  3488  	KEY_MACRO26: "KEY_MACRO26",
  3489  	KEY_MACRO27: "KEY_MACRO27",
  3490  	KEY_MACRO28: "KEY_MACRO28",
  3491  	KEY_MACRO29: "KEY_MACRO29",
  3492  	KEY_MACRO30: "KEY_MACRO30",
  3493  
  3494  	KEY_MACRO_RECORD_START: "KEY_MACRO_RECORD_START",
  3495  	KEY_MACRO_RECORD_STOP:  "KEY_MACRO_RECORD_STOP",
  3496  	KEY_MACRO_PRESET_CYCLE: "KEY_MACRO_PRESET_CYCLE",
  3497  	KEY_MACRO_PRESET1:      "KEY_MACRO_PRESET1",
  3498  	KEY_MACRO_PRESET2:      "KEY_MACRO_PRESET2",
  3499  	KEY_MACRO_PRESET3:      "KEY_MACRO_PRESET3",
  3500  
  3501  	KEY_KBD_LCD_MENU1: "KEY_KBD_LCD_MENU1",
  3502  	KEY_KBD_LCD_MENU2: "KEY_KBD_LCD_MENU2",
  3503  	KEY_KBD_LCD_MENU3: "KEY_KBD_LCD_MENU3",
  3504  	KEY_KBD_LCD_MENU4: "KEY_KBD_LCD_MENU4",
  3505  	KEY_KBD_LCD_MENU5: "KEY_KBD_LCD_MENU5",
  3506  
  3507  	BTN_TRIGGER_HAPPY:   "BTN_TRIGGER_HAPPY/BTN_TRIGGER_HAPPY1",
  3508  	BTN_TRIGGER_HAPPY2:  "BTN_TRIGGER_HAPPY2",
  3509  	BTN_TRIGGER_HAPPY3:  "BTN_TRIGGER_HAPPY3",
  3510  	BTN_TRIGGER_HAPPY4:  "BTN_TRIGGER_HAPPY4",
  3511  	BTN_TRIGGER_HAPPY5:  "BTN_TRIGGER_HAPPY5",
  3512  	BTN_TRIGGER_HAPPY6:  "BTN_TRIGGER_HAPPY6",
  3513  	BTN_TRIGGER_HAPPY7:  "BTN_TRIGGER_HAPPY7",
  3514  	BTN_TRIGGER_HAPPY8:  "BTN_TRIGGER_HAPPY8",
  3515  	BTN_TRIGGER_HAPPY9:  "BTN_TRIGGER_HAPPY9",
  3516  	BTN_TRIGGER_HAPPY10: "BTN_TRIGGER_HAPPY10",
  3517  	BTN_TRIGGER_HAPPY11: "BTN_TRIGGER_HAPPY11",
  3518  	BTN_TRIGGER_HAPPY12: "BTN_TRIGGER_HAPPY12",
  3519  	BTN_TRIGGER_HAPPY13: "BTN_TRIGGER_HAPPY13",
  3520  	BTN_TRIGGER_HAPPY14: "BTN_TRIGGER_HAPPY14",
  3521  	BTN_TRIGGER_HAPPY15: "BTN_TRIGGER_HAPPY15",
  3522  	BTN_TRIGGER_HAPPY16: "BTN_TRIGGER_HAPPY16",
  3523  	BTN_TRIGGER_HAPPY17: "BTN_TRIGGER_HAPPY17",
  3524  	BTN_TRIGGER_HAPPY18: "BTN_TRIGGER_HAPPY18",
  3525  	BTN_TRIGGER_HAPPY19: "BTN_TRIGGER_HAPPY19",
  3526  	BTN_TRIGGER_HAPPY20: "BTN_TRIGGER_HAPPY20",
  3527  	BTN_TRIGGER_HAPPY21: "BTN_TRIGGER_HAPPY21",
  3528  	BTN_TRIGGER_HAPPY22: "BTN_TRIGGER_HAPPY22",
  3529  	BTN_TRIGGER_HAPPY23: "BTN_TRIGGER_HAPPY23",
  3530  	BTN_TRIGGER_HAPPY24: "BTN_TRIGGER_HAPPY24",
  3531  	BTN_TRIGGER_HAPPY25: "BTN_TRIGGER_HAPPY25",
  3532  	BTN_TRIGGER_HAPPY26: "BTN_TRIGGER_HAPPY26",
  3533  	BTN_TRIGGER_HAPPY27: "BTN_TRIGGER_HAPPY27",
  3534  	BTN_TRIGGER_HAPPY28: "BTN_TRIGGER_HAPPY28",
  3535  	BTN_TRIGGER_HAPPY29: "BTN_TRIGGER_HAPPY29",
  3536  	BTN_TRIGGER_HAPPY30: "BTN_TRIGGER_HAPPY30",
  3537  	BTN_TRIGGER_HAPPY31: "BTN_TRIGGER_HAPPY31",
  3538  	BTN_TRIGGER_HAPPY32: "BTN_TRIGGER_HAPPY32",
  3539  	BTN_TRIGGER_HAPPY33: "BTN_TRIGGER_HAPPY33",
  3540  	BTN_TRIGGER_HAPPY34: "BTN_TRIGGER_HAPPY34",
  3541  	BTN_TRIGGER_HAPPY35: "BTN_TRIGGER_HAPPY35",
  3542  	BTN_TRIGGER_HAPPY36: "BTN_TRIGGER_HAPPY36",
  3543  	BTN_TRIGGER_HAPPY37: "BTN_TRIGGER_HAPPY37",
  3544  	BTN_TRIGGER_HAPPY38: "BTN_TRIGGER_HAPPY38",
  3545  	BTN_TRIGGER_HAPPY39: "BTN_TRIGGER_HAPPY39",
  3546  	BTN_TRIGGER_HAPPY40: "BTN_TRIGGER_HAPPY40",
  3547  
  3548  	KEY_MAX: "KEY_MAX",
  3549  	KEY_CNT: "KEY_CNT",
  3550  }
  3551  
  3552  var RELNames = map[EvCode]string{
  3553  	REL_X:      "REL_X",
  3554  	REL_Y:      "REL_Y",
  3555  	REL_Z:      "REL_Z",
  3556  	REL_RX:     "REL_RX",
  3557  	REL_RY:     "REL_RY",
  3558  	REL_RZ:     "REL_RZ",
  3559  	REL_HWHEEL: "REL_HWHEEL",
  3560  	REL_DIAL:   "REL_DIAL",
  3561  	REL_WHEEL:  "REL_WHEEL",
  3562  	REL_MISC:   "REL_MISC",
  3563  
  3564  	REL_RESERVED:      "REL_RESERVED",
  3565  	REL_WHEEL_HI_RES:  "REL_WHEEL_HI_RES",
  3566  	REL_HWHEEL_HI_RES: "REL_HWHEEL_HI_RES",
  3567  	REL_MAX:           "REL_MAX",
  3568  	REL_CNT:           "REL_CNT",
  3569  }
  3570  
  3571  var ABSNames = map[EvCode]string{
  3572  	ABS_X:          "ABS_X",
  3573  	ABS_Y:          "ABS_Y",
  3574  	ABS_Z:          "ABS_Z",
  3575  	ABS_RX:         "ABS_RX",
  3576  	ABS_RY:         "ABS_RY",
  3577  	ABS_RZ:         "ABS_RZ",
  3578  	ABS_THROTTLE:   "ABS_THROTTLE",
  3579  	ABS_RUDDER:     "ABS_RUDDER",
  3580  	ABS_WHEEL:      "ABS_WHEEL",
  3581  	ABS_GAS:        "ABS_GAS",
  3582  	ABS_BRAKE:      "ABS_BRAKE",
  3583  	ABS_HAT0X:      "ABS_HAT0X",
  3584  	ABS_HAT0Y:      "ABS_HAT0Y",
  3585  	ABS_HAT1X:      "ABS_HAT1X",
  3586  	ABS_HAT1Y:      "ABS_HAT1Y",
  3587  	ABS_HAT2X:      "ABS_HAT2X",
  3588  	ABS_HAT2Y:      "ABS_HAT2Y",
  3589  	ABS_HAT3X:      "ABS_HAT3X",
  3590  	ABS_HAT3Y:      "ABS_HAT3Y",
  3591  	ABS_PRESSURE:   "ABS_PRESSURE",
  3592  	ABS_DISTANCE:   "ABS_DISTANCE",
  3593  	ABS_TILT_X:     "ABS_TILT_X",
  3594  	ABS_TILT_Y:     "ABS_TILT_Y",
  3595  	ABS_TOOL_WIDTH: "ABS_TOOL_WIDTH",
  3596  
  3597  	ABS_VOLUME: "ABS_VOLUME",
  3598  
  3599  	ABS_MISC: "ABS_MISC",
  3600  
  3601  	ABS_RESERVED: "ABS_RESERVED",
  3602  
  3603  	ABS_MT_SLOT:        "ABS_MT_SLOT",
  3604  	ABS_MT_TOUCH_MAJOR: "ABS_MT_TOUCH_MAJOR",
  3605  	ABS_MT_TOUCH_MINOR: "ABS_MT_TOUCH_MINOR",
  3606  	ABS_MT_WIDTH_MAJOR: "ABS_MT_WIDTH_MAJOR",
  3607  	ABS_MT_WIDTH_MINOR: "ABS_MT_WIDTH_MINOR",
  3608  	ABS_MT_ORIENTATION: "ABS_MT_ORIENTATION",
  3609  	ABS_MT_POSITION_X:  "ABS_MT_POSITION_X",
  3610  	ABS_MT_POSITION_Y:  "ABS_MT_POSITION_Y",
  3611  	ABS_MT_TOOL_TYPE:   "ABS_MT_TOOL_TYPE",
  3612  	ABS_MT_BLOB_ID:     "ABS_MT_BLOB_ID",
  3613  	ABS_MT_TRACKING_ID: "ABS_MT_TRACKING_ID",
  3614  	ABS_MT_PRESSURE:    "ABS_MT_PRESSURE",
  3615  	ABS_MT_DISTANCE:    "ABS_MT_DISTANCE",
  3616  	ABS_MT_TOOL_X:      "ABS_MT_TOOL_X",
  3617  	ABS_MT_TOOL_Y:      "ABS_MT_TOOL_Y",
  3618  
  3619  	ABS_MAX: "ABS_MAX",
  3620  	ABS_CNT: "ABS_CNT",
  3621  }
  3622  
  3623  var SWNames = map[EvCode]string{
  3624  	SW_LID:                  "SW_LID",
  3625  	SW_TABLET_MODE:          "SW_TABLET_MODE",
  3626  	SW_HEADPHONE_INSERT:     "SW_HEADPHONE_INSERT",
  3627  	SW_RFKILL_ALL:           "SW_RFKILL_ALL/SW_RADIO",
  3628  	SW_MICROPHONE_INSERT:    "SW_MICROPHONE_INSERT",
  3629  	SW_DOCK:                 "SW_DOCK",
  3630  	SW_LINEOUT_INSERT:       "SW_LINEOUT_INSERT",
  3631  	SW_JACK_PHYSICAL_INSERT: "SW_JACK_PHYSICAL_INSERT",
  3632  	SW_VIDEOOUT_INSERT:      "SW_VIDEOOUT_INSERT",
  3633  	SW_CAMERA_LENS_COVER:    "SW_CAMERA_LENS_COVER",
  3634  	SW_KEYPAD_SLIDE:         "SW_KEYPAD_SLIDE",
  3635  	SW_FRONT_PROXIMITY:      "SW_FRONT_PROXIMITY",
  3636  	SW_ROTATE_LOCK:          "SW_ROTATE_LOCK",
  3637  	SW_LINEIN_INSERT:        "SW_LINEIN_INSERT",
  3638  	SW_MUTE_DEVICE:          "SW_MUTE_DEVICE",
  3639  	SW_PEN_INSERTED:         "SW_PEN_INSERTED",
  3640  	SW_MACHINE_COVER:        "SW_MACHINE_COVER/SW_MAX",
  3641  	SW_CNT:                  "SW_CNT",
  3642  }
  3643  
  3644  var MSCNames = map[EvCode]string{
  3645  	MSC_SERIAL:    "MSC_SERIAL",
  3646  	MSC_PULSELED:  "MSC_PULSELED",
  3647  	MSC_GESTURE:   "MSC_GESTURE",
  3648  	MSC_RAW:       "MSC_RAW",
  3649  	MSC_SCAN:      "MSC_SCAN",
  3650  	MSC_TIMESTAMP: "MSC_TIMESTAMP",
  3651  	MSC_MAX:       "MSC_MAX",
  3652  	MSC_CNT:       "MSC_CNT",
  3653  }
  3654  
  3655  var LEDNames = map[EvCode]string{
  3656  	LED_NUML:     "LED_NUML",
  3657  	LED_CAPSL:    "LED_CAPSL",
  3658  	LED_SCROLLL:  "LED_SCROLLL",
  3659  	LED_COMPOSE:  "LED_COMPOSE",
  3660  	LED_KANA:     "LED_KANA",
  3661  	LED_SLEEP:    "LED_SLEEP",
  3662  	LED_SUSPEND:  "LED_SUSPEND",
  3663  	LED_MUTE:     "LED_MUTE",
  3664  	LED_MISC:     "LED_MISC",
  3665  	LED_MAIL:     "LED_MAIL",
  3666  	LED_CHARGING: "LED_CHARGING",
  3667  	LED_MAX:      "LED_MAX",
  3668  	LED_CNT:      "LED_CNT",
  3669  }
  3670  
  3671  var REPNames = map[EvCode]string{
  3672  	REP_DELAY:  "REP_DELAY",
  3673  	REP_PERIOD: "REP_PERIOD/REP_MAX",
  3674  	REP_CNT:    "REP_CNT",
  3675  }
  3676  
  3677  var SNDNames = map[EvCode]string{
  3678  	SND_CLICK: "SND_CLICK",
  3679  	SND_BELL:  "SND_BELL",
  3680  	SND_TONE:  "SND_TONE",
  3681  	SND_MAX:   "SND_MAX",
  3682  	SND_CNT:   "SND_CNT",
  3683  }
  3684  
  3685  var IDNames = map[EvCode]string{
  3686  	ID_BUS:     "ID_BUS",
  3687  	ID_VENDOR:  "ID_VENDOR",
  3688  	ID_PRODUCT: "ID_PRODUCT",
  3689  	ID_VERSION: "ID_VERSION",
  3690  }
  3691  
  3692  var BUSNames = map[EvCode]string{
  3693  	BUS_PCI:       "BUS_PCI",
  3694  	BUS_ISAPNP:    "BUS_ISAPNP",
  3695  	BUS_USB:       "BUS_USB",
  3696  	BUS_HIL:       "BUS_HIL",
  3697  	BUS_BLUETOOTH: "BUS_BLUETOOTH",
  3698  	BUS_VIRTUAL:   "BUS_VIRTUAL",
  3699  
  3700  	BUS_ISA:         "BUS_ISA",
  3701  	BUS_I8042:       "BUS_I8042",
  3702  	BUS_XTKBD:       "BUS_XTKBD",
  3703  	BUS_RS232:       "BUS_RS232",
  3704  	BUS_GAMEPORT:    "BUS_GAMEPORT",
  3705  	BUS_PARPORT:     "BUS_PARPORT",
  3706  	BUS_AMIGA:       "BUS_AMIGA",
  3707  	BUS_ADB:         "BUS_ADB",
  3708  	BUS_I2C:         "BUS_I2C",
  3709  	BUS_HOST:        "BUS_HOST",
  3710  	BUS_GSC:         "BUS_GSC",
  3711  	BUS_ATARI:       "BUS_ATARI",
  3712  	BUS_SPI:         "BUS_SPI",
  3713  	BUS_RMI:         "BUS_RMI",
  3714  	BUS_CEC:         "BUS_CEC",
  3715  	BUS_INTEL_ISHTP: "BUS_INTEL_ISHTP",
  3716  }
  3717  
  3718  var MTNames = map[EvCode]string{
  3719  	MT_TOOL_FINGER: "MT_TOOL_FINGER",
  3720  	MT_TOOL_PEN:    "MT_TOOL_PEN",
  3721  	MT_TOOL_PALM:   "MT_TOOL_PALM",
  3722  	MT_TOOL_DIAL:   "MT_TOOL_DIAL",
  3723  	MT_TOOL_MAX:    "MT_TOOL_MAX",
  3724  }
  3725  
  3726  var FFNames = map[EvCode]string{
  3727  	FF_STATUS_STOPPED: "FF_STATUS_STOPPED",
  3728  	FF_STATUS_PLAYING: "FF_STATUS_PLAYING/FF_STATUS_MAX",
  3729  
  3730  	FF_RUMBLE:   "FF_RUMBLE/FF_EFFECT_MIN",
  3731  	FF_PERIODIC: "FF_PERIODIC",
  3732  	FF_CONSTANT: "FF_CONSTANT",
  3733  	FF_SPRING:   "FF_SPRING",
  3734  	FF_FRICTION: "FF_FRICTION",
  3735  	FF_DAMPER:   "FF_DAMPER",
  3736  	FF_INERTIA:  "FF_INERTIA",
  3737  	FF_RAMP:     "FF_RAMP/FF_EFFECT_MAX",
  3738  
  3739  	FF_SQUARE:   "FF_SQUARE/FF_WAVEFORM_MIN",
  3740  	FF_TRIANGLE: "FF_TRIANGLE",
  3741  	FF_SINE:     "FF_SINE",
  3742  	FF_SAW_UP:   "FF_SAW_UP",
  3743  	FF_SAW_DOWN: "FF_SAW_DOWN",
  3744  	FF_CUSTOM:   "FF_CUSTOM/FF_WAVEFORM_MAX",
  3745  
  3746  	FF_GAIN:       "FF_GAIN/FF_MAX_EFFECTS",
  3747  	FF_AUTOCENTER: "FF_AUTOCENTER",
  3748  
  3749  	FF_MAX: "FF_MAX",
  3750  	FF_CNT: "FF_CNT",
  3751  }