linux-dist/evdev: Support custom mapping files
This commit is contained in:
parent
3eee909801
commit
5c01098cab
|
@ -3,10 +3,79 @@
|
|||
#include <linux/input.h>
|
||||
#include "linux-dist/evdev.h"
|
||||
#include "linux-dist/main.h"
|
||||
#include "cfg/ini.h"
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
#if defined(USE_EVDEV)
|
||||
std::map<std::string, ControllerMapping> loaded_mappings;
|
||||
|
||||
int input_evdev_init(Controller* controller, const char* device)
|
||||
int load_keycode(ConfigFile* cfg, string section, string dc_key)
|
||||
{
|
||||
int code;
|
||||
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)
|
||||
{
|
||||
code = evdev_keycodes[keycode.c_str()];
|
||||
printf("%s = %s (%d)\n", dc_key.c_str(), keycode.c_str(), code);
|
||||
}
|
||||
else
|
||||
{
|
||||
code = -1;
|
||||
printf("evdev: failed to find keycode for '%s'", keycode.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
code = cfg->get_int(section, dc_key, -1);
|
||||
printf("%s = %d\n", dc_key.c_str(), code);
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
ControllerMapping load_mapping(FILE* fd)
|
||||
{
|
||||
ConfigFile mf;
|
||||
mf.parse(fd);
|
||||
|
||||
ControllerMapping mapping = {
|
||||
mf.get("emulator", "mapping_name", "<Unknown>").c_str(),
|
||||
load_keycode(&mf, "dreamcast", "btn_a"),
|
||||
load_keycode(&mf, "dreamcast", "btn_b"),
|
||||
load_keycode(&mf, "dreamcast", "btn_c"),
|
||||
load_keycode(&mf, "dreamcast", "btn_d"),
|
||||
load_keycode(&mf, "dreamcast", "btn_x"),
|
||||
load_keycode(&mf, "dreamcast", "btn_y"),
|
||||
load_keycode(&mf, "dreamcast", "btn_z"),
|
||||
load_keycode(&mf, "dreamcast", "btn_start"),
|
||||
load_keycode(&mf, "emulator", "btn_escape"),
|
||||
load_keycode(&mf, "dreamcast", "dpad_left"),
|
||||
load_keycode(&mf, "dreamcast", "dpad_right"),
|
||||
load_keycode(&mf, "dreamcast", "dpad_up"),
|
||||
load_keycode(&mf, "dreamcast", "dpad_down"),
|
||||
load_keycode(&mf, "dreamcast", "dpad2_left"),
|
||||
load_keycode(&mf, "dreamcast", "dpad2_right"),
|
||||
load_keycode(&mf, "dreamcast", "dpad2_up"),
|
||||
load_keycode(&mf, "dreamcast", "dpad2_down"),
|
||||
load_keycode(&mf, "compat", "btn_trigger_left"),
|
||||
load_keycode(&mf, "compat", "btn_trigger_right"),
|
||||
load_keycode(&mf, "compat", "axis_dpad_x"),
|
||||
load_keycode(&mf, "compat", "axis_dpad_y"),
|
||||
load_keycode(&mf, "compat", "axis_dpad2_x"),
|
||||
load_keycode(&mf, "compat", "axis_dpad2_y"),
|
||||
load_keycode(&mf, "dreamcast", "axis_x"),
|
||||
load_keycode(&mf, "dreamcast", "axis_y"),
|
||||
load_keycode(&mf, "dreamcast", "axis_trigger_left"),
|
||||
load_keycode(&mf, "dreamcast", "axis_trigger_right")
|
||||
};
|
||||
return mapping;
|
||||
}
|
||||
|
||||
int input_evdev_init(Controller* controller, const char* device, const char* mapping_fname = NULL)
|
||||
{
|
||||
char name[256] = "Unknown";
|
||||
|
||||
|
@ -28,33 +97,54 @@
|
|||
|
||||
controller->fd = fd;
|
||||
|
||||
#if defined(TARGET_PANDORA)
|
||||
*controller.mapping = &controller_mapping_pandora;
|
||||
#elif defined(TARGET_GCW0)
|
||||
*controller.mapping = &controller_mapping_gcwz;
|
||||
#else
|
||||
if (strcmp(name, "Microsoft X-Box 360 pad") == 0 ||
|
||||
strcmp(name, "Xbox 360 Wireless Receiver") == 0 ||
|
||||
strcmp(name, "Xbox 360 Wireless Receiver (XBOX)") == 0)
|
||||
if(mapping_fname != NULL)
|
||||
{
|
||||
if(loaded_mappings.count(string(mapping_fname)) == 0)
|
||||
{
|
||||
controller->mapping = &controller_mapping_xpad;
|
||||
FILE* mapping_fd = fopen(mapping_fname, "r");
|
||||
if(mapping_fd != NULL)
|
||||
{
|
||||
printf("evdev: reading custom mapping file: '%s'\n", mapping_fname);
|
||||
loaded_mappings.insert(std::make_pair(string(mapping_fname), load_mapping(mapping_fd)));
|
||||
fclose(mapping_fd);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("evdev: unable to open custom mapping file '%s'\n", mapping_fname);
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
else if (strstr(name, "Xbox Gamepad (userspace driver)") != NULL)
|
||||
{
|
||||
controller->mapping = &controller_mapping_xboxdrv;
|
||||
}
|
||||
else if (strstr(name, "keyboard") != NULL ||
|
||||
strstr(name, "Keyboard") != NULL)
|
||||
{
|
||||
controller->mapping = &controller_mapping_keyboard;
|
||||
}
|
||||
else
|
||||
{
|
||||
controller->mapping = &controller_mapping_generic;
|
||||
}
|
||||
#endif
|
||||
controller->mapping = &loaded_mappings[string(mapping_fname)];
|
||||
}
|
||||
else
|
||||
{
|
||||
#if defined(TARGET_PANDORA)
|
||||
*controller.mapping = &controller_mapping_pandora;
|
||||
#elif defined(TARGET_GCW0)
|
||||
*controller.mapping = &controller_mapping_gcwz;
|
||||
#else
|
||||
if (strcmp(name, "Microsoft X-Box 360 pad") == 0 ||
|
||||
strcmp(name, "Xbox 360 Wireless Receiver") == 0 ||
|
||||
strcmp(name, "Xbox 360 Wireless Receiver (XBOX)") == 0)
|
||||
{
|
||||
controller->mapping = &controller_mapping_xpad;
|
||||
}
|
||||
else if (strstr(name, "Xbox Gamepad (userspace driver)") != NULL)
|
||||
{
|
||||
controller->mapping = &controller_mapping_xboxdrv;
|
||||
}
|
||||
else if (strstr(name, "keyboard") != NULL ||
|
||||
strstr(name, "Keyboard") != NULL)
|
||||
{
|
||||
controller->mapping = &controller_mapping_keyboard;
|
||||
}
|
||||
else
|
||||
{
|
||||
controller->mapping = &controller_mapping_generic;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
printf("evdev: Using '%s' mapping\n", controller->mapping->name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -219,3 +309,12 @@
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "types.h"
|
||||
#include "linux-dist/evdev_mappings.h"
|
||||
#include <linux/input.h>
|
||||
#include "evdev_keycodes.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
|
@ -13,7 +14,9 @@ struct s_controller
|
|||
typedef struct s_controller Controller;
|
||||
|
||||
#define EVDEV_DEVICE_CONFIG_KEY "evdev_device_id_%d"
|
||||
#define EVDEV_MAPPING_CONFIG_KEY "evdev_mapping_%d"
|
||||
#define EVDEV_DEVICE_STRING "/dev/input/event%d"
|
||||
#define EVDEV_MAPPING_PATH "/mappings/%s"
|
||||
|
||||
#ifdef TARGET_PANDORA
|
||||
#define EVDEV_DEFAULT_DEVICE_ID_1 4
|
||||
|
@ -23,5 +26,7 @@ typedef struct s_controller Controller;
|
|||
|
||||
#define EVDEV_DEFAULT_DEVICE_ID(port) (port == 1 ? EVDEV_DEFAULT_DEVICE_ID_1 : -1)
|
||||
|
||||
extern int input_evdev_init(Controller* controller, const char* device);
|
||||
extern int input_evdev_init(Controller* controller, const char* device, const char* mapping_fname);
|
||||
extern bool input_evdev_handle(Controller* controller, u32 port);
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,665 @@
|
|||
#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
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#pragma once
|
||||
#include <map>
|
||||
#include <string>
|
||||
extern std::map<std::string,int> evdev_keycodes;
|
||||
extern void evdev_init_keycodes();
|
||||
|
||||
|
|
@ -95,10 +95,14 @@ 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 };
|
||||
char* mapping = NULL;
|
||||
size_t size_needed;
|
||||
|
||||
int evdev_device_length, port, i;
|
||||
int port, i;
|
||||
|
||||
char* evdev_device;
|
||||
|
||||
for (port = 0; port < 4; port++)
|
||||
|
@ -106,8 +110,8 @@ void SetupInput()
|
|||
size_needed = snprintf(NULL, 0, EVDEV_DEVICE_CONFIG_KEY, port+1) + 1;
|
||||
char* evdev_config_key = (char*)malloc(size_needed);
|
||||
sprintf(evdev_config_key, EVDEV_DEVICE_CONFIG_KEY, port+1);
|
||||
|
||||
evdev_device_id[port] = cfgLoadInt("input", evdev_config_key, EVDEV_DEFAULT_DEVICE_ID(port+1));
|
||||
free(evdev_config_key);
|
||||
|
||||
// Check if the same device is already in use on another port
|
||||
if (evdev_device_id[port] < 0)
|
||||
|
@ -124,14 +128,30 @@ void SetupInput()
|
|||
}
|
||||
}
|
||||
|
||||
evdev_device_length = snprintf(NULL, 0, EVDEV_DEVICE_STRING, evdev_device_id[port]);
|
||||
evdev_device = (char*)malloc(evdev_device_length + 1);
|
||||
size_needed = snprintf(NULL, 0, EVDEV_DEVICE_STRING, evdev_device_id[port]) + 1;
|
||||
evdev_device = (char*)malloc(size_needed);
|
||||
sprintf(evdev_device, EVDEV_DEVICE_STRING, evdev_device_id[port]);
|
||||
input_evdev_init(&controllers[port], evdev_device);
|
||||
|
||||
mapping = NULL;
|
||||
|
||||
size_needed = snprintf(NULL, 0, EVDEV_MAPPING_CONFIG_KEY, port+1) + 1;
|
||||
evdev_config_key = (char*)malloc(size_needed);
|
||||
sprintf(evdev_config_key, EVDEV_MAPPING_CONFIG_KEY, port+1);
|
||||
if (cfgExists("input", evdev_config_key) == 2)
|
||||
{
|
||||
string mapping_name = cfgLoadStr("input", evdev_config_key, "");
|
||||
|
||||
size_needed = snprintf(NULL, 0, EVDEV_MAPPING_PATH, mapping_name.c_str()) + 1;
|
||||
char* evdev_mapping_fname = (char*)malloc(size_needed);
|
||||
sprintf(evdev_mapping_fname, EVDEV_MAPPING_PATH, mapping_name.c_str());
|
||||
mapping = (char*)GetPath(evdev_mapping_fname).c_str();
|
||||
free(evdev_mapping_fname);
|
||||
}
|
||||
free(evdev_config_key);
|
||||
|
||||
input_evdev_init(&controllers[port], evdev_device, mapping);
|
||||
free(evdev_device);
|
||||
}
|
||||
|
||||
free(evdev_config_key);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -287,3 +307,5 @@ void os_DebugBreak()
|
|||
exit(-1);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue