int e = atoi(message.values.at(0).c_str());
LOGD("send_key_event key num : %d", e);
- for (unsigned int i = 0; i < REMOTE_KEY_NAMES; i++) {
- if (remote_key_names[i].value == e) {
- if (remote_key_names[i].value < REMOTE_KEY_TV_POWER) {
- _info_manager->remoteinput_forward_key_event(KeyEvent((char *)remote_key_names[i].name));
- } else {
+ if (e < REMOTE_KEY_TV_POWER) {
+ _info_manager->remoteinput_forward_key_event(KeyEvent(remote_key_codes[e].code));
+ } else {
+ for (unsigned int i = 0; i < REMOTE_KEY_NAMES; i++) {
+ if (remote_key_names[i].value == e) {
int keycode = keycode_get_from_string((char *)remote_key_names[i].name);
if (keycode)
panel_send_uinput_event_for_key(UINPUT_KEYBOARD, keycode);
+
+ break;
}
- break;
}
}
}
REMOTE_KEY_TV_SWITCHMODE = 117,
};
+struct _RemoteInputKeyCode
+{
+ int value;
+ int code;
+};
+
struct _RemoteInputKeyName
{
int value;
const char *name;
};
+static _RemoteInputKeyCode remote_key_codes [] =
+{
+ {REMOTE_KEY_ENTER, SCIM_KEY_Return},
+ {REMOTE_KEY_SPACE, SCIM_KEY_KP_Space},
+ {REMOTE_KEY_BACKSPACE, SCIM_KEY_BackSpace},
+ {REMOTE_KEY_ESCAPE, SCIM_KEY_Escape},
+ {REMOTE_KEY_UP, SCIM_KEY_Up},
+ {REMOTE_KEY_DOWN, SCIM_KEY_Down},
+ {REMOTE_KEY_LEFT, SCIM_KEY_Left},
+ {REMOTE_KEY_RIGHT, SCIM_KEY_Right},
+ {REMOTE_KEY_PAGE_UP, SCIM_KEY_Page_Up},
+ {REMOTE_KEY_PAGE_DOWN, SCIM_KEY_Page_Down},
+ {REMOTE_KEY_SELECT, SCIM_KEY_Select},
+ {REMOTE_KEY_CANCEL, SCIM_KEY_Cancel},
+};
+
static _RemoteInputKeyName remote_key_names [] =
{
- {REMOTE_KEY_ENTER, "SCIM_KEY_Return"},
- {REMOTE_KEY_SPACE, "SCIM_KEY_KP_Space"},
- {REMOTE_KEY_BACKSPACE, "SCIM_KEY_BackSpace"},
- {REMOTE_KEY_ESCAPE, "SCIM_KEY_Escape"},
- {REMOTE_KEY_UP, "SCIM_KEY_Up"},
- {REMOTE_KEY_DOWN, "SCIM_KEY_Down"},
- {REMOTE_KEY_LEFT, "SCIM_KEY_Left"},
- {REMOTE_KEY_RIGHT, "SCIM_KEY_Right"},
- {REMOTE_KEY_PAGE_UP, "SCIM_KEY_Page_Up"},
- {REMOTE_KEY_PAGE_DOWN, "SCIM_KEY_Page_Down"},
- {REMOTE_KEY_SELECT, "SCIM_KEY_Select"},
- {REMOTE_KEY_CANCEL, "SCIM_KEY_Cancel"},
{REMOTE_KEY_TV_POWER, "XF86PowerOff"},
{REMOTE_KEY_TV_HOME, "XF86Home"},
{REMOTE_KEY_TV_MENU, "XF86SysMenu"},