linux-dist/evdev: Replace evdev_keycodes.cpp/.h with dynamic libevdev call

This commit is contained in:
Jan Holthuis 2015-08-19 07:04:36 +02:00
parent e4e7e092c2
commit 72778bdf39
5 changed files with 62 additions and 686 deletions

View File

@ -6,8 +6,52 @@
#include "cfg/ini.h"
#include <vector>
#include <map>
#include <dlfcn.h>
#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<libevdev_func_t>(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);

View File

@ -1,7 +1,6 @@
#include "types.h"
#include "linux-dist/evdev_mappings.h"
#include <linux/input.h>
#include "evdev_keycodes.h"
#pragma once
@ -42,3 +41,4 @@ extern bool input_evdev_handle(Controller* controller, u32 port);

View File

@ -1,665 +0,0 @@
#include <linux/input.h>
#include "linux-dist/evdev_keycodes.h"
#define ADD_KEYCODE(code) evdev_keycodes.insert(std::make_pair (#code, code))
std::map<std::string,int> 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
};

View File

@ -1,7 +0,0 @@
#pragma once
#include <map>
#include <string>
extern std::map<std::string,int> evdev_keycodes;
extern void evdev_init_keycodes();

View File

@ -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()
}