diff options
| author | Michael Forney <mforney@mforney.org> | 2016-06-27 00:00:52 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2016-06-27 00:00:52 -0700 |
| commit | 4a6368f55235991e43b47a74963bd0f7882953b4 (patch) | |
| tree | eb2e38585c3e01a52657642b5e84668d5e7f6d2f | |
| parent | bc1fe603dac0eb4a102b6d32a4dea68f22619442 (diff) | |
Add libevdev 1.5.2
| -rw-r--r-- | .gitmodules | 4 | ||||
| -rw-r--r-- | LICENSE | 6 | ||||
| -rw-r--r-- | desktop/gen.rc | 1 | ||||
| -rw-r--r-- | desktop/libevdev/config.h | 30 | ||||
| -rw-r--r-- | desktop/libevdev/gen.rc | 14 | ||||
| -rw-r--r-- | desktop/libevdev/patch/0001-Add-generated-event-names.h.patch | 1445 | ||||
| m--------- | desktop/libevdev/src | 0 |
7 files changed, 1498 insertions, 2 deletions
diff --git a/.gitmodules b/.gitmodules index 08b3a821..a9a65c6c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -67,6 +67,10 @@ [submodule "desktop/libdrm/src"] path = desktop/libdrm/src url = https://cgit.freedesktop.org/mesa/drm +[submodule "desktop/libevdev/src"] + path = desktop/libevdev/src + url = https://anongit.freedesktop.org/git/libevdev.git + ignore = all [submodule "desktop/libffi/src"] path = desktop/libffi/src url = https://github.com/libffi/libffi @@ -29,6 +29,7 @@ core/tz/version.h core/xz/config.h desktop/expat/expat_config.h desktop/libdrm/config.h +desktop/libevdev/config.h desktop/libffi/fficonfig.h desktop/libpciaccess/config.h desktop/pixman/config.h @@ -48,8 +49,9 @@ extra/transmission/config.h Several packages include one or more patch files in a patch/ directory that are applied before building the software. All of these patches can be used under the same terms as the files they change or the files they are derived from in the -respective projects. Unless specified below, these patches are original work or -taken directly from upstream. +respective projects. Unless specified below, these patches are original work, +taken directly from upstream, or generated directly from scripts within the +package's source tree. core/bc/patch/0001-Fix-use-of-uninitialized-f_void.patch http://www.pixelbeat.org/programming/oss_bug_flow.html diff --git a/desktop/gen.rc b/desktop/gen.rc index d342a46d..638a76e1 100644 --- a/desktop/gen.rc +++ b/desktop/gen.rc @@ -2,6 +2,7 @@ rule wayland_proto 'wayland-scanner $type $in $out.tmp && mv $out.tmp $out' subgen expat subgen libdrm +subgen libevdev subgen libffi subgen libpciaccess subgen pixman diff --git a/desktop/libevdev/config.h b/desktop/libevdev/config.h new file mode 100644 index 00000000..679c5a0d --- /dev/null +++ b/desktop/libevdev/config.h @@ -0,0 +1,30 @@ +#include <config-posix.h> + +#define HAVE_MEMORY_H 1 +#define LT_OBJDIR ".libs/" +#define PACKAGE "libevdev" +#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev" +#define PACKAGE_NAME "libevdev" +#define PACKAGE_STRING "libevdev 1.5.2" +#define PACKAGE_TARNAME "libevdev" +#define PACKAGE_URL "http://freedesktop.org/wiki/Software/libevdev/" +#define PACKAGE_VERSION "1.5.2" +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +#define VERSION "1.5.2" +/* #undef _MINIX */ +/* #undef _POSIX_1_SOURCE */ +/* #undef _POSIX_SOURCE */ diff --git a/desktop/libevdev/gen.rc b/desktop/libevdev/gen.rc new file mode 100644 index 00000000..76226966 --- /dev/null +++ b/desktop/libevdev/gen.rc @@ -0,0 +1,14 @@ +cflags\ + -I include\ + -I '$dir' \ + -I '$srcdir' + +hdrs=libevdev/libevdev.h +for(hdr in $hdrs) { + build '$outdir'/include/$hdr copy '$srcdir'/$hdr + file include/$hdr '$srcdir'/$hdr 644 +} +phony headers '$outdir'/include/$hdrs + +lib libevdev.a libevdev/^(libevdev.c libevdev-names.c) +file lib/libevdev.a '$outdir'/libevdev.a 644 diff --git a/desktop/libevdev/patch/0001-Add-generated-event-names.h.patch b/desktop/libevdev/patch/0001-Add-generated-event-names.h.patch new file mode 100644 index 00000000..ea95ecb4 --- /dev/null +++ b/desktop/libevdev/patch/0001-Add-generated-event-names.h.patch @@ -0,0 +1,1445 @@ +From 049b10b26d0638ab2ede2602acb67a84f31aa488 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sun, 26 Jun 2016 23:53:20 -0700 +Subject: [PATCH] Add generated event-names.h + +This file was generated by the make-event-names.py script. +--- + libevdev/event-names.h | 1425 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 1425 insertions(+) + create mode 100644 libevdev/event-names.h + +diff --git a/libevdev/event-names.h b/libevdev/event-names.h +new file mode 100644 +index 0000000..78115d0 +--- /dev/null ++++ b/libevdev/event-names.h +@@ -0,0 +1,1425 @@ ++/* THIS FILE IS GENERATED, DO NOT EDIT */ ++ ++#ifndef EVENT_NAMES_H ++#define EVENT_NAMES_H ++ ++static const char * const ev_map[EV_MAX + 1] = { ++ [EV_SYN] = "EV_SYN", ++ [EV_KEY] = "EV_KEY", ++ [EV_REL] = "EV_REL", ++ [EV_ABS] = "EV_ABS", ++ [EV_MSC] = "EV_MSC", ++ [EV_SW] = "EV_SW", ++ [EV_LED] = "EV_LED", ++ [EV_SND] = "EV_SND", ++ [EV_REP] = "EV_REP", ++ [EV_FF] = "EV_FF", ++ [EV_PWR] = "EV_PWR", ++ [EV_FF_STATUS] = "EV_FF_STATUS", ++ [EV_MAX] = "EV_MAX", ++}; ++ ++static const char * const rel_map[REL_MAX + 1] = { ++ [REL_X] = "REL_X", ++ [REL_Y] = "REL_Y", ++ [REL_Z] = "REL_Z", ++ [REL_RX] = "REL_RX", ++ [REL_RY] = "REL_RY", ++ [REL_RZ] = "REL_RZ", ++ [REL_HWHEEL] = "REL_HWHEEL", ++ [REL_DIAL] = "REL_DIAL", ++ [REL_WHEEL] = "REL_WHEEL", ++ [REL_MISC] = "REL_MISC", ++ [REL_MAX] = "REL_MAX", ++}; ++ ++static const char * const abs_map[ABS_MAX + 1] = { ++ [ABS_X] = "ABS_X", ++ [ABS_Y] = "ABS_Y", ++ [ABS_Z] = "ABS_Z", ++ [ABS_RX] = "ABS_RX", ++ [ABS_RY] = "ABS_RY", ++ [ABS_RZ] = "ABS_RZ", ++ [ABS_THROTTLE] = "ABS_THROTTLE", ++ [ABS_RUDDER] = "ABS_RUDDER", ++ [ABS_WHEEL] = "ABS_WHEEL", ++ [ABS_GAS] = "ABS_GAS", ++ [ABS_BRAKE] = "ABS_BRAKE", ++ [ABS_HAT0X] = "ABS_HAT0X", ++ [ABS_HAT0Y] = "ABS_HAT0Y", ++ [ABS_HAT1X] = "ABS_HAT1X", ++ [ABS_HAT1Y] = "ABS_HAT1Y", ++ [ABS_HAT2X] = "ABS_HAT2X", ++ [ABS_HAT2Y] = "ABS_HAT2Y", ++ [ABS_HAT3X] = "ABS_HAT3X", ++ [ABS_HAT3Y] = "ABS_HAT3Y", ++ [ABS_PRESSURE] = "ABS_PRESSURE", ++ [ABS_DISTANCE] = "ABS_DISTANCE", ++ [ABS_TILT_X] = "ABS_TILT_X", ++ [ABS_TILT_Y] = "ABS_TILT_Y", ++ [ABS_TOOL_WIDTH] = "ABS_TOOL_WIDTH", ++ [ABS_VOLUME] = "ABS_VOLUME", ++ [ABS_MISC] = "ABS_MISC", ++ [ABS_MT_SLOT] = "ABS_MT_SLOT", ++ [ABS_MT_TOUCH_MAJOR] = "ABS_MT_TOUCH_MAJOR", ++ [ABS_MT_TOUCH_MINOR] = "ABS_MT_TOUCH_MINOR", ++ [ABS_MT_WIDTH_MAJOR] = "ABS_MT_WIDTH_MAJOR", ++ [ABS_MT_WIDTH_MINOR] = "ABS_MT_WIDTH_MINOR", ++ [ABS_MT_ORIENTATION] = "ABS_MT_ORIENTATION", ++ [ABS_MT_POSITION_X] = "ABS_MT_POSITION_X", ++ [ABS_MT_POSITION_Y] = "ABS_MT_POSITION_Y", ++ [ABS_MT_TOOL_TYPE] = "ABS_MT_TOOL_TYPE", ++ [ABS_MT_BLOB_ID] = "ABS_MT_BLOB_ID", ++ [ABS_MT_TRACKING_ID] = "ABS_MT_TRACKING_ID", ++ [ABS_MT_PRESSURE] = "ABS_MT_PRESSURE", ++ [ABS_MT_DISTANCE] = "ABS_MT_DISTANCE", ++ [ABS_MT_TOOL_X] = "ABS_MT_TOOL_X", ++ [ABS_MT_TOOL_Y] = "ABS_MT_TOOL_Y", ++ [ABS_MAX] = "ABS_MAX", ++}; ++ ++static const char * const key_map[KEY_MAX + 1] = { ++ [KEY_RESERVED] = "KEY_RESERVED", ++ [KEY_ESC] = "KEY_ESC", ++ [KEY_1] = "KEY_1", ++ [KEY_2] = "KEY_2", ++ [KEY_3] = "KEY_3", ++ [KEY_4] = "KEY_4", ++ [KEY_5] = "KEY_5", ++ [KEY_6] = "KEY_6", ++ [KEY_7] = "KEY_7", ++ [KEY_8] = "KEY_8", ++ [KEY_9] = "KEY_9", ++ [KEY_0] = "KEY_0", ++ [KEY_MINUS] = "KEY_MINUS", ++ [KEY_EQUAL] = "KEY_EQUAL", ++ [KEY_BACKSPACE] = "KEY_BACKSPACE", ++ [KEY_TAB] = "KEY_TAB", ++ [KEY_Q] = "KEY_Q", ++ [KEY_W] = "KEY_W", ++ [KEY_E] = "KEY_E", ++ [KEY_R] = "KEY_R", ++ [KEY_T] = "KEY_T", ++ [KEY_Y] = "KEY_Y", ++ [KEY_U] = "KEY_U", ++ [KEY_I] = "KEY_I", ++ [KEY_O] = "KEY_O", ++ [KEY_P] = "KEY_P", ++ [KEY_LEFTBRACE] = "KEY_LEFTBRACE", ++ [KEY_RIGHTBRACE] = "KEY_RIGHTBRACE", ++ [KEY_ENTER] = "KEY_ENTER", ++ [KEY_LEFTCTRL] = "KEY_LEFTCTRL", ++ [KEY_A] = "KEY_A", ++ [KEY_S] = "KEY_S", ++ [KEY_D] = "KEY_D", ++ [KEY_F] = "KEY_F", ++ [KEY_G] = "KEY_G", ++ [KEY_H] = "KEY_H", ++ [KEY_J] = "KEY_J", ++ [KEY_K] = "KEY_K", ++ [KEY_L] = "KEY_L", ++ [KEY_SEMICOLON] = "KEY_SEMICOLON", ++ [KEY_APOSTROPHE] = "KEY_APOSTROPHE", ++ [KEY_GRAVE] = "KEY_GRAVE", ++ [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT", ++ [KEY_BACKSLASH] = "KEY_BACKSLASH", ++ [KEY_Z] = "KEY_Z", ++ [KEY_X] = "KEY_X", ++ [KEY_C] = "KEY_C", ++ [KEY_V] = "KEY_V", ++ [KEY_B] = "KEY_B", ++ [KEY_N] = "KEY_N", ++ [KEY_M] = "KEY_M", ++ [KEY_COMMA] = "KEY_COMMA", ++ [KEY_DOT] = "KEY_DOT", ++ [KEY_SLASH] = "KEY_SLASH", ++ [KEY_RIGHTSHIFT] = "KEY_RIGHTSHIFT", ++ [KEY_KPASTERISK] = "KEY_KPASTERISK", ++ [KEY_LEFTALT] = "KEY_LEFTALT", ++ [KEY_SPACE] = "KEY_SPACE", ++ [KEY_CAPSLOCK] = "KEY_CAPSLOCK", ++ [KEY_F1] = "KEY_F1", ++ [KEY_F2] = "KEY_F2", ++ [KEY_F3] = "KEY_F3", ++ [KEY_F4] = "KEY_F4", ++ [KEY_F5] = "KEY_F5", ++ [KEY_F6] = "KEY_F6", ++ [KEY_F7] = "KEY_F7", ++ [KEY_F8] = "KEY_F8", ++ [KEY_F9] = "KEY_F9", ++ [KEY_F10] = "KEY_F10", ++ [KEY_NUMLOCK] = "KEY_NUMLOCK", ++ [KEY_SCROLLLOCK] = "KEY_SCROLLLOCK", ++ [KEY_KP7] = "KEY_KP7", ++ [KEY_KP8] = "KEY_KP8", ++ [KEY_KP9] = "KEY_KP9", ++ [KEY_KPMINUS] = "KEY_KPMINUS", ++ [KEY_KP4] = "KEY_KP4", ++ [KEY_KP5] = "KEY_KP5", ++ [KEY_KP6] = "KEY_KP6", ++ [KEY_KPPLUS] = "KEY_KPPLUS", ++ [KEY_KP1] = "KEY_KP1", ++ [KEY_KP2] = "KEY_KP2", ++ [KEY_KP3] = "KEY_KP3", ++ [KEY_KP0] = "KEY_KP0", ++ [KEY_KPDOT] = "KEY_KPDOT", ++ [KEY_ZENKAKUHANKAKU] = "KEY_ZENKAKUHANKAKU", ++ [KEY_102ND] = "KEY_102ND", ++ [KEY_F11] = "KEY_F11", ++ [KEY_F12] = "KEY_F12", ++ [KEY_RO] = "KEY_RO", ++ [KEY_KATAKANA] = "KEY_KATAKANA", ++ [KEY_HIRAGANA] = "KEY_HIRAGANA", ++ [KEY_HENKAN] = "KEY_HENKAN", ++ [KEY_KATAKANAHIRAGANA] = "KEY_KATAKANAHIRAGANA", ++ [KEY_MUHENKAN] = "KEY_MUHENKAN", ++ [KEY_KPJPCOMMA] = "KEY_KPJPCOMMA", ++ [KEY_KPENTER] = "KEY_KPENTER", ++ [KEY_RIGHTCTRL] = "KEY_RIGHTCTRL", ++ [KEY_KPSLASH] = "KEY_KPSLASH", ++ [KEY_SYSRQ] = "KEY_SYSRQ", ++ [KEY_RIGHTALT] = "KEY_RIGHTALT", ++ [KEY_LINEFEED] = "KEY_LINEFEED", ++ [KEY_HOME] = "KEY_HOME", ++ [KEY_UP] = "KEY_UP", ++ [KEY_PAGEUP] = "KEY_PAGEUP", ++ [KEY_LEFT] = "KEY_LEFT", ++ [KEY_RIGHT] = "KEY_RIGHT", ++ [KEY_END] = "KEY_END", ++ [KEY_DOWN] = "KEY_DOWN", ++ [KEY_PAGEDOWN] = "KEY_PAGEDOWN", ++ [KEY_INSERT] = "KEY_INSERT", ++ [KEY_DELETE] = "KEY_DELETE", ++ [KEY_MACRO] = "KEY_MACRO", ++ [KEY_MUTE] = "KEY_MUTE", ++ [KEY_VOLUMEDOWN] = "KEY_VOLUMEDOWN", ++ [KEY_VOLUMEUP] = "KEY_VOLUMEUP", ++ [KEY_POWER] = "KEY_POWER", ++ [KEY_KPEQUAL] = "KEY_KPEQUAL", ++ [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS", ++ [KEY_PAUSE] = "KEY_PAUSE", ++ [KEY_SCALE] = "KEY_SCALE", ++ [KEY_KPCOMMA] = "KEY_KPCOMMA", ++ [KEY_HANGEUL] = "KEY_HANGEUL", ++ [KEY_HANJA] = "KEY_HANJA", ++ [KEY_YEN] = "KEY_YEN", ++ [KEY_LEFTMETA] = "KEY_LEFTMETA", ++ [KEY_RIGHTMETA] = "KEY_RIGHTMETA", ++ [KEY_COMPOSE] = "KEY_COMPOSE", ++ [KEY_STOP] = "KEY_STOP", ++ [KEY_AGAIN] = "KEY_AGAIN", ++ [KEY_PROPS] = "KEY_PROPS", ++ [KEY_UNDO] = "KEY_UNDO", ++ [KEY_FRONT] = "KEY_FRONT", ++ [KEY_COPY] = "KEY_COPY", ++ [KEY_OPEN] = "KEY_OPEN", ++ [KEY_PASTE] = "KEY_PASTE", ++ [KEY_FIND] = "KEY_FIND", ++ [KEY_CUT] = "KEY_CUT", ++ [KEY_HELP] = "KEY_HELP", ++ [KEY_MENU] = "KEY_MENU", ++ [KEY_CALC] = "KEY_CALC", ++ [KEY_SETUP] = "KEY_SETUP", ++ [KEY_SLEEP] = "KEY_SLEEP", ++ [KEY_WAKEUP] = "KEY_WAKEUP", ++ [KEY_FILE] = "KEY_FILE", ++ [KEY_SENDFILE] = "KEY_SENDFILE", ++ [KEY_DELETEFILE] = "KEY_DELETEFILE", ++ [KEY_XFER] = "KEY_XFER", ++ [KEY_PROG1] = "KEY_PROG1", ++ [KEY_PROG2] = "KEY_PROG2", ++ [KEY_WWW] = "KEY_WWW", ++ [KEY_MSDOS] = "KEY_MSDOS", ++ [KEY_COFFEE] = "KEY_COFFEE", ++ [KEY_ROTATE_DISPLAY] = "KEY_ROTATE_DISPLAY", ++ [KEY_CYCLEWINDOWS] = "KEY_CYCLEWINDOWS", ++ [KEY_MAIL] = "KEY_MAIL", ++ [KEY_BOOKMARKS] = "KEY_BOOKMARKS", ++ [KEY_COMPUTER] = "KEY_COMPUTER", ++ [KEY_BACK] = "KEY_BACK", ++ [KEY_FORWARD] = "KEY_FORWARD", ++ [KEY_CLOSECD] = "KEY_CLOSECD", ++ [KEY_EJECTCD] = "KEY_EJECTCD", ++ [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD", ++ [KEY_NEXTSONG] = "KEY_NEXTSONG", ++ [KEY_PLAYPAUSE] = "KEY_PLAYPAUSE", ++ [KEY_PREVIOUSSONG] = "KEY_PREVIOUSSONG", ++ [KEY_STOPCD] = "KEY_STOPCD", ++ [KEY_RECORD] = "KEY_RECORD", ++ [KEY_REWIND] = "KEY_REWIND", ++ [KEY_PHONE] = "KEY_PHONE", ++ [KEY_ISO] = "KEY_ISO", ++ [KEY_CONFIG] = "KEY_CONFIG", ++ [KEY_HOMEPAGE] = "KEY_HOMEPAGE", ++ [KEY_REFRESH] = "KEY_REFRESH", ++ [KEY_EXIT] = "KEY_EXIT", ++ [KEY_MOVE] = "KEY_MOVE", ++ [KEY_EDIT] = "KEY_EDIT", ++ [KEY_SCROLLUP] = "KEY_SCROLLUP", ++ [KEY_SCROLLDOWN] = "KEY_SCROLLDOWN", ++ [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN", ++ [KEY_KPRIGHTPAREN] = "KEY_KPRIGHTPAREN", ++ [KEY_NEW] = "KEY_NEW", ++ [KEY_REDO] = "KEY_REDO", ++ [KEY_F13] = "KEY_F13", ++ [KEY_F14] = "KEY_F14", ++ [KEY_F15] = "KEY_F15", ++ [KEY_F16] = "KEY_F16", ++ [KEY_F17] = "KEY_F17", ++ [KEY_F18] = "KEY_F18", ++ [KEY_F19] = "KEY_F19", ++ [KEY_F20] = "KEY_F20", ++ [KEY_F21] = "KEY_F21", ++ [KEY_F22] = "KEY_F22", ++ [KEY_F23] = "KEY_F23", ++ [KEY_F24] = "KEY_F24", ++ [KEY_PLAYCD] = "KEY_PLAYCD", ++ [KEY_PAUSECD] = "KEY_PAUSECD", ++ [KEY_PROG3] = "KEY_PROG3", ++ [KEY_PROG4] = "KEY_PROG4", ++ [KEY_DASHBOARD] = "KEY_DASHBOARD", ++ [KEY_SUSPEND] = "KEY_SUSPEND", ++ [KEY_CLOSE] = "KEY_CLOSE", ++ [KEY_PLAY] = "KEY_PLAY", ++ [KEY_FASTFORWARD] = "KEY_FASTFORWARD", ++ [KEY_BASSBOOST] = "KEY_BASSBOOST", ++ [KEY_PRINT] = "KEY_PRINT", ++ [KEY_HP] = "KEY_HP", ++ [KEY_CAMERA] = "KEY_CAMERA", ++ [KEY_SOUND] = "KEY_SOUND", ++ [KEY_QUESTION] = "KEY_QUESTION", ++ [KEY_EMAIL] = "KEY_EMAIL", ++ [KEY_CHAT] = "KEY_CHAT", ++ [KEY_SEARCH] = "KEY_SEARCH", ++ [KEY_CONNECT] = "KEY_CONNECT", ++ [KEY_FINANCE] = "KEY_FINANCE", ++ [KEY_SPORT] = "KEY_SPORT", ++ [KEY_SHOP] = "KEY_SHOP", ++ [KEY_ALTERASE] = "KEY_ALTERASE", ++ [KEY_CANCEL] = "KEY_CANCEL", ++ [KEY_BRIGHTNESSDOWN] = "KEY_BRIGHTNESSDOWN", ++ [KEY_BRIGHTNESSUP] = "KEY_BRIGHTNESSUP", ++ [KEY_MEDIA] = "KEY_MEDIA", ++ [KEY_SWITCHVIDEOMODE] = "KEY_SWITCHVIDEOMODE", ++ [KEY_KBDILLUMTOGGLE] = "KEY_KBDILLUMTOGGLE", ++ [KEY_KBDILLUMDOWN] = "KEY_KBDILLUMDOWN", ++ [KEY_KBDILLUMUP] = "KEY_KBDILLUMUP", ++ [KEY_SEND] = "KEY_SEND", ++ [KEY_REPLY] = "KEY_REPLY", ++ [KEY_FORWARDMAIL] = "KEY_FORWARDMAIL", ++ [KEY_SAVE] = "KEY_SAVE", ++ [KEY_DOCUMENTS] = "KEY_DOCUMENTS", ++ [KEY_BATTERY] = "KEY_BATTERY", ++ [KEY_BLUETOOTH] = "KEY_BLUETOOTH", ++ [KEY_WLAN] = "KEY_WLAN", ++ [KEY_UWB] = "KEY_UWB", ++ [KEY_UNKNOWN] = "KEY_UNKNOWN", ++ [KEY_VIDEO_NEXT] = "KEY_VIDEO_NEXT", ++ [KEY_VIDEO_PREV] = "KEY_VIDEO_PREV", ++ [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE", ++ [KEY_BRIGHTNESS_AUTO] = "KEY_BRIGHTNESS_AUTO", ++ [KEY_DISPLAY_OFF] = "KEY_DISPLAY_OFF", ++ [KEY_WWAN] = "KEY_WWAN", ++ [KEY_RFKILL] = "KEY_RFKILL", ++ [KEY_MICMUTE] = "KEY_MICMUTE", ++ [KEY_OK] = "KEY_OK", ++ [KEY_SELECT] = "KEY_SELECT", ++ [KEY_GOTO] = "KEY_GOTO", ++ [KEY_CLEAR] = "KEY_CLEAR", ++ [KEY_POWER2] = "KEY_POWER2", ++ [KEY_OPTION] = "KEY_OPTION", ++ [KEY_INFO] = "KEY_INFO", ++ [KEY_TIME] = "KEY_TIME", ++ [KEY_VENDOR] = "KEY_VENDOR", ++ [KEY_ARCHIVE] = "KEY_ARCHIVE", ++ [KEY_PROGRAM] = "KEY_PROGRAM", ++ [KEY_CHANNEL] = "KEY_CHANNEL", ++ [KEY_FAVORITES] = "KEY_FAVORITES", ++ [KEY_EPG] = "KEY_EPG", ++ [KEY_PVR] = "KEY_PVR", ++ [KEY_MHP] = "KEY_MHP", ++ [KEY_LANGUAGE] = "KEY_LANGUAGE", ++ [KEY_TITLE] = "KEY_TITLE", ++ [KEY_SUBTITLE] = "KEY_SUBTITLE", ++ [KEY_ANGLE] = "KEY_ANGLE", ++ [KEY_ZOOM] = "KEY_ZOOM", ++ [KEY_MODE] = "KEY_MODE", ++ [KEY_KEYBOARD] = "KEY_KEYBOARD", ++ [KEY_SCREEN] = "KEY_SCREEN", ++ [KEY_PC] = "KEY_PC", ++ [KEY_TV] = "KEY_TV", ++ [KEY_TV2] = "KEY_TV2", ++ [KEY_VCR] = "KEY_VCR", ++ [KEY_VCR2] = "KEY_VCR2", ++ [KEY_SAT] = "KEY_SAT", ++ [KEY_SAT2] = "KEY_SAT2", ++ [KEY_CD] = "KEY_CD", ++ [KEY_TAPE] = "KEY_TAPE", ++ [KEY_RADIO] = "KEY_RADIO", ++ [KEY_TUNER] = "KEY_TUNER", ++ [KEY_PLAYER] = "KEY_PLAYER", ++ [KEY_TEXT] = "KEY_TEXT", ++ [KEY_DVD] = "KEY_DVD", ++ [KEY_AUX] = "KEY_AUX", ++ [KEY_MP3] = "KEY_MP3", ++ [KEY_AUDIO] = "KEY_AUDIO", ++ [KEY_VIDEO] = "KEY_VIDEO", ++ [KEY_DIRECTORY] = "KEY_DIRECTORY", ++ [KEY_LIST] = "KEY_LIST", ++ [KEY_MEMO] = "KEY_MEMO", ++ [KEY_CALENDAR] = "KEY_CALENDAR", ++ [KEY_RED] = "KEY_RED", ++ [KEY_GREEN] = "KEY_GREEN", ++ [KEY_YELLOW] = "KEY_YELLOW", ++ [KEY_BLUE] = "KEY_BLUE", ++ [KEY_CHANNELUP] = "KEY_CHANNELUP", ++ [KEY_CHANNELDOWN] = "KEY_CHANNELDOWN", ++ [KEY_FIRST] = "KEY_FIRST", ++ [KEY_LAST] = "KEY_LAST", ++ [KEY_AB] = "KEY_AB", ++ [KEY_NEXT] = "KEY_NEXT", ++ [KEY_RESTART] = "KEY_RESTART", ++ [KEY_SLOW] = "KEY_SLOW", ++ [KEY_SHUFFLE] = "KEY_SHUFFLE", ++ [KEY_BREAK] = "KEY_BREAK", ++ [KEY_PREVIOUS] = "KEY_PREVIOUS", ++ [KEY_DIGITS] = "KEY_DIGITS", ++ [KEY_TEEN] = "KEY_TEEN", ++ [KEY_TWEN] = "KEY_TWEN", ++ [KEY_VIDEOPHONE] = "KEY_VIDEOPHONE", ++ [KEY_GAMES] = "KEY_GAMES", ++ [KEY_ZOOMIN] = "KEY_ZOOMIN", ++ [KEY_ZOOMOUT] = "KEY_ZOOMOUT", ++ [KEY_ZOOMRESET] = "KEY_ZOOMRESET", ++ [KEY_WORDPROCESSOR] = "KEY_WORDPROCESSOR", ++ [KEY_EDITOR] = "KEY_EDITOR", ++ [KEY_SPREADSHEET] = "KEY_SPREADSHEET", ++ [KEY_GRAPHICSEDITOR] = "KEY_GRAPHICSEDITOR", ++ [KEY_PRESENTATION] = "KEY_PRESENTATION", ++ [KEY_DATABASE] = "KEY_DATABASE", ++ [KEY_NEWS] = "KEY_NEWS", ++ [KEY_VOICEMAIL] = "KEY_VOICEMAIL", ++ [KEY_ADDRESSBOOK] = "KEY_ADDRESSBOOK", ++ [KEY_MESSENGER] = "KEY_MESSENGER", ++ [KEY_DISPLAYTOGGLE] = "KEY_DISPLAYTOGGLE", ++ [KEY_SPELLCHECK] = "KEY_SPELLCHECK", ++ [KEY_LOGOFF] = "KEY_LOGOFF", ++ [KEY_DOLLAR] = "KEY_DOLLAR", ++ [KEY_EURO] = "KEY_EURO", ++ [KEY_FRAMEBACK] = "KEY_FRAMEBACK", ++ [KEY_FRAMEFORWARD] = "KEY_FRAMEFORWARD", ++ [KEY_CONTEXT_MENU] = "KEY_CONTEXT_MENU", ++ [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", ++ [KEY_10CHANNELSUP] = "KEY_10CHANNELSUP", ++ [KEY_10CHANNELSDOWN] = "KEY_10CHANNELSDOWN", ++ [KEY_IMAGES] = "KEY_IMAGES", ++ [KEY_DEL_EOL] = "KEY_DEL_EOL", ++ [KEY_DEL_EOS] = "KEY_DEL_EOS", ++ [KEY_INS_LINE] = "KEY_INS_LINE", ++ [KEY_DEL_LINE] = "KEY_DEL_LINE", ++ [KEY_FN] = "KEY_FN", ++ [KEY_FN_ESC] = "KEY_FN_ESC", ++ [KEY_FN_F1] = "KEY_FN_F1", ++ [KEY_FN_F2] = "KEY_FN_F2", ++ [KEY_FN_F3] = "KEY_FN_F3", ++ [KEY_FN_F4] = "KEY_FN_F4", ++ [KEY_FN_F5] = "KEY_FN_F5", ++ [KEY_FN_F6] = "KEY_FN_F6", ++ [KEY_FN_F7] = "KEY_FN_F7", ++ [KEY_FN_F8] = "KEY_FN_F8", ++ [KEY_FN_F9] = "KEY_FN_F9", ++ [KEY_FN_F10] = "KEY_FN_F10", ++ [KEY_FN_F11] = "KEY_FN_F11", ++ [KEY_FN_F12] = "KEY_FN_F12", ++ [KEY_FN_1] = "KEY_FN_1", ++ [KEY_FN_2] = "KEY_FN_2", ++ [KEY_FN_D] = "KEY_FN_D", ++ [KEY_FN_E] = "KEY_FN_E", ++ [KEY_FN_F] = "KEY_FN_F", ++ [KEY_FN_S] = "KEY_FN_S", ++ [KEY_FN_B] = "KEY_FN_B", ++ [KEY_BRL_DOT1] = "KEY_BRL_DOT1", ++ [KEY_BRL_DOT2] = "KEY_BRL_DOT2", ++ [KEY_BRL_DOT3] = "KEY_BRL_DOT3", ++ [KEY_BRL_DOT4] = "KEY_BRL_DOT4", ++ [KEY_BRL_DOT5] = "KEY_BRL_DOT5", ++ [KEY_BRL_DOT6] = "KEY_BRL_DOT6", ++ [KEY_BRL_DOT7] = "KEY_BRL_DOT7", ++ [KEY_BRL_DOT8] = "KEY_BRL_DOT8", ++ [KEY_BRL_DOT9] = "KEY_BRL_DOT9", ++ [KEY_BRL_DOT10] = "KEY_BRL_DOT10", ++ [KEY_NUMERIC_0] = "KEY_NUMERIC_0", ++ [KEY_NUMERIC_1] = "KEY_NUMERIC_1", ++ [KEY_NUMERIC_2] = "KEY_NUMERIC_2", ++ [KEY_NUMERIC_3] = "KEY_NUMERIC_3", ++ [KEY_NUMERIC_4] = "KEY_NUMERIC_4", ++ [KEY_NUMERIC_5] = "KEY_NUMERIC_5", ++ [KEY_NUMERIC_6] = "KEY_NUMERIC_6", ++ [KEY_NUMERIC_7] = "KEY_NUMERIC_7", ++ [KEY_NUMERIC_8] = "KEY_NUMERIC_8", ++ [KEY_NUMERIC_9] = "KEY_NUMERIC_9", ++ [KEY_NUMERIC_STAR] = "KEY_NUMERIC_STAR", ++ [KEY_NUMERIC_POUND] = "KEY_NUMERIC_POUND", ++ [KEY_NUMERIC_A] = "KEY_NUMERIC_A", ++ [KEY_NUMERIC_B] = "KEY_NUMERIC_B", ++ [KEY_NUMERIC_C] = "KEY_NUMERIC_C", ++ [KEY_NUMERIC_D] = "KEY_NUMERIC_D", ++ [KEY_CAMERA_FOCUS] = "KEY_CAMERA_FOCUS", ++ [KEY_WPS_BUTTON] = "KEY_WPS_BUTTON", ++ [KEY_TOUCHPAD_TOGGLE] = "KEY_TOUCHPAD_TOGGLE", ++ [KEY_TOUCHPAD_ON] = "KEY_TOUCHPAD_ON", ++ [KEY_TOUCHPAD_OFF] = "KEY_TOUCHPAD_OFF", ++ [KEY_CAMERA_ZOOMIN] = "KEY_CAMERA_ZOOMIN", ++ [KEY_CAMERA_ZOOMOUT] = "KEY_CAMERA_ZOOMOUT", ++ [KEY_CAMERA_UP] = "KEY_CAMERA_UP", ++ [KEY_CAMERA_DOWN] = "KEY_CAMERA_DOWN", ++ [KEY_CAMERA_LEFT] = "KEY_CAMERA_LEFT", ++ [KEY_CAMERA_RIGHT] = "KEY_CAMERA_RIGHT", ++ [KEY_ATTENDANT_ON] = "KEY_ATTENDANT_ON", ++ [KEY_ATTENDANT_OFF] = "KEY_ATTENDANT_OFF", ++ [KEY_ATTENDANT_TOGGLE] = "KEY_ATTENDANT_TOGGLE", ++ [KEY_LIGHTS_TOGGLE] = "KEY_LIGHTS_TOGGLE", ++ [KEY_ALS_TOGGLE] = "KEY_ALS_TOGGLE", ++ [KEY_BUTTONCONFIG] = "KEY_BUTTONCONFIG", ++ [KEY_TASKMANAGER] = "KEY_TASKMANAGER", ++ [KEY_JOURNAL] = "KEY_JOURNAL", ++ [KEY_CONTROLPANEL] = "KEY_CONTROLPANEL", ++ [KEY_APPSELECT] = "KEY_APPSELECT", ++ [KEY_SCREENSAVER] = "KEY_SCREENSAVER", ++ [KEY_VOICECOMMAND] = "KEY_VOICECOMMAND", ++ [KEY_BRIGHTNESS_MIN] = "KEY_BRIGHTNESS_MIN", ++ [KEY_BRIGHTNESS_MAX] = "KEY_BRIGHTNESS_MAX", ++ [KEY_KBDINPUTASSIST_PREV] = "KEY_KBDINPUTASSIST_PREV", ++ [KEY_KBDINPUTASSIST_NEXT] = "KEY_KBDINPUTASSIST_NEXT", ++ [KEY_KBDINPUTASSIST_PREVGROUP] = "KEY_KBDINPUTASSIST_PREVGROUP", ++ [KEY_KBDINPUTASSIST_NEXTGROUP] = "KEY_KBDINPUTASSIST_NEXTGROUP", ++ [KEY_KBDINPUTASSIST_ACCEPT] = "KEY_KBDINPUTASSIST_ACCEPT", ++ [KEY_KBDINPUTASSIST_CANCEL] = "KEY_KBDINPUTASSIST_CANCEL", ++ [KEY_MAX] = "KEY_MAX", ++ [BTN_DPAD_UP] = "BTN_DPAD_UP", ++ [BTN_DPAD_DOWN] = "BTN_DPAD_DOWN", ++ [BTN_DPAD_LEFT] = "BTN_DPAD_LEFT", ++ [BTN_DPAD_RIGHT] = "BTN_DPAD_RIGHT", ++ [BTN_TRIGGER_HAPPY1] = "BTN_TRIGGER_HAPPY1", ++ [BTN_TRIGGER_HAPPY2] = "BTN_TRIGGER_HAPPY2", ++ [BTN_TRIGGER_HAPPY3] = "BTN_TRIGGER_HAPPY3", ++ [BTN_TRIGGER_HAPPY4] = "BTN_TRIGGER_HAPPY4", ++ [BTN_TRIGGER_HAPPY5] = "BTN_TRIGGER_HAPPY5", ++ [BTN_TRIGGER_HAPPY6] = "BTN_TRIGGER_HAPPY6", ++ [BTN_TRIGGER_HAPPY7] = "BTN_TRIGGER_HAPPY7", ++ [BTN_TRIGGER_HAPPY8] = "BTN_TRIGGER_HAPPY8", ++ [BTN_TRIGGER_HAPPY9] = "BTN_TRIGGER_HAPPY9", ++ [BTN_TRIGGER_HAPPY10] = "BTN_TRIGGER_HAPPY10", ++ [BTN_TRIGGER_HAPPY11] = "BTN_TRIGGER_HAPPY11", ++ [BTN_TRIGGER_HAPPY12] = "BTN_TRIGGER_HAPPY12", ++ [BTN_TRIGGER_HAPPY13] = "BTN_TRIGGER_HAPPY13", ++ [BTN_TRIGGER_HAPPY14] = "BTN_TRIGGER_HAPPY14", ++ [BTN_TRIGGER_HAPPY15] = "BTN_TRIGGER_HAPPY15", ++ [BTN_TRIGGER_HAPPY16] = "BTN_TRIGGER_HAPPY16", ++ [BTN_TRIGGER_HAPPY17] = "BTN_TRIGGER_HAPPY17", ++ [BTN_TRIGGER_HAPPY18] = "BTN_TRIGGER_HAPPY18", ++ [BTN_TRIGGER_HAPPY19] = "BTN_TRIGGER_HAPPY19", ++ [BTN_TRIGGER_HAPPY20] = "BTN_TRIGGER_HAPPY20", ++ [BTN_TRIGGER_HAPPY21] = "BTN_TRIGGER_HAPPY21", ++ [BTN_TRIGGER_HAPPY22] = "BTN_TRIGGER_HAPPY22", ++ [BTN_TRIGGER_HAPPY23] = "BTN_TRIGGER_HAPPY23", ++ [BTN_TRIGGER_HAPPY24] = "BTN_TRIGGER_HAPPY24", ++ [BTN_TRIGGER_HAPPY25] = "BTN_TRIGGER_HAPPY25", ++ [BTN_TRIGGER_HAPPY26] = "BTN_TRIGGER_HAPPY26", ++ [BTN_TRIGGER_HAPPY27] = "BTN_TRIGGER_HAPPY27", ++ [BTN_TRIGGER_HAPPY28] = "BTN_TRIGGER_HAPPY28", ++ [BTN_TRIGGER_HAPPY29] = "BTN_TRIGGER_HAPPY29", ++ [BTN_TRIGGER_HAPPY30] = "BTN_TRIGGER_HAPPY30", ++ [BTN_TRIGGER_HAPPY31] = "BTN_TRIGGER_HAPPY31", ++ [BTN_TRIGGER_HAPPY32] = "BTN_TRIGGER_HAPPY32", ++ [BTN_TRIGGER_HAPPY33] = "BTN_TRIGGER_HAPPY33", ++ [BTN_TRIGGER_HAPPY34] = "BTN_TRIGGER_HAPPY34", ++ [BTN_TRIGGER_HAPPY35] = "BTN_TRIGGER_HAPPY35", ++ [BTN_TRIGGER_HAPPY36] = "BTN_TRIGGER_HAPPY36", ++ [BTN_TRIGGER_HAPPY37] = "BTN_TRIGGER_HAPPY37", ++ [BTN_TRIGGER_HAPPY38] = "BTN_TRIGGER_HAPPY38", ++ [BTN_TRIGGER_HAPPY39] = "BTN_TRIGGER_HAPPY39", ++ [BTN_TRIGGER_HAPPY40] = "BTN_TRIGGER_HAPPY40", ++ [BTN_0] = "BTN_0", ++ [BTN_1] = "BTN_1", ++ [BTN_2] = "BTN_2", ++ [BTN_3] = "BTN_3", ++ [BTN_4] = "BTN_4", ++ [BTN_5] = "BTN_5", ++ [BTN_6] = "BTN_6", ++ [BTN_7] = "BTN_7", ++ [BTN_8] = "BTN_8", ++ [BTN_9] = "BTN_9", ++ [BTN_LEFT] = "BTN_LEFT", ++ [BTN_RIGHT] = "BTN_RIGHT", ++ [BTN_MIDDLE] = "BTN_MIDDLE", ++ [BTN_SIDE] = "BTN_SIDE", ++ [BTN_EXTRA] = "BTN_EXTRA", ++ [BTN_FORWARD] = "BTN_FORWARD", ++ [BTN_BACK] = "BTN_BACK", ++ [BTN_TASK] = "BTN_TASK", ++ [BTN_TRIGGER] = "BTN_TRIGGER", ++ [BTN_THUMB] = "BTN_THUMB", ++ [BTN_THUMB2] = "BTN_THUMB2", ++ [BTN_TOP] = "BTN_TOP", ++ [BTN_TOP2] = "BTN_TOP2", ++ [BTN_PINKIE] = "BTN_PINKIE", ++ [BTN_BASE] = "BTN_BASE", ++ [BTN_BASE2] = "BTN_BASE2", ++ [BTN_BASE3] = "BTN_BASE3", ++ [BTN_BASE4] = "BTN_BASE4", ++ [BTN_BASE5] = "BTN_BASE5", ++ [BTN_BASE6] = "BTN_BASE6", ++ [BTN_DEAD] = "BTN_DEAD", ++ [BTN_SOUTH] = "BTN_SOUTH", ++ [BTN_EAST] = "BTN_EAST", ++ [BTN_C] = "BTN_C", ++ [BTN_NORTH] = "BTN_NORTH", ++ [BTN_WEST] = "BTN_WEST", ++ [BTN_Z] = "BTN_Z", ++ [BTN_TL] = "BTN_TL", ++ [BTN_TR] = "BTN_TR", ++ [BTN_TL2] = "BTN_TL2", ++ [BTN_TR2] = "BTN_TR2", ++ [BTN_SELECT] = "BTN_SELECT", ++ [BTN_START] = "BTN_START", ++ [BTN_MODE] = "BTN_MODE", ++ [BTN_THUMBL] = "BTN_THUMBL", ++ [BTN_THUMBR] = "BTN_THUMBR", ++ [BTN_TOOL_PEN] = "BTN_TOOL_PEN", ++ [BTN_TOOL_RUBBER] = "BTN_TOOL_RUBBER", ++ [BTN_TOOL_BRUSH] = "BTN_TOOL_BRUSH", ++ [BTN_TOOL_PENCIL] = "BTN_TOOL_PENCIL", ++ [BTN_TOOL_AIRBRUSH] = "BTN_TOOL_AIRBRUSH", ++ [BTN_TOOL_FINGER] = "BTN_TOOL_FINGER", ++ [BTN_TOOL_MOUSE] = "BTN_TOOL_MOUSE", ++ [BTN_TOOL_LENS] = "BTN_TOOL_LENS", ++ [BTN_TOOL_QUINTTAP] = "BTN_TOOL_QUINTTAP", ++ [BTN_TOUCH] = "BTN_TOUCH", ++ [BTN_STYLUS] = "BTN_STYLUS", ++ [BTN_STYLUS2] = "BTN_STYLUS2", ++ [BTN_TOOL_DOUBLETAP] = "BTN_TOOL_DOUBLETAP", ++ [BTN_TOOL_TRIPLETAP] = "BTN_TOOL_TRIPLETAP", ++ [BTN_TOOL_QUADTAP] = "BTN_TOOL_QUADTAP", ++ [BTN_GEAR_DOWN] = "BTN_GEAR_DOWN", ++ [BTN_GEAR_UP] = "BTN_GEAR_UP", ++}; ++ ++static const char * const led_map[LED_MAX + 1] = { ++ [LED_NUML] = "LED_NUML", ++ [LED_CAPSL] = "LED_CAPSL", ++ [LED_SCROLLL] = "LED_SCROLLL", ++ [LED_COMPOSE] = "LED_COMPOSE", ++ [LED_KANA] = "LED_KANA", ++ [LED_SLEEP] = "LED_SLEEP", ++ [LED_SUSPEND] = "LED_SUSPEND", ++ [LED_MUTE] = "LED_MUTE", ++ [LED_MISC] = "LED_MISC", ++ [LED_MAIL] = "LED_MAIL", ++ [LED_CHARGING] = "LED_CHARGING", ++ [LED_MAX] = "LED_MAX", ++}; ++ ++static const char * const snd_map[SND_MAX + 1] = { ++ [SND_CLICK] = "SND_CLICK", ++ [SND_BELL] = "SND_BELL", ++ [SND_TONE] = "SND_TONE", ++ [SND_MAX] = "SND_MAX", ++}; ++ ++static const char * const msc_map[MSC_MAX + 1] = { ++ [MSC_SERIAL] = "MSC_SERIAL", ++ [MSC_PULSELED] = "MSC_PULSELED", ++ [MSC_GESTURE] = "MSC_GESTURE", ++ [MSC_RAW] = "MSC_RAW", ++ [MSC_SCAN] = "MSC_SCAN", ++ [MSC_TIMESTAMP] = "MSC_TIMESTAMP", ++ [MSC_MAX] = "MSC_MAX", ++}; ++ ++static const char * const sw_map[SW_MAX + 1] = { ++ [SW_LID] = "SW_LID", ++ [SW_TABLET_MODE] = "SW_TABLET_MODE", ++ [SW_HEADPHONE_INSERT] = "SW_HEADPHONE_INSERT", ++ [SW_RFKILL_ALL] = "SW_RFKILL_ALL", ++ [SW_MICROPHONE_INSERT] = "SW_MICROPHONE_INSERT", ++ [SW_DOCK] = "SW_DOCK", ++ [SW_LINEOUT_INSERT] = "SW_LINEOUT_INSERT", ++ [SW_JACK_PHYSICAL_INSERT] = "SW_JACK_PHYSICAL_INSERT", ++ [SW_VIDEOOUT_INSERT] = "SW_VIDEOOUT_INSERT", ++ [SW_CAMERA_LENS_COVER] = "SW_CAMERA_LENS_COVER", ++ [SW_KEYPAD_SLIDE] = "SW_KEYPAD_SLIDE", ++ [SW_FRONT_PROXIMITY] = "SW_FRONT_PROXIMITY", ++ [SW_ROTATE_LOCK] = "SW_ROTATE_LOCK", ++ [SW_LINEIN_INSERT] = "SW_LINEIN_INSERT", ++ [SW_MUTE_DEVICE] = "SW_MUTE_DEVICE", ++ [SW_MAX] = "SW_MAX", ++}; ++ ++static const char * const ff_map[FF_MAX + 1] = { ++ [FF_STATUS_STOPPED] = "FF_STATUS_STOPPED", ++ [FF_STATUS_MAX] = "FF_STATUS_MAX", ++ [FF_AUTOCENTER] = "FF_AUTOCENTER", ++ [FF_GAIN] = "FF_GAIN", ++ [FF_RUMBLE] = "FF_RUMBLE", ++ [FF_PERIODIC] = "FF_PERIODIC", ++ [FF_CONSTANT] = "FF_CONSTANT", ++ [FF_SPRING] = "FF_SPRING", ++ [FF_FRICTION] = "FF_FRICTION", ++ [FF_DAMPER] = "FF_DAMPER", ++ [FF_INERTIA] = "FF_INERTIA", ++ [FF_RAMP] = "FF_RAMP", ++ [FF_SQUARE] = "FF_SQUARE", ++ [FF_TRIANGLE] = "FF_TRIANGLE", ++ [FF_SINE] = "FF_SINE", ++ [FF_SAW_UP] = "FF_SAW_UP", ++ [FF_SAW_DOWN] = "FF_SAW_DOWN", ++ [FF_CUSTOM] = "FF_CUSTOM", ++ [FF_MAX] = "FF_MAX", ++}; ++ ++static const char * const syn_map[SYN_MAX + 1] = { ++ [SYN_REPORT] = "SYN_REPORT", ++ [SYN_CONFIG] = "SYN_CONFIG", ++ [SYN_MT_REPORT] = "SYN_MT_REPORT", ++ [SYN_DROPPED] = "SYN_DROPPED", ++ [SYN_MAX] = "SYN_MAX", ++}; ++ ++static const char * const rep_map[REP_MAX + 1] = { ++ [REP_DELAY] = "REP_DELAY", ++ [REP_MAX] = "REP_MAX", ++}; ++ ++static const char * const input_prop_map[INPUT_PROP_MAX + 1] = { ++ [INPUT_PROP_POINTER] = "INPUT_PROP_POINTER", ++ [INPUT_PROP_DIRECT] = "INPUT_PROP_DIRECT", ++ [INPUT_PROP_BUTTONPAD] = "INPUT_PROP_BUTTONPAD", ++ [INPUT_PROP_SEMI_MT] = "INPUT_PROP_SEMI_MT", ++ [INPUT_PROP_TOPBUTTONPAD] = "INPUT_PROP_TOPBUTTONPAD", ++ [INPUT_PROP_POINTING_STICK] = "INPUT_PROP_POINTING_STICK", ++ [INPUT_PROP_ACCELEROMETER] = "INPUT_PROP_ACCELEROMETER", ++ [INPUT_PROP_MAX] = "INPUT_PROP_MAX", ++}; ++ ++static const char * const * const event_type_map[EV_MAX + 1] = { ++ [EV_REL] = rel_map, ++ [EV_ABS] = abs_map, ++ [EV_KEY] = key_map, ++ [EV_LED] = led_map, ++ [EV_SND] = snd_map, ++ [EV_MSC] = msc_map, ++ [EV_SW] = sw_map, ++ [EV_FF] = ff_map, ++ [EV_SYN] = syn_map, ++ [EV_REP] = rep_map, ++}; ++ ++#if __clang__ ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Winitializer-overrides" ++#else ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Woverride-init" ++#endif ++static const int ev_max[EV_MAX + 1] = { ++ [0 ... EV_MAX] = -1, ++ [EV_REL] = REL_MAX, ++ [EV_ABS] = ABS_MAX, ++ [EV_KEY] = KEY_MAX, ++ [EV_LED] = LED_MAX, ++ [EV_SND] = SND_MAX, ++ [EV_MSC] = MSC_MAX, ++ [EV_SW] = SW_MAX, ++ [EV_FF] = FF_MAX, ++ [EV_SYN] = SYN_MAX, ++ [EV_REP] = REP_MAX, ++}; ++#if __clang__ ++#pragma clang diagnostic pop /* "-Winitializer-overrides" */ ++#else ++#pragma GCC diagnostic pop /* "-Woverride-init" */ ++#endif ++ ++struct name_entry { ++ const char *name; ++ unsigned int value; ++}; ++ ++static const struct name_entry ev_names[] = { ++ { .name = "EV_ABS", .value = EV_ABS }, ++ { .name = "EV_FF", .value = EV_FF }, ++ { .name = "EV_FF_STATUS", .value = EV_FF_STATUS }, ++ { .name = "EV_KEY", .value = EV_KEY }, ++ { .name = "EV_LED", .value = EV_LED }, ++ { .name = "EV_MAX", .value = EV_MAX }, ++ { .name = "EV_MSC", .value = EV_MSC }, ++ { .name = "EV_PWR", .value = EV_PWR }, ++ { .name = "EV_REL", .value = EV_REL }, ++ { .name = "EV_REP", .value = EV_REP }, ++ { .name = "EV_SND", .value = EV_SND }, ++ { .name = "EV_SW", .value = EV_SW }, ++ { .name = "EV_SYN", .value = EV_SYN }, ++}; ++ ++static const struct name_entry code_names[] = { ++ { .name = "ABS_BRAKE", .value = ABS_BRAKE }, ++ { .name = "ABS_DISTANCE", .value = ABS_DISTANCE }, ++ { .name = "ABS_GAS", .value = ABS_GAS }, ++ { .name = "ABS_HAT0X", .value = ABS_HAT0X }, ++ { .name = "ABS_HAT0Y", .value = ABS_HAT0Y }, ++ { .name = "ABS_HAT1X", .value = ABS_HAT1X }, ++ { .name = "ABS_HAT1Y", .value = ABS_HAT1Y }, ++ { .name = "ABS_HAT2X", .value = ABS_HAT2X }, ++ { .name = "ABS_HAT2Y", .value = ABS_HAT2Y }, ++ { .name = "ABS_HAT3X", .value = ABS_HAT3X }, ++ { .name = "ABS_HAT3Y", .value = ABS_HAT3Y }, ++ { .name = "ABS_MAX", .value = ABS_MAX }, ++ { .name = "ABS_MISC", .value = ABS_MISC }, ++ { .name = "ABS_MT_BLOB_ID", .value = ABS_MT_BLOB_ID }, ++ { .name = "ABS_MT_DISTANCE", .value = ABS_MT_DISTANCE }, ++ { .name = "ABS_MT_ORIENTATION", .value = ABS_MT_ORIENTATION }, ++ { .name = "ABS_MT_POSITION_X", .value = ABS_MT_POSITION_X }, ++ { .name = "ABS_MT_POSITION_Y", .value = ABS_MT_POSITION_Y }, ++ { .name = "ABS_MT_PRESSURE", .value = ABS_MT_PRESSURE }, ++ { .name = "ABS_MT_SLOT", .value = ABS_MT_SLOT }, ++ { .name = "ABS_MT_TOOL_TYPE", .value = ABS_MT_TOOL_TYPE }, ++ { .name = "ABS_MT_TOOL_X", .value = ABS_MT_TOOL_X }, ++ { .name = "ABS_MT_TOOL_Y", .value = ABS_MT_TOOL_Y }, ++ { .name = "ABS_MT_TOUCH_MAJOR", .value = ABS_MT_TOUCH_MAJOR }, ++ { .name = "ABS_MT_TOUCH_MINOR", .value = ABS_MT_TOUCH_MINOR }, ++ { .name = "ABS_MT_TRACKING_ID", .value = ABS_MT_TRACKING_ID }, ++ { .name = "ABS_MT_WIDTH_MAJOR", .value = ABS_MT_WIDTH_MAJOR }, ++ { .name = "ABS_MT_WIDTH_MINOR", .value = ABS_MT_WIDTH_MINOR }, ++ { .name = "ABS_PRESSURE", .value = ABS_PRESSURE }, ++ { .name = "ABS_RUDDER", .value = ABS_RUDDER }, ++ { .name = "ABS_RX", .value = ABS_RX }, ++ { .name = "ABS_RY", .value = ABS_RY }, ++ { .name = "ABS_RZ", .value = ABS_RZ }, ++ { .name = "ABS_THROTTLE", .value = ABS_THROTTLE }, ++ { .name = "ABS_TILT_X", .value = ABS_TILT_X }, ++ { .name = "ABS_TILT_Y", .value = ABS_TILT_Y }, ++ { .name = "ABS_TOOL_WIDTH", .value = ABS_TOOL_WIDTH }, ++ { .name = "ABS_VOLUME", .value = ABS_VOLUME }, ++ { .name = "ABS_WHEEL", .value = ABS_WHEEL }, ++ { .name = "ABS_X", .value = ABS_X }, ++ { .name = "ABS_Y", .value = ABS_Y }, ++ { .name = "ABS_Z", .value = ABS_Z }, ++ { .name = "BTN_0", .value = BTN_0 }, ++ { .name = "BTN_1", .value = BTN_1 }, ++ { .name = "BTN_2", .value = BTN_2 }, ++ { .name = "BTN_3", .value = BTN_3 }, ++ { .name = "BTN_4", .value = BTN_4 }, ++ { .name = "BTN_5", .value = BTN_5 }, ++ { .name = "BTN_6", .value = BTN_6 }, ++ { .name = "BTN_7", .value = BTN_7 }, ++ { .name = "BTN_8", .value = BTN_8 }, ++ { .name = "BTN_9", .value = BTN_9 }, ++ { .name = "BTN_A", .value = BTN_A }, ++ { .name = "BTN_B", .value = BTN_B }, ++ { .name = "BTN_BACK", .value = BTN_BACK }, ++ { .name = "BTN_BASE", .value = BTN_BASE }, ++ { .name = "BTN_BASE2", .value = BTN_BASE2 }, ++ { .name = "BTN_BASE3", .value = BTN_BASE3 }, ++ { .name = "BTN_BASE4", .value = BTN_BASE4 }, ++ { .name = "BTN_BASE5", .value = BTN_BASE5 }, ++ { .name = "BTN_BASE6", .value = BTN_BASE6 }, ++ { .name = "BTN_C", .value = BTN_C }, ++ { .name = "BTN_DEAD", .value = BTN_DEAD }, ++ { .name = "BTN_DPAD_DOWN", .value = BTN_DPAD_DOWN }, ++ { .name = "BTN_DPAD_LEFT", .value = BTN_DPAD_LEFT }, ++ { .name = "BTN_DPAD_RIGHT", .value = BTN_DPAD_RIGHT }, ++ { .name = "BTN_DPAD_UP", .value = BTN_DPAD_UP }, ++ { .name = "BTN_EAST", .value = BTN_EAST }, ++ { .name = "BTN_EXTRA", .value = BTN_EXTRA }, ++ { .name = "BTN_FORWARD", .value = BTN_FORWARD }, ++ { .name = "BTN_GEAR_DOWN", .value = BTN_GEAR_DOWN }, ++ { .name = "BTN_GEAR_UP", .value = BTN_GEAR_UP }, ++ { .name = "BTN_LEFT", .value = BTN_LEFT }, ++ { .name = "BTN_MIDDLE", .value = BTN_MIDDLE }, ++ { .name = "BTN_MODE", .value = BTN_MODE }, ++ { .name = "BTN_NORTH", .value = BTN_NORTH }, ++ { .name = "BTN_PINKIE", .value = BTN_PINKIE }, ++ { .name = "BTN_RIGHT", .value = BTN_RIGHT }, ++ { .name = "BTN_SELECT", .value = BTN_SELECT }, ++ { .name = "BTN_SIDE", .value = BTN_SIDE }, ++ { .name = "BTN_SOUTH", .value = BTN_SOUTH }, ++ { .name = "BTN_START", .value = BTN_START }, ++ { .name = "BTN_STYLUS", .value = BTN_STYLUS }, ++ { .name = "BTN_STYLUS2", .value = BTN_STYLUS2 }, ++ { .name = "BTN_TASK", .value = BTN_TASK }, ++ { .name = "BTN_THUMB", .value = BTN_THUMB }, ++ { .name = "BTN_THUMB2", .value = BTN_THUMB2 }, ++ { .name = "BTN_THUMBL", .value = BTN_THUMBL }, ++ { .name = "BTN_THUMBR", .value = BTN_THUMBR }, ++ { .name = "BTN_TL", .value = BTN_TL }, ++ { .name = "BTN_TL2", .value = BTN_TL2 }, ++ { .name = "BTN_TOOL_AIRBRUSH", .value = BTN_TOOL_AIRBRUSH }, ++ { .name = "BTN_TOOL_BRUSH", .value = BTN_TOOL_BRUSH }, ++ { .name = "BTN_TOOL_DOUBLETAP", .value = BTN_TOOL_DOUBLETAP }, ++ { .name = "BTN_TOOL_FINGER", .value = BTN_TOOL_FINGER }, ++ { .name = "BTN_TOOL_LENS", .value = BTN_TOOL_LENS }, ++ { .name = "BTN_TOOL_MOUSE", .value = BTN_TOOL_MOUSE }, ++ { .name = "BTN_TOOL_PEN", .value = BTN_TOOL_PEN }, ++ { .name = "BTN_TOOL_PENCIL", .value = BTN_TOOL_PENCIL }, ++ { .name = "BTN_TOOL_QUADTAP", .value = BTN_TOOL_QUADTAP }, ++ { .name = "BTN_TOOL_QUINTTAP", .value = BTN_TOOL_QUINTTAP }, ++ { .name = "BTN_TOOL_RUBBER", .value = BTN_TOOL_RUBBER }, ++ { .name = "BTN_TOOL_TRIPLETAP", .value = BTN_TOOL_TRIPLETAP }, ++ { .name = "BTN_TOP", .value = BTN_TOP }, ++ { .name = "BTN_TOP2", .value = BTN_TOP2 }, ++ { .name = "BTN_TOUCH", .value = BTN_TOUCH }, ++ { .name = "BTN_TR", .value = BTN_TR }, ++ { .name = "BTN_TR2", .value = BTN_TR2 }, ++ { .name = "BTN_TRIGGER", .value = BTN_TRIGGER }, ++ { .name = "BTN_TRIGGER_HAPPY1", .value = BTN_TRIGGER_HAPPY1 }, ++ { .name = "BTN_TRIGGER_HAPPY10", .value = BTN_TRIGGER_HAPPY10 }, ++ { .name = "BTN_TRIGGER_HAPPY11", .value = BTN_TRIGGER_HAPPY11 }, ++ { .name = "BTN_TRIGGER_HAPPY12", .value = BTN_TRIGGER_HAPPY12 }, ++ { .name = "BTN_TRIGGER_HAPPY13", .value = BTN_TRIGGER_HAPPY13 }, ++ { .name = "BTN_TRIGGER_HAPPY14", .value = BTN_TRIGGER_HAPPY14 }, ++ { .name = "BTN_TRIGGER_HAPPY15", .value = BTN_TRIGGER_HAPPY15 }, ++ { .name = "BTN_TRIGGER_HAPPY16", .value = BTN_TRIGGER_HAPPY16 }, ++ { .name = "BTN_TRIGGER_HAPPY17", .value = BTN_TRIGGER_HAPPY17 }, ++ { .name = "BTN_TRIGGER_HAPPY18", .value = BTN_TRIGGER_HAPPY18 }, ++ { .name = "BTN_TRIGGER_HAPPY19", .value = BTN_TRIGGER_HAPPY19 }, ++ { .name = "BTN_TRIGGER_HAPPY2", .value = BTN_TRIGGER_HAPPY2 }, ++ { .name = "BTN_TRIGGER_HAPPY20", .value = BTN_TRIGGER_HAPPY20 }, ++ { .name = "BTN_TRIGGER_HAPPY21", .value = BTN_TRIGGER_HAPPY21 }, ++ { .name = "BTN_TRIGGER_HAPPY22", .value = BTN_TRIGGER_HAPPY22 }, ++ { .name = "BTN_TRIGGER_HAPPY23", .value = BTN_TRIGGER_HAPPY23 }, ++ { .name = "BTN_TRIGGER_HAPPY24", .value = BTN_TRIGGER_HAPPY24 }, ++ { .name = "BTN_TRIGGER_HAPPY25", .value = BTN_TRIGGER_HAPPY25 }, ++ { .name = "BTN_TRIGGER_HAPPY26", .value = BTN_TRIGGER_HAPPY26 }, ++ { .name = "BTN_TRIGGER_HAPPY27", .value = BTN_TRIGGER_HAPPY27 }, ++ { .name = "BTN_TRIGGER_HAPPY28", .value = BTN_TRIGGER_HAPPY28 }, ++ { .name = "BTN_TRIGGER_HAPPY29", .value = BTN_TRIGGER_HAPPY29 }, ++ { .name = "BTN_TRIGGER_HAPPY3", .value = BTN_TRIGGER_HAPPY3 }, ++ { .name = "BTN_TRIGGER_HAPPY30", .value = BTN_TRIGGER_HAPPY30 }, ++ { .name = "BTN_TRIGGER_HAPPY31", .value = BTN_TRIGGER_HAPPY31 }, ++ { .name = "BTN_TRIGGER_HAPPY32", .value = BTN_TRIGGER_HAPPY32 }, ++ { .name = "BTN_TRIGGER_HAPPY33", .value = BTN_TRIGGER_HAPPY33 }, ++ { .name = "BTN_TRIGGER_HAPPY34", .value = BTN_TRIGGER_HAPPY34 }, ++ { .name = "BTN_TRIGGER_HAPPY35", .value = BTN_TRIGGER_HAPPY35 }, ++ { .name = "BTN_TRIGGER_HAPPY36", .value = BTN_TRIGGER_HAPPY36 }, ++ { .name = "BTN_TRIGGER_HAPPY37", .value = BTN_TRIGGER_HAPPY37 }, ++ { .name = "BTN_TRIGGER_HAPPY38", .value = BTN_TRIGGER_HAPPY38 }, ++ { .name = "BTN_TRIGGER_HAPPY39", .value = BTN_TRIGGER_HAPPY39 }, ++ { .name = "BTN_TRIGGER_HAPPY4", .value = BTN_TRIGGER_HAPPY4 }, ++ { .name = "BTN_TRIGGER_HAPPY40", .value = BTN_TRIGGER_HAPPY40 }, ++ { .name = "BTN_TRIGGER_HAPPY5", .value = BTN_TRIGGER_HAPPY5 }, ++ { .name = "BTN_TRIGGER_HAPPY6", .value = BTN_TRIGGER_HAPPY6 }, ++ { .name = "BTN_TRIGGER_HAPPY7", .value = BTN_TRIGGER_HAPPY7 }, ++ { .name = "BTN_TRIGGER_HAPPY8", .value = BTN_TRIGGER_HAPPY8 }, ++ { .name = "BTN_TRIGGER_HAPPY9", .value = BTN_TRIGGER_HAPPY9 }, ++ { .name = "BTN_WEST", .value = BTN_WEST }, ++ { .name = "BTN_X", .value = BTN_X }, ++ { .name = "BTN_Y", .value = BTN_Y }, ++ { .name = "BTN_Z", .value = BTN_Z }, ++ { .name = "FF_AUTOCENTER", .value = FF_AUTOCENTER }, ++ { .name = "FF_CONSTANT", .value = FF_CONSTANT }, ++ { .name = "FF_CUSTOM", .value = FF_CUSTOM }, ++ { .name = "FF_DAMPER", .value = FF_DAMPER }, ++ { .name = "FF_FRICTION", .value = FF_FRICTION }, ++ { .name = "FF_GAIN", .value = FF_GAIN }, ++ { .name = "FF_INERTIA", .value = FF_INERTIA }, ++ { .name = "FF_MAX", .value = FF_MAX }, ++ { .name = "FF_PERIODIC", .value = FF_PERIODIC }, ++ { .name = "FF_RAMP", .value = FF_RAMP }, ++ { .name = "FF_RUMBLE", .value = FF_RUMBLE }, ++ { .name = "FF_SAW_DOWN", .value = FF_SAW_DOWN }, ++ { .name = "FF_SAW_UP", .value = FF_SAW_UP }, ++ { .name = "FF_SINE", .value = FF_SINE }, ++ { .name = "FF_SPRING", .value = FF_SPRING }, ++ { .name = "FF_SQUARE", .value = FF_SQUARE }, ++ { .name = "FF_STATUS_MAX", .value = FF_STATUS_MAX }, ++ { .name = "FF_STATUS_STOPPED", .value = FF_STATUS_STOPPED }, ++ { .name = "FF_TRIANGLE", .value = FF_TRIANGLE }, ++ { .name = "KEY_0", .value = KEY_0 }, ++ { .name = "KEY_1", .value = KEY_1 }, ++ { .name = "KEY_102ND", .value = KEY_102ND }, ++ { .name = "KEY_10CHANNELSDOWN", .value = KEY_10CHANNELSDOWN }, ++ { .name = "KEY_10CHANNELSUP", .value = KEY_10CHANNELSUP }, ++ { .name = "KEY_2", .value = KEY_2 }, ++ { .name = "KEY_3", .value = KEY_3 }, ++ { .name = "KEY_4", .value = KEY_4 }, ++ { .name = "KEY_5", .value = KEY_5 }, ++ { .name = "KEY_6", .value = KEY_6 }, ++ { .name = "KEY_7", .value = KEY_7 }, ++ { .name = "KEY_8", .value = KEY_8 }, ++ { .name = "KEY_9", .value = KEY_9 }, ++ { .name = "KEY_A", .value = KEY_A }, ++ { .name = "KEY_AB", .value = KEY_AB }, ++ { .name = "KEY_ADDRESSBOOK", .value = KEY_ADDRESSBOOK }, ++ { .name = "KEY_AGAIN", .value = KEY_AGAIN }, ++ { .name = "KEY_ALS_TOGGLE", .value = KEY_ALS_TOGGLE }, ++ { .name = "KEY_ALTERASE", .value = KEY_ALTERASE }, ++ { .name = "KEY_ANGLE", .value = KEY_ANGLE }, ++ { .name = "KEY_APOSTROPHE", .value = KEY_APOSTROPHE }, ++ { .name = "KEY_APPSELECT", .value = KEY_APPSELECT }, ++ { .name = "KEY_ARCHIVE", .value = KEY_ARCHIVE }, ++ { .name = "KEY_ATTENDANT_OFF", .value = KEY_ATTENDANT_OFF }, ++ { .name = "KEY_ATTENDANT_ON", .value = KEY_ATTENDANT_ON }, ++ { .name = "KEY_ATTENDANT_TOGGLE", .value = KEY_ATTENDANT_TOGGLE }, ++ { .name = "KEY_AUDIO", .value = KEY_AUDIO }, ++ { .name = "KEY_AUX", .value = KEY_AUX }, ++ { .name = "KEY_B", .value = KEY_B }, ++ { .name = "KEY_BACK", .value = KEY_BACK }, ++ { .name = "KEY_BACKSLASH", .value = KEY_BACKSLASH }, ++ { .name = "KEY_BACKSPACE", .value = KEY_BACKSPACE }, ++ { .name = "KEY_BASSBOOST", .value = KEY_BASSBOOST }, ++ { .name = "KEY_BATTERY", .value = KEY_BATTERY }, ++ { .name = "KEY_BLUE", .value = KEY_BLUE }, ++ { .name = "KEY_BLUETOOTH", .value = KEY_BLUETOOTH }, ++ { .name = "KEY_BOOKMARKS", .value = KEY_BOOKMARKS }, ++ { .name = "KEY_BREAK", .value = KEY_BREAK }, ++ { .name = "KEY_BRIGHTNESSDOWN", .value = KEY_BRIGHTNESSDOWN }, ++ { .name = "KEY_BRIGHTNESSUP", .value = KEY_BRIGHTNESSUP }, ++ { .name = "KEY_BRIGHTNESS_AUTO", .value = KEY_BRIGHTNESS_AUTO }, ++ { .name = "KEY_BRIGHTNESS_CYCLE", .value = KEY_BRIGHTNESS_CYCLE }, ++ { .name = "KEY_BRIGHTNESS_MAX", .value = KEY_BRIGHTNESS_MAX }, ++ { .name = "KEY_BRIGHTNESS_MIN", .value = KEY_BRIGHTNESS_MIN }, ++ { .name = "KEY_BRL_DOT1", .value = KEY_BRL_DOT1 }, ++ { .name = "KEY_BRL_DOT10", .value = KEY_BRL_DOT10 }, ++ { .name = "KEY_BRL_DOT2", .value = KEY_BRL_DOT2 }, ++ { .name = "KEY_BRL_DOT3", .value = KEY_BRL_DOT3 }, ++ { .name = "KEY_BRL_DOT4", .value = KEY_BRL_DOT4 }, ++ { .name = "KEY_BRL_DOT5", .value = KEY_BRL_DOT5 }, ++ { .name = "KEY_BRL_DOT6", .value = KEY_BRL_DOT6 }, ++ { .name = "KEY_BRL_DOT7", .value = KEY_BRL_DOT7 }, ++ { .name = "KEY_BRL_DOT8", .value = KEY_BRL_DOT8 }, ++ { .name = "KEY_BRL_DOT9", .value = KEY_BRL_DOT9 }, ++ { .name = "KEY_BUTTONCONFIG", .value = KEY_BUTTONCONFIG }, ++ { .name = "KEY_C", .value = KEY_C }, ++ { .name = "KEY_CALC", .value = KEY_CALC }, ++ { .name = "KEY_CALENDAR", .value = KEY_CALENDAR }, ++ { .name = "KEY_CAMERA", .value = KEY_CAMERA }, ++ { .name = "KEY_CAMERA_DOWN", .value = KEY_CAMERA_DOWN }, ++ { .name = "KEY_CAMERA_FOCUS", .value = KEY_CAMERA_FOCUS }, ++ { .name = "KEY_CAMERA_LEFT", .value = KEY_CAMERA_LEFT }, ++ { .name = "KEY_CAMERA_RIGHT", .value = KEY_CAMERA_RIGHT }, ++ { .name = "KEY_CAMERA_UP", .value = KEY_CAMERA_UP }, ++ { .name = "KEY_CAMERA_ZOOMIN", .value = KEY_CAMERA_ZOOMIN }, ++ { .name = "KEY_CAMERA_ZOOMOUT", .value = KEY_CAMERA_ZOOMOUT }, ++ { .name = "KEY_CANCEL", .value = KEY_CANCEL }, ++ { .name = "KEY_CAPSLOCK", .value = KEY_CAPSLOCK }, ++ { .name = "KEY_CD", .value = KEY_CD }, ++ { .name = "KEY_CHANNEL", .value = KEY_CHANNEL }, ++ { .name = "KEY_CHANNELDOWN", .value = KEY_CHANNELDOWN }, ++ { .name = "KEY_CHANNELUP", .value = KEY_CHANNELUP }, ++ { .name = "KEY_CHAT", .value = KEY_CHAT }, ++ { .name = "KEY_CLEAR", .value = KEY_CLEAR }, ++ { .name = "KEY_CLOSE", .value = KEY_CLOSE }, ++ { .name = "KEY_CLOSECD", .value = KEY_CLOSECD }, ++ { .name = "KEY_COFFEE", .value = KEY_COFFEE }, ++ { .name = "KEY_COMMA", .value = KEY_COMMA }, ++ { .name = "KEY_COMPOSE", .value = KEY_COMPOSE }, ++ { .name = "KEY_COMPUTER", .value = KEY_COMPUTER }, ++ { .name = "KEY_CONFIG", .value = KEY_CONFIG }, ++ { .name = "KEY_CONNECT", .value = KEY_CONNECT }, ++ { .name = "KEY_CONTEXT_MENU", .value = KEY_CONTEXT_MENU }, ++ { .name = "KEY_CONTROLPANEL", .value = KEY_CONTROLPANEL }, ++ { .name = "KEY_COPY", .value = KEY_COPY }, ++ { .name = "KEY_CUT", .value = KEY_CUT }, ++ { .name = "KEY_CYCLEWINDOWS", .value = KEY_CYCLEWINDOWS }, ++ { .name = "KEY_D", .value = KEY_D }, ++ { .name = "KEY_DASHBOARD", .value = KEY_DASHBOARD }, ++ { .name = "KEY_DATABASE", .value = KEY_DATABASE }, ++ { .name = "KEY_DELETE", .value = KEY_DELETE }, ++ { .name = "KEY_DELETEFILE", .value = KEY_DELETEFILE }, ++ { .name = "KEY_DEL_EOL", .value = KEY_DEL_EOL }, ++ { .name = "KEY_DEL_EOS", .value = KEY_DEL_EOS }, ++ { .name = "KEY_DEL_LINE", .value = KEY_DEL_LINE }, ++ { .name = "KEY_DIGITS", .value = KEY_DIGITS }, ++ { .name = "KEY_DIRECTORY", .value = KEY_DIRECTORY }, ++ { .name = "KEY_DISPLAYTOGGLE", .value = KEY_DISPLAYTOGGLE }, ++ { .name = "KEY_DISPLAY_OFF", .value = KEY_DISPLAY_OFF }, ++ { .name = "KEY_DOCUMENTS", .value = KEY_DOCUMENTS }, ++ { .name = "KEY_DOLLAR", .value = KEY_DOLLAR }, ++ { .name = "KEY_DOT", .value = KEY_DOT }, ++ { .name = "KEY_DOWN", .value = KEY_DOWN }, ++ { .name = "KEY_DVD", .value = KEY_DVD }, ++ { .name = "KEY_E", .value = KEY_E }, ++ { .name = "KEY_EDIT", .value = KEY_EDIT }, ++ { .name = "KEY_EDITOR", .value = KEY_EDITOR }, ++ { .name = "KEY_EJECTCD", .value = KEY_EJECTCD }, ++ { .name = "KEY_EJECTCLOSECD", .value = KEY_EJECTCLOSECD }, ++ { .name = "KEY_EMAIL", .value = KEY_EMAIL }, ++ { .name = "KEY_END", .value = KEY_END }, ++ { .name = "KEY_ENTER", .value = KEY_ENTER }, ++ { .name = "KEY_EPG", .value = KEY_EPG }, ++ { .name = "KEY_EQUAL", .value = KEY_EQUAL }, ++ { .name = "KEY_ESC", .value = KEY_ESC }, ++ { .name = "KEY_EURO", .value = KEY_EURO }, ++ { .name = "KEY_EXIT", .value = KEY_EXIT }, ++ { .name = "KEY_F", .value = KEY_F }, ++ { .name = "KEY_F1", .value = KEY_F1 }, ++ { .name = "KEY_F10", .value = KEY_F10 }, ++ { .name = "KEY_F11", .value = KEY_F11 }, ++ { .name = "KEY_F12", .value = KEY_F12 }, ++ { .name = "KEY_F13", .value = KEY_F13 }, ++ { .name = "KEY_F14", .value = KEY_F14 }, ++ { .name = "KEY_F15", .value = KEY_F15 }, ++ { .name = "KEY_F16", .value = KEY_F16 }, ++ { .name = "KEY_F17", .value = KEY_F17 }, ++ { .name = "KEY_F18", .value = KEY_F18 }, ++ { .name = "KEY_F19", .value = KEY_F19 }, ++ { .name = "KEY_F2", .value = KEY_F2 }, ++ { .name = "KEY_F20", .value = KEY_F20 }, ++ { .name = "KEY_F21", .value = KEY_F21 }, ++ { .name = "KEY_F22", .value = KEY_F22 }, ++ { .name = "KEY_F23", .value = KEY_F23 }, ++ { .name = "KEY_F24", .value = KEY_F24 }, ++ { .name = "KEY_F3", .value = KEY_F3 }, ++ { .name = "KEY_F4", .value = KEY_F4 }, ++ { .name = "KEY_F5", .value = KEY_F5 }, ++ { .name = "KEY_F6", .value = KEY_F6 }, ++ { .name = "KEY_F7", .value = KEY_F7 }, ++ { .name = "KEY_F8", .value = KEY_F8 }, ++ { .name = "KEY_F9", .value = KEY_F9 }, ++ { .name = "KEY_FASTFORWARD", .value = KEY_FASTFORWARD }, ++ { .name = "KEY_FAVORITES", .value = KEY_FAVORITES }, ++ { .name = "KEY_FILE", .value = KEY_FILE }, ++ { .name = "KEY_FINANCE", .value = KEY_FINANCE }, ++ { .name = "KEY_FIND", .value = KEY_FIND }, ++ { .name = "KEY_FIRST", .value = KEY_FIRST }, ++ { .name = "KEY_FN", .value = KEY_FN }, ++ { .name = "KEY_FN_1", .value = KEY_FN_1 }, ++ { .name = "KEY_FN_2", .value = KEY_FN_2 }, ++ { .name = "KEY_FN_B", .value = KEY_FN_B }, ++ { .name = "KEY_FN_D", .value = KEY_FN_D }, ++ { .name = "KEY_FN_E", .value = KEY_FN_E }, ++ { .name = "KEY_FN_ESC", .value = KEY_FN_ESC }, ++ { .name = "KEY_FN_F", .value = KEY_FN_F }, ++ { .name = "KEY_FN_F1", .value = KEY_FN_F1 }, ++ { .name = "KEY_FN_F10", .value = KEY_FN_F10 }, ++ { .name = "KEY_FN_F11", .value = KEY_FN_F11 }, ++ { .name = "KEY_FN_F12", .value = KEY_FN_F12 }, ++ { .name = "KEY_FN_F2", .value = KEY_FN_F2 }, ++ { .name = "KEY_FN_F3", .value = KEY_FN_F3 }, ++ { .name = "KEY_FN_F4", .value = KEY_FN_F4 }, ++ { .name = "KEY_FN_F5", .value = KEY_FN_F5 }, ++ { .name = "KEY_FN_F6", .value = KEY_FN_F6 }, ++ { .name = "KEY_FN_F7", .value = KEY_FN_F7 }, ++ { .name = "KEY_FN_F8", .value = KEY_FN_F8 }, ++ { .name = "KEY_FN_F9", .value = KEY_FN_F9 }, ++ { .name = "KEY_FN_S", .value = KEY_FN_S }, ++ { .name = "KEY_FORWARD", .value = KEY_FORWARD }, ++ { .name = "KEY_FORWARDMAIL", .value = KEY_FORWARDMAIL }, ++ { .name = "KEY_FRAMEBACK", .value = KEY_FRAMEBACK }, ++ { .name = "KEY_FRAMEFORWARD", .value = KEY_FRAMEFORWARD }, ++ { .name = "KEY_FRONT", .value = KEY_FRONT }, ++ { .name = "KEY_G", .value = KEY_G }, ++ { .name = "KEY_GAMES", .value = KEY_GAMES }, ++ { .name = "KEY_GOTO", .value = KEY_GOTO }, ++ { .name = "KEY_GRAPHICSEDITOR", .value = KEY_GRAPHICSEDITOR }, ++ { .name = "KEY_GRAVE", .value = KEY_GRAVE }, ++ { .name = "KEY_GREEN", .value = KEY_GREEN }, ++ { .name = "KEY_H", .value = KEY_H }, ++ { .name = "KEY_HANGEUL", .value = KEY_HANGEUL }, ++ { .name = "KEY_HANJA", .value = KEY_HANJA }, ++ { .name = "KEY_HELP", .value = KEY_HELP }, ++ { .name = "KEY_HENKAN", .value = KEY_HENKAN }, ++ { .name = "KEY_HIRAGANA", .value = KEY_HIRAGANA }, ++ { .name = "KEY_HOME", .value = KEY_HOME }, ++ { .name = "KEY_HOMEPAGE", .value = KEY_HOMEPAGE }, ++ { .name = "KEY_HP", .value = KEY_HP }, ++ { .name = "KEY_I", .value = KEY_I }, ++ { .name = "KEY_IMAGES", .value = KEY_IMAGES }, ++ { .name = "KEY_INFO", .value = KEY_INFO }, ++ { .name = "KEY_INSERT", .value = KEY_INSERT }, ++ { .name = "KEY_INS_LINE", .value = KEY_INS_LINE }, ++ { .name = "KEY_ISO", .value = KEY_ISO }, ++ { .name = "KEY_J", .value = KEY_J }, ++ { .name = "KEY_JOURNAL", .value = KEY_JOURNAL }, ++ { .name = "KEY_K", .value = KEY_K }, ++ { .name = "KEY_KATAKANA", .value = KEY_KATAKANA }, ++ { .name = "KEY_KATAKANAHIRAGANA", .value = KEY_KATAKANAHIRAGANA }, ++ { .name = "KEY_KBDILLUMDOWN", .value = KEY_KBDILLUMDOWN }, ++ { .name = "KEY_KBDILLUMTOGGLE", .value = KEY_KBDILLUMTOGGLE }, ++ { .name = "KEY_KBDILLUMUP", .value = KEY_KBDILLUMUP }, ++ { .name = "KEY_KBDINPUTASSIST_ACCEPT", .value = KEY_KBDINPUTASSIST_ACCEPT }, ++ { .name = "KEY_KBDINPUTASSIST_CANCEL", .value = KEY_KBDINPUTASSIST_CANCEL }, ++ { .name = "KEY_KBDINPUTASSIST_NEXT", .value = KEY_KBDINPUTASSIST_NEXT }, ++ { .name = "KEY_KBDINPUTASSIST_NEXTGROUP", .value = KEY_KBDINPUTASSIST_NEXTGROUP }, ++ { .name = "KEY_KBDINPUTASSIST_PREV", .value = KEY_KBDINPUTASSIST_PREV }, ++ { .name = "KEY_KBDINPUTASSIST_PREVGROUP", .value = KEY_KBDINPUTASSIST_PREVGROUP }, ++ { .name = "KEY_KEYBOARD", .value = KEY_KEYBOARD }, ++ { .name = "KEY_KP0", .value = KEY_KP0 }, ++ { .name = "KEY_KP1", .value = KEY_KP1 }, ++ { .name = "KEY_KP2", .value = KEY_KP2 }, ++ { .name = "KEY_KP3", .value = KEY_KP3 }, ++ { .name = "KEY_KP4", .value = KEY_KP4 }, ++ { .name = "KEY_KP5", .value = KEY_KP5 }, ++ { .name = "KEY_KP6", .value = KEY_KP6 }, ++ { .name = "KEY_KP7", .value = KEY_KP7 }, ++ { .name = "KEY_KP8", .value = KEY_KP8 }, ++ { .name = "KEY_KP9", .value = KEY_KP9 }, ++ { .name = "KEY_KPASTERISK", .value = KEY_KPASTERISK }, ++ { .name = "KEY_KPCOMMA", .value = KEY_KPCOMMA }, ++ { .name = "KEY_KPDOT", .value = KEY_KPDOT }, ++ { .name = "KEY_KPENTER", .value = KEY_KPENTER }, ++ { .name = "KEY_KPEQUAL", .value = KEY_KPEQUAL }, ++ { .name = "KEY_KPJPCOMMA", .value = KEY_KPJPCOMMA }, ++ { .name = "KEY_KPLEFTPAREN", .value = KEY_KPLEFTPAREN }, ++ { .name = "KEY_KPMINUS", .value = KEY_KPMINUS }, ++ { .name = "KEY_KPPLUS", .value = KEY_KPPLUS }, ++ { .name = "KEY_KPPLUSMINUS", .value = KEY_KPPLUSMINUS }, ++ { .name = "KEY_KPRIGHTPAREN", .value = KEY_KPRIGHTPAREN }, ++ { .name = "KEY_KPSLASH", .value = KEY_KPSLASH }, ++ { .name = "KEY_L", .value = KEY_L }, ++ { .name = "KEY_LANGUAGE", .value = KEY_LANGUAGE }, ++ { .name = "KEY_LAST", .value = KEY_LAST }, ++ { .name = "KEY_LEFT", .value = KEY_LEFT }, ++ { .name = "KEY_LEFTALT", .value = KEY_LEFTALT }, ++ { .name = "KEY_LEFTBRACE", .value = KEY_LEFTBRACE }, ++ { .name = "KEY_LEFTCTRL", .value = KEY_LEFTCTRL }, ++ { .name = "KEY_LEFTMETA", .value = KEY_LEFTMETA }, ++ { .name = "KEY_LEFTSHIFT", .value = KEY_LEFTSHIFT }, ++ { .name = "KEY_LIGHTS_TOGGLE", .value = KEY_LIGHTS_TOGGLE }, ++ { .name = "KEY_LINEFEED", .value = KEY_LINEFEED }, ++ { .name = "KEY_LIST", .value = KEY_LIST }, ++ { .name = "KEY_LOGOFF", .value = KEY_LOGOFF }, ++ { .name = "KEY_M", .value = KEY_M }, ++ { .name = "KEY_MACRO", .value = KEY_MACRO }, ++ { .name = "KEY_MAIL", .value = KEY_MAIL }, ++ { .name = "KEY_MAX", .value = KEY_MAX }, ++ { .name = "KEY_MEDIA", .value = KEY_MEDIA }, ++ { .name = "KEY_MEDIA_REPEAT", .value = KEY_MEDIA_REPEAT }, ++ { .name = "KEY_MEMO", .value = KEY_MEMO }, ++ { .name = "KEY_MENU", .value = KEY_MENU }, ++ { .name = "KEY_MESSENGER", .value = KEY_MESSENGER }, ++ { .name = "KEY_MHP", .value = KEY_MHP }, ++ { .name = "KEY_MICMUTE", .value = KEY_MICMUTE }, ++ { .name = "KEY_MINUS", .value = KEY_MINUS }, ++ { .name = "KEY_MODE", .value = KEY_MODE }, ++ { .name = "KEY_MOVE", .value = KEY_MOVE }, ++ { .name = "KEY_MP3", .value = KEY_MP3 }, ++ { .name = "KEY_MSDOS", .value = KEY_MSDOS }, ++ { .name = "KEY_MUHENKAN", .value = KEY_MUHENKAN }, ++ { .name = "KEY_MUTE", .value = KEY_MUTE }, ++ { .name = "KEY_N", .value = KEY_N }, ++ { .name = "KEY_NEW", .value = KEY_NEW }, ++ { .name = "KEY_NEWS", .value = KEY_NEWS }, ++ { .name = "KEY_NEXT", .value = KEY_NEXT }, ++ { .name = "KEY_NEXTSONG", .value = KEY_NEXTSONG }, ++ { .name = "KEY_NUMERIC_0", .value = KEY_NUMERIC_0 }, ++ { .name = "KEY_NUMERIC_1", .value = KEY_NUMERIC_1 }, ++ { .name = "KEY_NUMERIC_2", .value = KEY_NUMERIC_2 }, ++ { .name = "KEY_NUMERIC_3", .value = KEY_NUMERIC_3 }, ++ { .name = "KEY_NUMERIC_4", .value = KEY_NUMERIC_4 }, ++ { .name = "KEY_NUMERIC_5", .value = KEY_NUMERIC_5 }, ++ { .name = "KEY_NUMERIC_6", .value = KEY_NUMERIC_6 }, ++ { .name = "KEY_NUMERIC_7", .value = KEY_NUMERIC_7 }, ++ { .name = "KEY_NUMERIC_8", .value = KEY_NUMERIC_8 }, ++ { .name = "KEY_NUMERIC_9", .value = KEY_NUMERIC_9 }, ++ { .name = "KEY_NUMERIC_A", .value = KEY_NUMERIC_A }, ++ { .name = "KEY_NUMERIC_B", .value = KEY_NUMERIC_B }, ++ { .name = "KEY_NUMERIC_C", .value = KEY_NUMERIC_C }, ++ { .name = "KEY_NUMERIC_D", .value = KEY_NUMERIC_D }, ++ { .name = "KEY_NUMERIC_POUND", .value = KEY_NUMERIC_POUND }, ++ { .name = "KEY_NUMERIC_STAR", .value = KEY_NUMERIC_STAR }, ++ { .name = "KEY_NUMLOCK", .value = KEY_NUMLOCK }, ++ { .name = "KEY_O", .value = KEY_O }, ++ { .name = "KEY_OK", .value = KEY_OK }, ++ { .name = "KEY_OPEN", .value = KEY_OPEN }, ++ { .name = "KEY_OPTION", .value = KEY_OPTION }, ++ { .name = "KEY_P", .value = KEY_P }, ++ { .name = "KEY_PAGEDOWN", .value = KEY_PAGEDOWN }, ++ { .name = "KEY_PAGEUP", .value = KEY_PAGEUP }, ++ { .name = "KEY_PASTE", .value = KEY_PASTE }, ++ { .name = "KEY_PAUSE", .value = KEY_PAUSE }, ++ { .name = "KEY_PAUSECD", .value = KEY_PAUSECD }, ++ { .name = "KEY_PC", .value = KEY_PC }, ++ { .name = "KEY_PHONE", .value = KEY_PHONE }, ++ { .name = "KEY_PLAY", .value = KEY_PLAY }, ++ { .name = "KEY_PLAYCD", .value = KEY_PLAYCD }, ++ { .name = "KEY_PLAYER", .value = KEY_PLAYER }, ++ { .name = "KEY_PLAYPAUSE", .value = KEY_PLAYPAUSE }, ++ { .name = "KEY_POWER", .value = KEY_POWER }, ++ { .name = "KEY_POWER2", .value = KEY_POWER2 }, ++ { .name = "KEY_PRESENTATION", .value = KEY_PRESENTATION }, ++ { .name = "KEY_PREVIOUS", .value = KEY_PREVIOUS }, ++ { .name = "KEY_PREVIOUSSONG", .value = KEY_PREVIOUSSONG }, ++ { .name = "KEY_PRINT", .value = KEY_PRINT }, ++ { .name = "KEY_PROG1", .value = KEY_PROG1 }, ++ { .name = "KEY_PROG2", .value = KEY_PROG2 }, ++ { .name = "KEY_PROG3", .value = KEY_PROG3 }, ++ { .name = "KEY_PROG4", .value = KEY_PROG4 }, ++ { .name = "KEY_PROGRAM", .value = KEY_PROGRAM }, ++ { .name = "KEY_PROPS", .value = KEY_PROPS }, ++ { .name = "KEY_PVR", .value = KEY_PVR }, ++ { .name = "KEY_Q", .value = KEY_Q }, ++ { .name = "KEY_QUESTION", .value = KEY_QUESTION }, ++ { .name = "KEY_R", .value = KEY_R }, ++ { .name = "KEY_RADIO", .value = KEY_RADIO }, ++ { .name = "KEY_RECORD", .value = KEY_RECORD }, ++ { .name = "KEY_RED", .value = KEY_RED }, ++ { .name = "KEY_REDO", .value = KEY_REDO }, ++ { .name = "KEY_REFRESH", .value = KEY_REFRESH }, ++ { .name = "KEY_REPLY", .value = KEY_REPLY }, ++ { .name = "KEY_RESERVED", .value = KEY_RESERVED }, ++ { .name = "KEY_RESTART", .value = KEY_RESTART }, ++ { .name = "KEY_REWIND", .value = KEY_REWIND }, ++ { .name = "KEY_RFKILL", .value = KEY_RFKILL }, ++ { .name = "KEY_RIGHT", .value = KEY_RIGHT }, ++ { .name = "KEY_RIGHTALT", .value = KEY_RIGHTALT }, ++ { .name = "KEY_RIGHTBRACE", .value = KEY_RIGHTBRACE }, ++ { .name = "KEY_RIGHTCTRL", .value = KEY_RIGHTCTRL }, ++ { .name = "KEY_RIGHTMETA", .value = KEY_RIGHTMETA }, ++ { .name = "KEY_RIGHTSHIFT", .value = KEY_RIGHTSHIFT }, ++ { .name = "KEY_RO", .value = KEY_RO }, ++ { .name = "KEY_ROTATE_DISPLAY", .value = KEY_ROTATE_DISPLAY }, ++ { .name = "KEY_S", .value = KEY_S }, ++ { .name = "KEY_SAT", .value = KEY_SAT }, ++ { .name = "KEY_SAT2", .value = KEY_SAT2 }, ++ { .name = "KEY_SAVE", .value = KEY_SAVE }, ++ { .name = "KEY_SCALE", .value = KEY_SCALE }, ++ { .name = "KEY_SCREEN", .value = KEY_SCREEN }, ++ { .name = "KEY_SCREENSAVER", .value = KEY_SCREENSAVER }, ++ { .name = "KEY_SCROLLDOWN", .value = KEY_SCROLLDOWN }, ++ { .name = "KEY_SCROLLLOCK", .value = KEY_SCROLLLOCK }, ++ { .name = "KEY_SCROLLUP", .value = KEY_SCROLLUP }, ++ { .name = "KEY_SEARCH", .value = KEY_SEARCH }, ++ { .name = "KEY_SELECT", .value = KEY_SELECT }, ++ { .name = "KEY_SEMICOLON", .value = KEY_SEMICOLON }, ++ { .name = "KEY_SEND", .value = KEY_SEND }, ++ { .name = "KEY_SENDFILE", .value = KEY_SENDFILE }, ++ { .name = "KEY_SETUP", .value = KEY_SETUP }, ++ { .name = "KEY_SHOP", .value = KEY_SHOP }, ++ { .name = "KEY_SHUFFLE", .value = KEY_SHUFFLE }, ++ { .name = "KEY_SLASH", .value = KEY_SLASH }, ++ { .name = "KEY_SLEEP", .value = KEY_SLEEP }, ++ { .name = "KEY_SLOW", .value = KEY_SLOW }, ++ { .name = "KEY_SOUND", .value = KEY_SOUND }, ++ { .name = "KEY_SPACE", .value = KEY_SPACE }, ++ { .name = "KEY_SPELLCHECK", .value = KEY_SPELLCHECK }, ++ { .name = "KEY_SPORT", .value = KEY_SPORT }, ++ { .name = "KEY_SPREADSHEET", .value = KEY_SPREADSHEET }, ++ { .name = "KEY_STOP", .value = KEY_STOP }, ++ { .name = "KEY_STOPCD", .value = KEY_STOPCD }, ++ { .name = "KEY_SUBTITLE", .value = KEY_SUBTITLE }, ++ { .name = "KEY_SUSPEND", .value = KEY_SUSPEND }, ++ { .name = "KEY_SWITCHVIDEOMODE", .value = KEY_SWITCHVIDEOMODE }, ++ { .name = "KEY_SYSRQ", .value = KEY_SYSRQ }, ++ { .name = "KEY_T", .value = KEY_T }, ++ { .name = "KEY_TAB", .value = KEY_TAB }, ++ { .name = "KEY_TAPE", .value = KEY_TAPE }, ++ { .name = "KEY_TASKMANAGER", .value = KEY_TASKMANAGER }, ++ { .name = "KEY_TEEN", .value = KEY_TEEN }, ++ { .name = "KEY_TEXT", .value = KEY_TEXT }, ++ { .name = "KEY_TIME", .value = KEY_TIME }, ++ { .name = "KEY_TITLE", .value = KEY_TITLE }, ++ { .name = "KEY_TOUCHPAD_OFF", .value = KEY_TOUCHPAD_OFF }, ++ { .name = "KEY_TOUCHPAD_ON", .value = KEY_TOUCHPAD_ON }, ++ { .name = "KEY_TOUCHPAD_TOGGLE", .value = KEY_TOUCHPAD_TOGGLE }, ++ { .name = "KEY_TUNER", .value = KEY_TUNER }, ++ { .name = "KEY_TV", .value = KEY_TV }, ++ { .name = "KEY_TV2", .value = KEY_TV2 }, ++ { .name = "KEY_TWEN", .value = KEY_TWEN }, ++ { .name = "KEY_U", .value = KEY_U }, ++ { .name = "KEY_UNDO", .value = KEY_UNDO }, ++ { .name = "KEY_UNKNOWN", .value = KEY_UNKNOWN }, ++ { .name = "KEY_UP", .value = KEY_UP }, ++ { .name = "KEY_UWB", .value = KEY_UWB }, ++ { .name = "KEY_V", .value = KEY_V }, ++ { .name = "KEY_VCR", .value = KEY_VCR }, ++ { .name = "KEY_VCR2", .value = KEY_VCR2 }, ++ { .name = "KEY_VENDOR", .value = KEY_VENDOR }, ++ { .name = "KEY_VIDEO", .value = KEY_VIDEO }, ++ { .name = "KEY_VIDEOPHONE", .value = KEY_VIDEOPHONE }, ++ { .name = "KEY_VIDEO_NEXT", .value = KEY_VIDEO_NEXT }, ++ { .name = "KEY_VIDEO_PREV", .value = KEY_VIDEO_PREV }, ++ { .name = "KEY_VOICECOMMAND", .value = KEY_VOICECOMMAND }, ++ { .name = "KEY_VOICEMAIL", .value = KEY_VOICEMAIL }, ++ { .name = "KEY_VOLUMEDOWN", .value = KEY_VOLUMEDOWN }, ++ { .name = "KEY_VOLUMEUP", .value = KEY_VOLUMEUP }, ++ { .name = "KEY_W", .value = KEY_W }, ++ { .name = "KEY_WAKEUP", .value = KEY_WAKEUP }, ++ { .name = "KEY_WLAN", .value = KEY_WLAN }, ++ { .name = "KEY_WORDPROCESSOR", .value = KEY_WORDPROCESSOR }, ++ { .name = "KEY_WPS_BUTTON", .value = KEY_WPS_BUTTON }, ++ { .name = "KEY_WWAN", .value = KEY_WWAN }, ++ { .name = "KEY_WWW", .value = KEY_WWW }, ++ { .name = "KEY_X", .value = KEY_X }, ++ { .name = "KEY_XFER", .value = KEY_XFER }, ++ { .name = "KEY_Y", .value = KEY_Y }, ++ { .name = "KEY_YELLOW", .value = KEY_YELLOW }, ++ { .name = "KEY_YEN", .value = KEY_YEN }, ++ { .name = "KEY_Z", .value = KEY_Z }, ++ { .name = "KEY_ZENKAKUHANKAKU", .value = KEY_ZENKAKUHANKAKU }, ++ { .name = "KEY_ZOOM", .value = KEY_ZOOM }, ++ { .name = "KEY_ZOOMIN", .value = KEY_ZOOMIN }, ++ { .name = "KEY_ZOOMOUT", .value = KEY_ZOOMOUT }, ++ { .name = "KEY_ZOOMRESET", .value = KEY_ZOOMRESET }, ++ { .name = "LED_CAPSL", .value = LED_CAPSL }, ++ { .name = "LED_CHARGING", .value = LED_CHARGING }, ++ { .name = "LED_COMPOSE", .value = LED_COMPOSE }, ++ { .name = "LED_KANA", .value = LED_KANA }, ++ { .name = "LED_MAIL", .value = LED_MAIL }, ++ { .name = "LED_MAX", .value = LED_MAX }, ++ { .name = "LED_MISC", .value = LED_MISC }, ++ { .name = "LED_MUTE", .value = LED_MUTE }, ++ { .name = "LED_NUML", .value = LED_NUML }, ++ { .name = "LED_SCROLLL", .value = LED_SCROLLL }, ++ { .name = "LED_SLEEP", .value = LED_SLEEP }, ++ { .name = "LED_SUSPEND", .value = LED_SUSPEND }, ++ { .name = "MSC_GESTURE", .value = MSC_GESTURE }, ++ { .name = "MSC_MAX", .value = MSC_MAX }, ++ { .name = "MSC_PULSELED", .value = MSC_PULSELED }, ++ { .name = "MSC_RAW", .value = MSC_RAW }, ++ { .name = "MSC_SCAN", .value = MSC_SCAN }, ++ { .name = "MSC_SERIAL", .value = MSC_SERIAL }, ++ { .name = "MSC_TIMESTAMP", .value = MSC_TIMESTAMP }, ++ { .name = "REL_DIAL", .value = REL_DIAL }, ++ { .name = "REL_HWHEEL", .value = REL_HWHEEL }, ++ { .name = "REL_MAX", .value = REL_MAX }, ++ { .name = "REL_MISC", .value = REL_MISC }, ++ { .name = "REL_RX", .value = REL_RX }, ++ { .name = "REL_RY", .value = REL_RY }, ++ { .name = "REL_RZ", .value = REL_RZ }, ++ { .name = "REL_WHEEL", .value = REL_WHEEL }, ++ { .name = "REL_X", .value = REL_X }, ++ { .name = "REL_Y", .value = REL_Y }, ++ { .name = "REL_Z", .value = REL_Z }, ++ { .name = "REP_DELAY", .value = REP_DELAY }, ++ { .name = "REP_MAX", .value = REP_MAX }, ++ { .name = "SND_BELL", .value = SND_BELL }, ++ { .name = "SND_CLICK", .value = SND_CLICK }, ++ { .name = "SND_MAX", .value = SND_MAX }, ++ { .name = "SND_TONE", .value = SND_TONE }, ++ { .name = "SW_CAMERA_LENS_COVER", .value = SW_CAMERA_LENS_COVER }, ++ { .name = "SW_DOCK", .value = SW_DOCK }, ++ { .name = "SW_FRONT_PROXIMITY", .value = SW_FRONT_PROXIMITY }, ++ { .name = "SW_HEADPHONE_INSERT", .value = SW_HEADPHONE_INSERT }, ++ { .name = "SW_JACK_PHYSICAL_INSERT", .value = SW_JACK_PHYSICAL_INSERT }, ++ { .name = "SW_KEYPAD_SLIDE", .value = SW_KEYPAD_SLIDE }, ++ { .name = "SW_LID", .value = SW_LID }, ++ { .name = "SW_LINEIN_INSERT", .value = SW_LINEIN_INSERT }, ++ { .name = "SW_LINEOUT_INSERT", .value = SW_LINEOUT_INSERT }, ++ { .name = "SW_MAX", .value = SW_MAX }, ++ { .name = "SW_MICROPHONE_INSERT", .value = SW_MICROPHONE_INSERT }, ++ { .name = "SW_MUTE_DEVICE", .value = SW_MUTE_DEVICE }, ++ { .name = "SW_RFKILL_ALL", .value = SW_RFKILL_ALL }, ++ { .name = "SW_ROTATE_LOCK", .value = SW_ROTATE_LOCK }, ++ { .name = "SW_TABLET_MODE", .value = SW_TABLET_MODE }, ++ { .name = "SW_VIDEOOUT_INSERT", .value = SW_VIDEOOUT_INSERT }, ++ { .name = "SYN_CONFIG", .value = SYN_CONFIG }, ++ { .name = "SYN_DROPPED", .value = SYN_DROPPED }, ++ { .name = "SYN_MAX", .value = SYN_MAX }, ++ { .name = "SYN_MT_REPORT", .value = SYN_MT_REPORT }, ++ { .name = "SYN_REPORT", .value = SYN_REPORT }, ++}; ++ ++static const struct name_entry prop_names[] = { ++ { .name = "INPUT_PROP_ACCELEROMETER", .value = INPUT_PROP_ACCELEROMETER }, ++ { .name = "INPUT_PROP_BUTTONPAD", .value = INPUT_PROP_BUTTONPAD }, ++ { .name = "INPUT_PROP_DIRECT", .value = INPUT_PROP_DIRECT }, ++ { .name = "INPUT_PROP_MAX", .value = INPUT_PROP_MAX }, ++ { .name = "INPUT_PROP_POINTER", .value = INPUT_PROP_POINTER }, ++ { .name = "INPUT_PROP_POINTING_STICK", .value = INPUT_PROP_POINTING_STICK }, ++ { .name = "INPUT_PROP_SEMI_MT", .value = INPUT_PROP_SEMI_MT }, ++ { .name = "INPUT_PROP_TOPBUTTONPAD", .value = INPUT_PROP_TOPBUTTONPAD }, ++}; ++ ++#endif /* EVENT_NAMES_H */ +-- +2.9.0 + diff --git a/desktop/libevdev/src b/desktop/libevdev/src new file mode 160000 +Subproject 4dd93f0108142a51261adddec77744fdda4e634 |
