diff --git a/core/linux-dist/evdev.cpp b/core/linux-dist/evdev.cpp index fb76fbf98..34a10f0b1 100644 --- a/core/linux-dist/evdev.cpp +++ b/core/linux-dist/evdev.cpp @@ -6,8 +6,52 @@ #include "cfg/ini.h" #include #include +#include #if defined(USE_EVDEV) + bool libevdev_tried = false; + bool libevdev_available = false; + typedef int (*libevdev_func_t)(int, const char*); + libevdev_func_t libevdev_event_code_from_name; + + void load_libevdev() + { + if (libevdev_tried) + { + return; + } + + libevdev_tried = true; + void* lib_handle = dlopen("libevdev.so", RTLD_NOW); + + bool failed = false; + + if (!lib_handle) + { + fprintf(stderr, "%s\n", dlerror()); + failed = true; + } + else + { + libevdev_event_code_from_name = reinterpret_cast(dlsym(lib_handle, "libevdev_event_code_from_name")); + + const char* error = dlerror(); + if (error != NULL) + { + fprintf(stderr, "%s\n", error); + failed = true; + } + } + + if(failed) + { + puts("WARNING: libevdev is not available. You'll not be able to use button names instead of numeric codes in your controller mappings!\n"); + return; + } + + libevdev_available = true; + } + s8 AxisData::convert(s32 value) { return (((value - min) * 255) / range); @@ -45,28 +89,31 @@ int load_keycode(ConfigFile* cfg, string section, string dc_key) { - int code; + int code = -1; + string keycode = cfg->get(section, dc_key, "-1"); if (strstr(keycode.c_str(), "KEY_") != NULL || strstr(keycode.c_str(), "BTN_") != NULL || strstr(keycode.c_str(), "ABS_") != NULL) { - if(evdev_keycodes.count(keycode.c_str()) == 1) + if(libevdev_available) { - code = evdev_keycodes[keycode.c_str()]; - printf("%s = %s (%d)\n", dc_key.c_str(), keycode.c_str(), code); + int type = ((strstr(keycode.c_str(), "ABS_") != NULL) ? EV_ABS : EV_KEY); + code = libevdev_event_code_from_name(type, keycode.c_str()); + } + if(code < 0) + { + printf("evdev: failed to find keycode for '%s'\n", keycode.c_str()); } else { - code = -1; - printf("evdev: failed to find keycode for '%s'", keycode.c_str()); + printf("%s = %s (%d)\n", dc_key.c_str(), keycode.c_str(), code); } + return code; } - else - { - code = cfg->get_int(section, dc_key, -1); - printf("%s = %d\n", dc_key.c_str(), code); - } + + code = cfg->get_int(section, dc_key, -1); + printf("%s = %d\n", dc_key.c_str(), code); return code; } @@ -110,6 +157,8 @@ int input_evdev_init(Controller* controller, const char* device, const char* custom_mapping_fname = NULL) { + load_libevdev(); + char name[256] = "Unknown"; printf("evdev: Trying to open device at '%s'\n", device); diff --git a/core/linux-dist/evdev.h b/core/linux-dist/evdev.h index 4351c8c18..9886099b8 100644 --- a/core/linux-dist/evdev.h +++ b/core/linux-dist/evdev.h @@ -1,7 +1,6 @@ #include "types.h" #include "linux-dist/evdev_mappings.h" #include -#include "evdev_keycodes.h" #pragma once @@ -42,3 +41,4 @@ extern bool input_evdev_handle(Controller* controller, u32 port); + diff --git a/core/linux-dist/evdev_keycodes.cpp b/core/linux-dist/evdev_keycodes.cpp deleted file mode 100644 index cec0bb452..000000000 --- a/core/linux-dist/evdev_keycodes.cpp +++ /dev/null @@ -1,665 +0,0 @@ -#include -#include "linux-dist/evdev_keycodes.h" - -#define ADD_KEYCODE(code) evdev_keycodes.insert(std::make_pair (#code, code)) - -std::map evdev_keycodes; - -void evdev_init_keycodes() -{ - - ADD_KEYCODE(ABS_X); - ADD_KEYCODE(ABS_Y); - ADD_KEYCODE(ABS_Z); - ADD_KEYCODE(ABS_RX); - ADD_KEYCODE(ABS_RY); - ADD_KEYCODE(ABS_RZ); - ADD_KEYCODE(ABS_THROTTLE); - ADD_KEYCODE(ABS_RUDDER); - ADD_KEYCODE(ABS_WHEEL); - ADD_KEYCODE(ABS_GAS); - ADD_KEYCODE(ABS_BRAKE); - ADD_KEYCODE(ABS_HAT0X); - ADD_KEYCODE(ABS_HAT0Y); - ADD_KEYCODE(ABS_HAT1X); - ADD_KEYCODE(ABS_HAT1Y); - ADD_KEYCODE(ABS_HAT2X); - ADD_KEYCODE(ABS_HAT2Y); - ADD_KEYCODE(ABS_HAT3X); - ADD_KEYCODE(ABS_HAT3Y); - ADD_KEYCODE(ABS_PRESSURE); - ADD_KEYCODE(ABS_DISTANCE); - ADD_KEYCODE(ABS_TILT_X); - ADD_KEYCODE(ABS_TILT_Y); - ADD_KEYCODE(ABS_TOOL_WIDTH); - ADD_KEYCODE(ABS_VOLUME); - ADD_KEYCODE(ABS_MISC); - - ADD_KEYCODE(KEY_RESERVED); - ADD_KEYCODE(KEY_ESC); - ADD_KEYCODE(KEY_1); - ADD_KEYCODE(KEY_2); - ADD_KEYCODE(KEY_3); - ADD_KEYCODE(KEY_4); - ADD_KEYCODE(KEY_5); - ADD_KEYCODE(KEY_6); - ADD_KEYCODE(KEY_7); - ADD_KEYCODE(KEY_8); - ADD_KEYCODE(KEY_9); - ADD_KEYCODE(KEY_0); - ADD_KEYCODE(KEY_MINUS); - ADD_KEYCODE(KEY_EQUAL); - ADD_KEYCODE(KEY_BACKSPACE); - ADD_KEYCODE(KEY_TAB); - ADD_KEYCODE(KEY_Q); - ADD_KEYCODE(KEY_W); - ADD_KEYCODE(KEY_E); - ADD_KEYCODE(KEY_R); - ADD_KEYCODE(KEY_T); - ADD_KEYCODE(KEY_Y); - ADD_KEYCODE(KEY_U); - ADD_KEYCODE(KEY_I); - ADD_KEYCODE(KEY_O); - ADD_KEYCODE(KEY_P); - ADD_KEYCODE(KEY_LEFTBRACE); - ADD_KEYCODE(KEY_RIGHTBRACE); - ADD_KEYCODE(KEY_ENTER); - ADD_KEYCODE(KEY_LEFTCTRL); - ADD_KEYCODE(KEY_A); - ADD_KEYCODE(KEY_S); - ADD_KEYCODE(KEY_D); - ADD_KEYCODE(KEY_F); - ADD_KEYCODE(KEY_G); - ADD_KEYCODE(KEY_H); - ADD_KEYCODE(KEY_J); - ADD_KEYCODE(KEY_K); - ADD_KEYCODE(KEY_L); - ADD_KEYCODE(KEY_SEMICOLON); - ADD_KEYCODE(KEY_APOSTROPHE); - ADD_KEYCODE(KEY_GRAVE); - ADD_KEYCODE(KEY_LEFTSHIFT); - ADD_KEYCODE(KEY_BACKSLASH); - ADD_KEYCODE(KEY_Z); - ADD_KEYCODE(KEY_X); - ADD_KEYCODE(KEY_C); - ADD_KEYCODE(KEY_V); - ADD_KEYCODE(KEY_B); - ADD_KEYCODE(KEY_N); - ADD_KEYCODE(KEY_M); - ADD_KEYCODE(KEY_COMMA); - ADD_KEYCODE(KEY_DOT); - ADD_KEYCODE(KEY_SLASH); - ADD_KEYCODE(KEY_RIGHTSHIFT); - ADD_KEYCODE(KEY_KPASTERISK); - ADD_KEYCODE(KEY_LEFTALT); - ADD_KEYCODE(KEY_SPACE); - ADD_KEYCODE(KEY_CAPSLOCK); - ADD_KEYCODE(KEY_F1); - ADD_KEYCODE(KEY_F2); - ADD_KEYCODE(KEY_F3); - ADD_KEYCODE(KEY_F4); - ADD_KEYCODE(KEY_F5); - ADD_KEYCODE(KEY_F6); - ADD_KEYCODE(KEY_F7); - ADD_KEYCODE(KEY_F8); - ADD_KEYCODE(KEY_F9); - ADD_KEYCODE(KEY_F10); - ADD_KEYCODE(KEY_NUMLOCK); - ADD_KEYCODE(KEY_SCROLLLOCK); - ADD_KEYCODE(KEY_KP7); - ADD_KEYCODE(KEY_KP8); - ADD_KEYCODE(KEY_KP9); - ADD_KEYCODE(KEY_KPMINUS); - ADD_KEYCODE(KEY_KP4); - ADD_KEYCODE(KEY_KP5); - ADD_KEYCODE(KEY_KP6); - ADD_KEYCODE(KEY_KPPLUS); - ADD_KEYCODE(KEY_KP1); - ADD_KEYCODE(KEY_KP2); - ADD_KEYCODE(KEY_KP3); - ADD_KEYCODE(KEY_KP0); - ADD_KEYCODE(KEY_KPDOT); - ADD_KEYCODE(KEY_ZENKAKUHANKAKU); - ADD_KEYCODE(KEY_102ND); - ADD_KEYCODE(KEY_F11); - ADD_KEYCODE(KEY_F12); - ADD_KEYCODE(KEY_RO); - ADD_KEYCODE(KEY_KATAKANA); - ADD_KEYCODE(KEY_HIRAGANA); - ADD_KEYCODE(KEY_HENKAN); - ADD_KEYCODE(KEY_KATAKANAHIRAGANA); - ADD_KEYCODE(KEY_MUHENKAN); - ADD_KEYCODE(KEY_KPJPCOMMA); - ADD_KEYCODE(KEY_KPENTER); - ADD_KEYCODE(KEY_RIGHTCTRL); - ADD_KEYCODE(KEY_KPSLASH); - ADD_KEYCODE(KEY_SYSRQ); - ADD_KEYCODE(KEY_RIGHTALT); - ADD_KEYCODE(KEY_LINEFEED); - ADD_KEYCODE(KEY_HOME); - ADD_KEYCODE(KEY_UP); - ADD_KEYCODE(KEY_PAGEUP); - ADD_KEYCODE(KEY_LEFT); - ADD_KEYCODE(KEY_RIGHT); - ADD_KEYCODE(KEY_END); - ADD_KEYCODE(KEY_DOWN); - ADD_KEYCODE(KEY_PAGEDOWN); - ADD_KEYCODE(KEY_INSERT); - ADD_KEYCODE(KEY_DELETE); - ADD_KEYCODE(KEY_MACRO); - ADD_KEYCODE(KEY_MUTE); - ADD_KEYCODE(KEY_VOLUMEDOWN); - ADD_KEYCODE(KEY_VOLUMEUP); - ADD_KEYCODE(KEY_POWER); - ADD_KEYCODE(KEY_KPEQUAL); - ADD_KEYCODE(KEY_KPPLUSMINUS); - ADD_KEYCODE(KEY_PAUSE); - ADD_KEYCODE(KEY_KPCOMMA); - ADD_KEYCODE(KEY_HANGUEL); - ADD_KEYCODE(KEY_HANJA); - ADD_KEYCODE(KEY_YEN); - ADD_KEYCODE(KEY_LEFTMETA); - ADD_KEYCODE(KEY_RIGHTMETA); - ADD_KEYCODE(KEY_COMPOSE); - ADD_KEYCODE(KEY_STOP); - ADD_KEYCODE(KEY_AGAIN); - ADD_KEYCODE(KEY_PROPS); - ADD_KEYCODE(KEY_UNDO); - ADD_KEYCODE(KEY_FRONT); - ADD_KEYCODE(KEY_COPY); - ADD_KEYCODE(KEY_OPEN); - ADD_KEYCODE(KEY_PASTE); - ADD_KEYCODE(KEY_FIND); - ADD_KEYCODE(KEY_CUT); - ADD_KEYCODE(KEY_HELP); - ADD_KEYCODE(KEY_MENU); - ADD_KEYCODE(KEY_CALC); - ADD_KEYCODE(KEY_SETUP); - ADD_KEYCODE(KEY_SLEEP); - ADD_KEYCODE(KEY_WAKEUP); - ADD_KEYCODE(KEY_FILE); - ADD_KEYCODE(KEY_SENDFILE); - ADD_KEYCODE(KEY_DELETEFILE); - ADD_KEYCODE(KEY_XFER); - ADD_KEYCODE(KEY_PROG1); - ADD_KEYCODE(KEY_PROG2); - ADD_KEYCODE(KEY_WWW); - ADD_KEYCODE(KEY_MSDOS); - ADD_KEYCODE(KEY_COFFEE); - ADD_KEYCODE(KEY_DIRECTION); - ADD_KEYCODE(KEY_CYCLEWINDOWS); - ADD_KEYCODE(KEY_MAIL); - ADD_KEYCODE(KEY_BOOKMARKS); - ADD_KEYCODE(KEY_COMPUTER); - ADD_KEYCODE(KEY_BACK); - ADD_KEYCODE(KEY_FORWARD); - ADD_KEYCODE(KEY_CLOSECD); - ADD_KEYCODE(KEY_EJECTCD); - ADD_KEYCODE(KEY_EJECTCLOSECD); - ADD_KEYCODE(KEY_NEXTSONG); - ADD_KEYCODE(KEY_PLAYPAUSE); - ADD_KEYCODE(KEY_PREVIOUSSONG); - ADD_KEYCODE(KEY_STOPCD); - ADD_KEYCODE(KEY_RECORD); - ADD_KEYCODE(KEY_REWIND); - ADD_KEYCODE(KEY_PHONE); - ADD_KEYCODE(KEY_ISO); - ADD_KEYCODE(KEY_CONFIG); - ADD_KEYCODE(KEY_HOMEPAGE); - ADD_KEYCODE(KEY_REFRESH); - ADD_KEYCODE(KEY_EXIT); - ADD_KEYCODE(KEY_MOVE); - ADD_KEYCODE(KEY_EDIT); - ADD_KEYCODE(KEY_SCROLLUP); - ADD_KEYCODE(KEY_SCROLLDOWN); - ADD_KEYCODE(KEY_KPLEFTPAREN); - ADD_KEYCODE(KEY_KPRIGHTPAREN); - ADD_KEYCODE(KEY_F13); - ADD_KEYCODE(KEY_F14); - ADD_KEYCODE(KEY_F15); - ADD_KEYCODE(KEY_F16); - ADD_KEYCODE(KEY_F17); - ADD_KEYCODE(KEY_F18); - ADD_KEYCODE(KEY_F19); - ADD_KEYCODE(KEY_F20); - ADD_KEYCODE(KEY_F21); - ADD_KEYCODE(KEY_F22); - ADD_KEYCODE(KEY_F23); - ADD_KEYCODE(KEY_F24); - ADD_KEYCODE(KEY_PLAYCD); - ADD_KEYCODE(KEY_PAUSECD); - ADD_KEYCODE(KEY_PROG3); - ADD_KEYCODE(KEY_PROG4); - ADD_KEYCODE(KEY_SUSPEND); - ADD_KEYCODE(KEY_CLOSE); - ADD_KEYCODE(KEY_PLAY); - ADD_KEYCODE(KEY_FASTFORWARD); - ADD_KEYCODE(KEY_BASSBOOST); - ADD_KEYCODE(KEY_PRINT); - ADD_KEYCODE(KEY_HP); - ADD_KEYCODE(KEY_CAMERA); - ADD_KEYCODE(KEY_SOUND); - ADD_KEYCODE(KEY_QUESTION); - ADD_KEYCODE(KEY_EMAIL); - ADD_KEYCODE(KEY_CHAT); - ADD_KEYCODE(KEY_SEARCH); - ADD_KEYCODE(KEY_CONNECT); - ADD_KEYCODE(KEY_FINANCE); - ADD_KEYCODE(KEY_SPORT); - ADD_KEYCODE(KEY_SHOP); - ADD_KEYCODE(KEY_ALTERASE); - ADD_KEYCODE(KEY_CANCEL); - ADD_KEYCODE(KEY_BRIGHTNESSDOWN); - ADD_KEYCODE(KEY_BRIGHTNESSUP); - ADD_KEYCODE(KEY_MEDIA); - ADD_KEYCODE(KEY_UNKNOWN); - ADD_KEYCODE(KEY_OK); - ADD_KEYCODE(KEY_SELECT); - ADD_KEYCODE(KEY_GOTO); - ADD_KEYCODE(KEY_CLEAR); - ADD_KEYCODE(KEY_POWER2); - ADD_KEYCODE(KEY_OPTION); - ADD_KEYCODE(KEY_INFO); - ADD_KEYCODE(KEY_TIME); - ADD_KEYCODE(KEY_VENDOR); - ADD_KEYCODE(KEY_ARCHIVE); - ADD_KEYCODE(KEY_PROGRAM); - ADD_KEYCODE(KEY_CHANNEL); - ADD_KEYCODE(KEY_FAVORITES); - ADD_KEYCODE(KEY_EPG); - ADD_KEYCODE(KEY_PVR); - ADD_KEYCODE(KEY_MHP); - ADD_KEYCODE(KEY_LANGUAGE); - ADD_KEYCODE(KEY_TITLE); - ADD_KEYCODE(KEY_SUBTITLE); - ADD_KEYCODE(KEY_ANGLE); - ADD_KEYCODE(KEY_ZOOM); - ADD_KEYCODE(KEY_MODE); - ADD_KEYCODE(KEY_KEYBOARD); - ADD_KEYCODE(KEY_SCREEN); - ADD_KEYCODE(KEY_PC); - ADD_KEYCODE(KEY_TV); - ADD_KEYCODE(KEY_TV2); - ADD_KEYCODE(KEY_VCR); - ADD_KEYCODE(KEY_VCR2); - ADD_KEYCODE(KEY_SAT); - ADD_KEYCODE(KEY_SAT2); - ADD_KEYCODE(KEY_CD); - ADD_KEYCODE(KEY_TAPE); - ADD_KEYCODE(KEY_RADIO); - ADD_KEYCODE(KEY_TUNER); - ADD_KEYCODE(KEY_PLAYER); - ADD_KEYCODE(KEY_TEXT); - ADD_KEYCODE(KEY_DVD); - ADD_KEYCODE(KEY_AUX); - ADD_KEYCODE(KEY_MP3); - ADD_KEYCODE(KEY_AUDIO); - ADD_KEYCODE(KEY_VIDEO); - ADD_KEYCODE(KEY_DIRECTORY); - ADD_KEYCODE(KEY_LIST); - ADD_KEYCODE(KEY_MEMO); - ADD_KEYCODE(KEY_CALENDAR); - ADD_KEYCODE(KEY_RED); - ADD_KEYCODE(KEY_GREEN); - ADD_KEYCODE(KEY_YELLOW); - ADD_KEYCODE(KEY_BLUE); - ADD_KEYCODE(KEY_CHANNELUP); - ADD_KEYCODE(KEY_CHANNELDOWN); - ADD_KEYCODE(KEY_FIRST); - ADD_KEYCODE(KEY_LAST); - ADD_KEYCODE(KEY_AB); - ADD_KEYCODE(KEY_NEXT); - ADD_KEYCODE(KEY_RESTART); - ADD_KEYCODE(KEY_SLOW); - ADD_KEYCODE(KEY_SHUFFLE); - ADD_KEYCODE(KEY_BREAK); - ADD_KEYCODE(KEY_PREVIOUS); - ADD_KEYCODE(KEY_DIGITS); - ADD_KEYCODE(KEY_TEEN); - ADD_KEYCODE(KEY_TWEN); - ADD_KEYCODE(KEY_DEL_EOL); - ADD_KEYCODE(KEY_DEL_EOS); - ADD_KEYCODE(KEY_INS_LINE); - ADD_KEYCODE(KEY_DEL_LINE); - ADD_KEYCODE(KEY_VIDEOPHONE); - ADD_KEYCODE(KEY_GAMES); - ADD_KEYCODE(KEY_ZOOMIN); - ADD_KEYCODE(KEY_ZOOMOUT); - ADD_KEYCODE(KEY_ZOOMRESET); - ADD_KEYCODE(KEY_WORDPROCESSOR); - ADD_KEYCODE(KEY_EDITOR); - ADD_KEYCODE(KEY_SPREADSHEET); - ADD_KEYCODE(KEY_GRAPHICSEDITOR); - ADD_KEYCODE(KEY_PRESENTATION); - ADD_KEYCODE(KEY_DATABASE); - ADD_KEYCODE(KEY_NEWS); - ADD_KEYCODE(KEY_VOICEMAIL); - ADD_KEYCODE(KEY_ADDRESSBOOK); - ADD_KEYCODE(KEY_MESSENGER); - ADD_KEYCODE(KEY_DISPLAYTOGGLE); - #ifdef KEY_SPELLCHECK - ADD_KEYCODE(KEY_SPELLCHECK); - #endif - #ifdef KEY_LOGOFF - ADD_KEYCODE(KEY_LOGOFF); - #endif - #ifdef KEY_DOLLAR - ADD_KEYCODE(KEY_DOLLAR); - #endif - #ifdef KEY_EURO - ADD_KEYCODE(KEY_EURO); - #endif - #ifdef KEY_FRAMEBACK - ADD_KEYCODE(KEY_FRAMEBACK); - #endif - #ifdef KEY_FRAMEFORWARD - ADD_KEYCODE(KEY_FRAMEFORWARD); - #endif - #ifdef KEY_CONTEXT_MENU - ADD_KEYCODE(KEY_CONTEXT_MENU); - #endif - #ifdef KEY_MEDIA_REPEAT - ADD_KEYCODE(KEY_MEDIA_REPEAT); - #endif - #ifdef KEY_10CHANNELSUP - ADD_KEYCODE(KEY_10CHANNELSUP); - #endif - #ifdef KEY_10CHANNELSDOWN - ADD_KEYCODE(KEY_10CHANNELSDOWN); - #endif - #ifdef KEY_IMAGES - ADD_KEYCODE(KEY_IMAGES); - #endif - ADD_KEYCODE(KEY_DEL_EOL); - ADD_KEYCODE(KEY_DEL_EOS); - ADD_KEYCODE(KEY_INS_LINE); - ADD_KEYCODE(KEY_DEL_LINE); - ADD_KEYCODE(KEY_FN); - ADD_KEYCODE(KEY_FN_ESC); - ADD_KEYCODE(KEY_FN_F1); - ADD_KEYCODE(KEY_FN_F2); - ADD_KEYCODE(KEY_FN_F3); - ADD_KEYCODE(KEY_FN_F4); - ADD_KEYCODE(KEY_FN_F5); - ADD_KEYCODE(KEY_FN_F6); - ADD_KEYCODE(KEY_FN_F7); - ADD_KEYCODE(KEY_FN_F8); - ADD_KEYCODE(KEY_FN_F9); - ADD_KEYCODE(KEY_FN_F10); - ADD_KEYCODE(KEY_FN_F11); - ADD_KEYCODE(KEY_FN_F12); - ADD_KEYCODE(KEY_FN_1); - ADD_KEYCODE(KEY_FN_2); - ADD_KEYCODE(KEY_FN_D); - ADD_KEYCODE(KEY_FN_E); - ADD_KEYCODE(KEY_FN_F); - ADD_KEYCODE(KEY_FN_S); - ADD_KEYCODE(KEY_FN_B); - ADD_KEYCODE(KEY_BRL_DOT1); - ADD_KEYCODE(KEY_BRL_DOT2); - ADD_KEYCODE(KEY_BRL_DOT3); - ADD_KEYCODE(KEY_BRL_DOT4); - ADD_KEYCODE(KEY_BRL_DOT5); - ADD_KEYCODE(KEY_BRL_DOT6); - ADD_KEYCODE(KEY_BRL_DOT7); - ADD_KEYCODE(KEY_BRL_DOT8); - ADD_KEYCODE(KEY_BRL_DOT9); - ADD_KEYCODE(KEY_BRL_DOT10); - #ifdef KEY_NUMERIC_0 - ADD_KEYCODE(KEY_NUMERIC_0); - ADD_KEYCODE(KEY_NUMERIC_1); - ADD_KEYCODE(KEY_NUMERIC_2); - ADD_KEYCODE(KEY_NUMERIC_3); - ADD_KEYCODE(KEY_NUMERIC_4); - ADD_KEYCODE(KEY_NUMERIC_5); - ADD_KEYCODE(KEY_NUMERIC_6); - ADD_KEYCODE(KEY_NUMERIC_7); - ADD_KEYCODE(KEY_NUMERIC_8); - ADD_KEYCODE(KEY_NUMERIC_9); - ADD_KEYCODE(KEY_NUMERIC_STAR); - ADD_KEYCODE(KEY_NUMERIC_POUND); - #endif - ADD_KEYCODE(KEY_BATTERY); - ADD_KEYCODE(KEY_BLUETOOTH); - ADD_KEYCODE(KEY_BRIGHTNESS_CYCLE); - ADD_KEYCODE(KEY_BRIGHTNESS_ZERO); - #ifdef KEY_DASHBOARD - ADD_KEYCODE(KEY_DASHBOARD); - #endif - ADD_KEYCODE(KEY_DISPLAY_OFF); - ADD_KEYCODE(KEY_DOCUMENTS); - ADD_KEYCODE(KEY_FORWARDMAIL); - ADD_KEYCODE(KEY_NEW); - ADD_KEYCODE(KEY_KBDILLUMDOWN); - ADD_KEYCODE(KEY_KBDILLUMUP); - ADD_KEYCODE(KEY_KBDILLUMTOGGLE); - ADD_KEYCODE(KEY_REDO); - ADD_KEYCODE(KEY_REPLY); - ADD_KEYCODE(KEY_SAVE); - #ifdef KEY_SCALE - ADD_KEYCODE(KEY_SCALE); - #endif - ADD_KEYCODE(KEY_SEND); - ADD_KEYCODE(KEY_SCREENLOCK); - ADD_KEYCODE(KEY_SWITCHVIDEOMODE); - #ifdef KEY_UWB - ADD_KEYCODE(KEY_UWB); - #endif - #ifdef KEY_VIDEO_NEXT - ADD_KEYCODE(KEY_VIDEO_NEXT); - #endif - #ifdef KEY_VIDEO_PREV - ADD_KEYCODE(KEY_VIDEO_PREV); - #endif - #ifdef KEY_WIMAX - ADD_KEYCODE(KEY_WIMAX); - #endif - #ifdef KEY_WLAN - ADD_KEYCODE(KEY_WLAN); - #endif - #ifdef KEY_RFKILL - ADD_KEYCODE(KEY_RFKILL); - #endif - #ifdef KEY_MICMUTE - ADD_KEYCODE(KEY_MICMUTE); - #endif - #ifdef KEY_CAMERA_FOCUS - ADD_KEYCODE(KEY_CAMERA_FOCUS); - #endif - #ifdef KEY_WPS_BUTTON - ADD_KEYCODE(KEY_WPS_BUTTON); - #endif - #ifdef KEY_TOUCHPAD_TOGGLE - ADD_KEYCODE(KEY_TOUCHPAD_TOGGLE); - ADD_KEYCODE(KEY_TOUCHPAD_ON); - ADD_KEYCODE(KEY_TOUCHPAD_OFF); - #endif - #ifdef KEY_CAMERA_ZOOMIN - ADD_KEYCODE(KEY_CAMERA_ZOOMIN); - ADD_KEYCODE(KEY_CAMERA_ZOOMOUT); - ADD_KEYCODE(KEY_CAMERA_UP); - ADD_KEYCODE(KEY_CAMERA_DOWN); - ADD_KEYCODE(KEY_CAMERA_LEFT); - ADD_KEYCODE(KEY_CAMERA_RIGHT); - #endif - #ifdef KEY_ATTENDANT_ON - ADD_KEYCODE(KEY_ATTENDANT_ON); - ADD_KEYCODE(KEY_ATTENDANT_OFF); - ADD_KEYCODE(KEY_ATTENDANT_TOGGLE); - ADD_KEYCODE(KEY_LIGHTS_TOGGLE); - #endif - - ADD_KEYCODE(BTN_0); - ADD_KEYCODE(BTN_1); - ADD_KEYCODE(BTN_2); - ADD_KEYCODE(BTN_3); - ADD_KEYCODE(BTN_4); - ADD_KEYCODE(BTN_5); - ADD_KEYCODE(BTN_6); - ADD_KEYCODE(BTN_7); - ADD_KEYCODE(BTN_8); - ADD_KEYCODE(BTN_9); - ADD_KEYCODE(BTN_LEFT); - ADD_KEYCODE(BTN_RIGHT); - ADD_KEYCODE(BTN_MIDDLE); - ADD_KEYCODE(BTN_SIDE); - ADD_KEYCODE(BTN_EXTRA); - ADD_KEYCODE(BTN_FORWARD); - ADD_KEYCODE(BTN_BACK); - ADD_KEYCODE(BTN_TASK); - ADD_KEYCODE(BTN_TRIGGER); - ADD_KEYCODE(BTN_THUMB); - ADD_KEYCODE(BTN_THUMB2); - ADD_KEYCODE(BTN_TOP); - ADD_KEYCODE(BTN_TOP2); - ADD_KEYCODE(BTN_PINKIE); - ADD_KEYCODE(BTN_BASE); - ADD_KEYCODE(BTN_BASE2); - ADD_KEYCODE(BTN_BASE3); - ADD_KEYCODE(BTN_BASE4); - ADD_KEYCODE(BTN_BASE5); - ADD_KEYCODE(BTN_BASE6); - ADD_KEYCODE(BTN_DEAD); - ADD_KEYCODE(BTN_C); - #ifdef BTN_SOUTH - ADD_KEYCODE(BTN_SOUTH); - ADD_KEYCODE(BTN_EAST); - ADD_KEYCODE(BTN_NORTH); - ADD_KEYCODE(BTN_WEST); - #endif - ADD_KEYCODE(BTN_A); - ADD_KEYCODE(BTN_B); - ADD_KEYCODE(BTN_X); - ADD_KEYCODE(BTN_Y); - ADD_KEYCODE(BTN_Z); - ADD_KEYCODE(BTN_TL); - ADD_KEYCODE(BTN_TR); - ADD_KEYCODE(BTN_TL2); - ADD_KEYCODE(BTN_TR2); - ADD_KEYCODE(BTN_SELECT); - ADD_KEYCODE(BTN_START); - ADD_KEYCODE(BTN_MODE); - ADD_KEYCODE(BTN_THUMBL); - ADD_KEYCODE(BTN_THUMBR); - ADD_KEYCODE(BTN_TOOL_PEN); - ADD_KEYCODE(BTN_TOOL_RUBBER); - ADD_KEYCODE(BTN_TOOL_BRUSH); - ADD_KEYCODE(BTN_TOOL_PENCIL); - ADD_KEYCODE(BTN_TOOL_AIRBRUSH); - ADD_KEYCODE(BTN_TOOL_FINGER); - ADD_KEYCODE(BTN_TOOL_MOUSE); - ADD_KEYCODE(BTN_TOOL_LENS); - ADD_KEYCODE(BTN_TOUCH); - ADD_KEYCODE(BTN_STYLUS); - ADD_KEYCODE(BTN_STYLUS2); - ADD_KEYCODE(BTN_TOOL_DOUBLETAP); - ADD_KEYCODE(BTN_TOOL_TRIPLETAP); - #ifdef BTN_TOOL_QUADTAP - ADD_KEYCODE(BTN_TOOL_QUADTAP); - #endif - ADD_KEYCODE(BTN_GEAR_DOWN); - ADD_KEYCODE(BTN_GEAR_UP); - - #ifdef BTN_DPAD_UP - ADD_KEYCODE(BTN_DPAD_UP); - ADD_KEYCODE(BTN_DPAD_DOWN); - ADD_KEYCODE(BTN_DPAD_LEFT); - ADD_KEYCODE(BTN_DPAD_RIGHT); - #endif - #ifdef KEY_ALS_TOGGLE - ADD_KEYCODE(KEY_ALS_TOGGLE); - #endif - #ifdef KEY_BUTTONCONFIG - ADD_KEYCODE(KEY_BUTTONCONFIG); - #endif - #ifdef KEY_TASKMANAGER - ADD_KEYCODE(KEY_TASKMANAGER); - #endif - #ifdef KEY_JOURNAL - ADD_KEYCODE(KEY_JOURNAL); - #endif - #ifdef KEY_CONTROLPANEL - ADD_KEYCODE(KEY_CONTROLPANEL); - #endif - #ifdef KEY_APPSELECT - ADD_KEYCODE(KEY_APPSELECT); - #endif - #ifdef KEY_SCREENSAVER - ADD_KEYCODE(KEY_SCREENSAVER); - #endif - #ifdef KEY_VOICECOMMAND - ADD_KEYCODE(KEY_VOICECOMMAND); - #endif - #ifdef KEY_BRIGHTNESS_MIN - ADD_KEYCODE(KEY_BRIGHTNESS_MIN); - #endif - #ifdef KEY_BRIGHTNESS_MAX - ADD_KEYCODE(KEY_BRIGHTNESS_MAX); - #endif - #ifdef KEY_KBDINPUTASSIST_PREV - ADD_KEYCODE(KEY_KBDINPUTASSIST_PREV); - #endif - #ifdef KEY_KBDINPUTASSIST_NEXT - ADD_KEYCODE(KEY_KBDINPUTASSIST_NEXT); - #endif - #ifdef KEY_KBDINPUTASSIST_PREVGROUP - ADD_KEYCODE(KEY_KBDINPUTASSIST_PREVGROUP); - #endif - #ifdef KEY_KBDINPUTASSIST_NEXTGROUP - ADD_KEYCODE(KEY_KBDINPUTASSIST_NEXTGROUP); - #endif - #ifdef KEY_KBDINPUTASSIST_ACCEPT - ADD_KEYCODE(KEY_KBDINPUTASSIST_ACCEPT); - #endif - #ifdef KEY_KBDINPUTASSIST_CANCEL - ADD_KEYCODE(KEY_KBDINPUTASSIST_CANCEL); - #endif - #ifdef BTN_TRIGGER_HAPPY - ADD_KEYCODE(BTN_TRIGGER_HAPPY1); - ADD_KEYCODE(BTN_TRIGGER_HAPPY2); - ADD_KEYCODE(BTN_TRIGGER_HAPPY3); - ADD_KEYCODE(BTN_TRIGGER_HAPPY4); - ADD_KEYCODE(BTN_TRIGGER_HAPPY5); - ADD_KEYCODE(BTN_TRIGGER_HAPPY6); - ADD_KEYCODE(BTN_TRIGGER_HAPPY7); - ADD_KEYCODE(BTN_TRIGGER_HAPPY8); - ADD_KEYCODE(BTN_TRIGGER_HAPPY9); - ADD_KEYCODE(BTN_TRIGGER_HAPPY10); - ADD_KEYCODE(BTN_TRIGGER_HAPPY11); - ADD_KEYCODE(BTN_TRIGGER_HAPPY12); - ADD_KEYCODE(BTN_TRIGGER_HAPPY13); - ADD_KEYCODE(BTN_TRIGGER_HAPPY14); - ADD_KEYCODE(BTN_TRIGGER_HAPPY15); - ADD_KEYCODE(BTN_TRIGGER_HAPPY16); - ADD_KEYCODE(BTN_TRIGGER_HAPPY17); - ADD_KEYCODE(BTN_TRIGGER_HAPPY18); - ADD_KEYCODE(BTN_TRIGGER_HAPPY19); - ADD_KEYCODE(BTN_TRIGGER_HAPPY20); - ADD_KEYCODE(BTN_TRIGGER_HAPPY21); - ADD_KEYCODE(BTN_TRIGGER_HAPPY22); - ADD_KEYCODE(BTN_TRIGGER_HAPPY23); - ADD_KEYCODE(BTN_TRIGGER_HAPPY24); - ADD_KEYCODE(BTN_TRIGGER_HAPPY25); - ADD_KEYCODE(BTN_TRIGGER_HAPPY26); - ADD_KEYCODE(BTN_TRIGGER_HAPPY27); - ADD_KEYCODE(BTN_TRIGGER_HAPPY28); - ADD_KEYCODE(BTN_TRIGGER_HAPPY29); - ADD_KEYCODE(BTN_TRIGGER_HAPPY30); - ADD_KEYCODE(BTN_TRIGGER_HAPPY31); - ADD_KEYCODE(BTN_TRIGGER_HAPPY32); - ADD_KEYCODE(BTN_TRIGGER_HAPPY33); - ADD_KEYCODE(BTN_TRIGGER_HAPPY34); - ADD_KEYCODE(BTN_TRIGGER_HAPPY35); - ADD_KEYCODE(BTN_TRIGGER_HAPPY36); - ADD_KEYCODE(BTN_TRIGGER_HAPPY37); - ADD_KEYCODE(BTN_TRIGGER_HAPPY38); - ADD_KEYCODE(BTN_TRIGGER_HAPPY39); - ADD_KEYCODE(BTN_TRIGGER_HAPPY40); - #endif - #ifdef BTN_TOOL_QUINTTAP - ADD_KEYCODE(BTN_TOOL_QUINTTAP); - #endif -}; - - - diff --git a/core/linux-dist/evdev_keycodes.h b/core/linux-dist/evdev_keycodes.h deleted file mode 100644 index 66877e6c0..000000000 --- a/core/linux-dist/evdev_keycodes.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once -#include -#include -extern std::map evdev_keycodes; -extern void evdev_init_keycodes(); - - diff --git a/core/linux-dist/main.cpp b/core/linux-dist/main.cpp index 373cc2c05..d86ea1597 100755 --- a/core/linux-dist/main.cpp +++ b/core/linux-dist/main.cpp @@ -95,8 +95,6 @@ void emit_WriteCodeCache(); void SetupInput() { #if defined(USE_EVDEV) - evdev_init_keycodes(); //FIXME: This sucks, but initializer lists for maps are only available with std=c++0x - int evdev_device_id[4] = { -1, -1, -1, -1 }; size_t size_needed; int port, i; @@ -297,3 +295,4 @@ void os_DebugBreak() } +