summaryrefslogtreecommitdiff
path: root/ism
diff options
context:
space:
mode:
authorInHong Han <inhong1.han@samsung.com>2016-09-21 10:46:25 +0900
committerInHong Han <inhong1.han@samsung.com>2016-09-27 16:30:15 +0900
commitb985a22ab857798690b73513e4fc5f57354d4850 (patch)
tree91eb22dcac79352e00700fc9c26c74c06b0e5c8a /ism
parenteb433f39d328865ba5573139f3abfa64feee9d37 (diff)
downloadisf-b985a22ab857798690b73513e4fc5f57354d4850.tar.gz
isf-b985a22ab857798690b73513e4fc5f57354d4850.tar.bz2
isf-b985a22ab857798690b73513e4fc5f57354d4850.zip
Fix hardcoded key event in remote input
Change-Id: I5454f79c187814badcec07efc6e0c2148d70c3f8
Diffstat (limited to 'ism')
-rwxr-xr-xism/data/remote-input/openinput.js36
-rw-r--r--ism/extras/efl_panel/Makefile.am3
-rw-r--r--ism/extras/efl_panel/remote_input.cpp290
-rw-r--r--ism/extras/efl_panel/remote_input.h6
-rw-r--r--ism/extras/efl_panel/remote_input_keycode.h82
-rw-r--r--ism/extras/efl_panel/websocketserver.h2
-rw-r--r--ism/src/isf_remote_control.h2
7 files changed, 234 insertions, 187 deletions
diff --git a/ism/data/remote-input/openinput.js b/ism/data/remote-input/openinput.js
index afb7a1b1..f14b61c9 100755
--- a/ism/data/remote-input/openinput.js
+++ b/ism/data/remote-input/openinput.js
@@ -10,24 +10,24 @@ openInput.TV_KEY_ENTER = 0;
openInput.TV_KEY_SPACE = 1;
openInput.TV_KEY_BACKSPACE = 2;
openInput.TV_KEY_ESCAPE = 3;
-openInput.TV_KEY_SELECT = 36;
-openInput.TV_KEY_POWER = 124;
-openInput.TV_KEY_MENU = 10001;
-openInput.TV_KEY_HOME = 10002;
-openInput.TV_KEY_BACK = 10003;
-openInput.TV_KEY_UP = 111;
-openInput.TV_KEY_DOWN = 116;
-openInput.TV_KEY_LEFT = 113;
-openInput.TV_KEY_RIGHT = 114;
-openInput.TV_KEY_SWITCHMODE = 235;
-openInput.TV_KEY_CHANNEL_LIST = 68;
-openInput.TV_KEY_INFO = 69;
-openInput.TV_KEY_EXIT = 182;
-openInput.TV_KEY_CHANNEL_UP = 112;
-openInput.TV_KEY_CHANNEL_DOWN = 117;
-openInput.TV_KEY_MUTE = 121;
-openInput.TV_KEY_VOLUME_DOWN = 122;
-openInput.TV_KEY_VOLUME_UP = 123;
+openInput.TV_KEY_POWER = 100;
+openInput.TV_KEY_HOME = 101;
+openInput.TV_KEY_MENU = 102;
+openInput.TV_KEY_SELECT = 103;
+openInput.TV_KEY_BACK = 104;
+openInput.TV_KEY_EXIT = 105;
+openInput.TV_KEY_UP = 106;
+openInput.TV_KEY_DOWN = 107;
+openInput.TV_KEY_LEFT = 108;
+openInput.TV_KEY_RIGHT = 109;
+openInput.TV_KEY_VOLUME_UP = 110;
+openInput.TV_KEY_VOLUME_DOWN = 111;
+openInput.TV_KEY_MUTE = 112;
+openInput.TV_KEY_CHANNEL_UP = 113;
+openInput.TV_KEY_CHANNEL_DOWN = 114;
+openInput.TV_KEY_CHANNEL_LIST = 115;
+openInput.TV_KEY_INFO = 116;
+openInput.TV_KEY_SWITCHMODE = 117;
openInput.initialize = function(_app_id) {
if (this.impl === undefined) {
diff --git a/ism/extras/efl_panel/Makefile.am b/ism/extras/efl_panel/Makefile.am
index 296a2970..d3cb2f71 100644
--- a/ism/extras/efl_panel/Makefile.am
+++ b/ism/extras/efl_panel/Makefile.am
@@ -19,6 +19,7 @@ AM_CPPFLAGS = -I$(top_builddir) \
noinst_HEADERS = isf_panel_utility.h \
remote_input.h \
+ remote_input_keycode.h \
websocketserver.h
if ISF_BUILD_PANEL_EFL
@@ -47,6 +48,7 @@ isf_panel_efl_CXXFLAGS = @ECOREX_CFLAGS@ \
@EDBUS_CFLAGS@ \
@BLUETOOTH_CFLAGS@ \
@LIBWEBSOCKETS_CFLAGS@ \
+ @XKBCOMMON_CFLAGS@ \
@FEEDBACK_CFLAGS@ \
@APP_CONTROL_CFLAGS@ \
@PKGMGR_INFO_CFLAGS@ \
@@ -65,6 +67,7 @@ isf_panel_efl_LDFLAGS = @LTLIBINTL@ -rpath $(libdir) \
@EDBUS_LIBS@ \
@BLUETOOTH_LIBS@ \
@LIBWEBSOCKETS_LIBS@ \
+ @XKBCOMMON_LIBS@ \
@FEEDBACK_LIBS@ \
@APP_CONTROL_LIBS@ \
@PKGMGR_INFO_LIBS@ \
diff --git a/ism/extras/efl_panel/remote_input.cpp b/ism/extras/efl_panel/remote_input.cpp
index 35582f18..4fb528e1 100644
--- a/ism/extras/efl_panel/remote_input.cpp
+++ b/ism/extras/efl_panel/remote_input.cpp
@@ -23,8 +23,11 @@
*/
#include "remote_input.h"
+#include "remote_input_keycode.h"
#include <iostream>
#include <math.h>
+#include <Ecore_Wayland.h>
+#include <xkbcommon/xkbcommon.h>
using namespace scim;
@@ -36,13 +39,81 @@ extern std::vector<String> _icons;
extern std::vector<uint32> _options;
extern std::vector<TOOLBAR_MODE_T> _modes;
+typedef struct _keycode_map {
+ xkb_keysym_t keysym;
+ xkb_keycode_t keycode;
+} keycode_map;
+
static InfoManager* _info_manager;
+static int fd_uinput_keyboard = 0;
+static int fd_uinput_mouse = 0;
static char* surrounding_text = 0;
static int cursor_pos = 0;
static WebSocketServer *g_web_socket_server = NULL;
Remote_Input* Remote_Input::m_instance = NULL;
+Ecore_Event_Handler *keymap_update_handler = NULL;
+
+static void find_keycode(struct xkb_keymap *keymap, xkb_keycode_t key, void *data)
+{
+ keycode_map *found_keycodes = (keycode_map *)data;
+
+ if (!found_keycodes)
+ return;
+
+ xkb_keysym_t keysym = found_keycodes->keysym;
+ int nsyms = 0;
+ const xkb_keysym_t *syms_out = NULL;
+
+ nsyms = xkb_keymap_key_get_syms_by_level(keymap, key, 0, 0, &syms_out);
+ if (nsyms && syms_out)
+ {
+ if (*syms_out == keysym)
+ {
+ found_keycodes->keycode = key;
+ }
+ }
+}
+
+static int keycode_get_from_keysym(struct xkb_keymap *keymap, xkb_keysym_t keysym)
+{
+ keycode_map found_keycodes = {0,};
+ found_keycodes.keysym = keysym;
+ xkb_keymap_key_for_each(keymap, find_keycode, &found_keycodes);
+
+ return found_keycodes.keycode;
+}
+
+static int keycode_get_from_string(char *name)
+{
+ struct xkb_keymap *keymap = NULL;
+ xkb_keysym_t keysym = 0x0;
+ int keycode = 0;
+
+ keymap = ecore_wl_input_keymap_get(ecore_wl_input_get());
+ EINA_SAFETY_ON_NULL_GOTO(keymap, finish);
+
+ keysym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS);
+ EINA_SAFETY_ON_FALSE_GOTO(keysym != XKB_KEY_NoSymbol, finish);
+
+ keycode = keycode_get_from_keysym(keymap, keysym);
+
+ return keycode - 8;
+
+finish:
+ return 0;
+}
+
+static int open_file(const char *file_name) {
+ int file_descriptor = -1;
+ char resolved_path[MAXPATHLEN];
+
+ if (realpath(file_name, resolved_path) != NULL && !strcmp(file_name, resolved_path))
+ file_descriptor = open(file_name, O_WRONLY | O_NONBLOCK);
+
+ return file_descriptor;
+}
Remote_Input::Remote_Input()
{
@@ -52,6 +123,7 @@ Remote_Input::Remote_Input()
m_instance = this;
fd_uinput_keyboard = 0;
fd_uinput_mouse = 0;
+ keymap_update_handler = NULL;
}
Remote_Input::~Remote_Input()
@@ -59,6 +131,10 @@ Remote_Input::~Remote_Input()
if (m_instance == this) {
m_instance = NULL;
}
+
+ if (keymap_update_handler)
+ ecore_event_handler_del(keymap_update_handler);
+ keymap_update_handler = NULL;
}
Remote_Input*
@@ -112,20 +188,19 @@ void Remote_Input::exit()
close(fd_uinput_mouse);
}
-static int open_file(const char *file_name) {
- int file_descriptor = -1;
- char resolved_path[MAXPATHLEN];
-
- if (realpath(file_name, resolved_path) != NULL && !strcmp(file_name, resolved_path))
- file_descriptor = open(file_name, O_WRONLY | O_NONBLOCK);
+static Eina_Bool
+_ecore_wl_keymap_update_cb (void *data, int ev_type, void *event)
+{
+ Ecore_Wl_Event_Keymap_Update *ev = NULL;
+ ev = (Ecore_Wl_Event_Keymap_Update *) event;
- return file_descriptor;
-}
+ if (!ev) {
+ LOGW ("Failed to get keymap event");
+ return ECORE_CALLBACK_CANCEL;
+ }
-bool Remote_Input::init_uinput_keyboard_device() {
- //For initialize uinput device for keyboard
+ //For initialize uinput device for keyboard
struct uinput_user_dev device_key;
- int uinput_keys[] = {KEY_POWER, KEY_F6, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_MINUS, KEY_0, KEY_REDO, KEY_F10, KEY_F9, KEY_F8, KEY_F7, KEY_F5, KEY_F12, KEY_F11, KEY_LEFTMETA, KEY_HOMEPAGE, KEY_BOOKMARKS, KEY_MENU, KEY_F18, KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_ENTER, KEY_BACK, KEY_EXIT, KEY_ESC, KEY_BACKSPACE, KEY_POWER, KEY_PHONE};
memset(&device_key, 0, sizeof device_key);
const char *file_name = "/dev/uinput";
@@ -134,7 +209,7 @@ bool Remote_Input::init_uinput_keyboard_device() {
if (fd_uinput_keyboard < 0)
{
LOGW ("Fail to open fd uinput_keyboard!\n");
- return false;
+ return ECORE_CALLBACK_CANCEL;
}
const char *dev_name = "Remote-Input(Keyboard)";
@@ -147,37 +222,54 @@ bool Remote_Input::init_uinput_keyboard_device() {
if (write(fd_uinput_keyboard, &device_key, sizeof(device_key)) != sizeof(device_key))
{
LOGW ("Fail to setup uinput structure on fd\n");
- return false;
+ return ECORE_CALLBACK_CANCEL;
}
if (ioctl(fd_uinput_keyboard, UI_SET_EVBIT, EV_KEY) < 0)
{
LOGW ("Fail to enable EV_KEY event type\n");
- return false;
+ return ECORE_CALLBACK_CANCEL;
}
if (ioctl(fd_uinput_keyboard, UI_SET_EVBIT, EV_SYN) < 0)
{
LOGW ("Fail to enable EV_SYN event type\n");
- return false;
+ return ECORE_CALLBACK_CANCEL;
}
- for (unsigned int i = 0; i < sizeof(uinput_keys)/sizeof(uinput_keys[0]); i ++)
+ for (unsigned int i = 0; i < REMOTE_KEY_NAMES; i++)
{
- if (ioctl(fd_uinput_keyboard, UI_SET_KEYBIT, uinput_keys[i]) < 0)
- {
- LOGW ("Fail to register uinput event key : %d\n", uinput_keys[i]);
- return false;
+ if (remote_key_names[i].value >= REMOTE_KEY_TV_POWER) {
+ int keycode = keycode_get_from_string((char *)remote_key_names[i].name);
+ LOGD("remote init Key name: %s, key code : %d\n", (char *)remote_key_names[i].name, keycode);
+
+ if (ioctl(fd_uinput_keyboard, UI_SET_KEYBIT, keycode) < 0)
+ {
+ LOGW ("Fail to register uinput event key\n");
+ return ECORE_CALLBACK_CANCEL;
+ }
}
}
if (ioctl(fd_uinput_keyboard, UI_DEV_CREATE) < 0)
{
LOGW ("Fail to create keyboard uinput device\n");
- return false;
+ return ECORE_CALLBACK_CANCEL;
}
- return true;
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+bool Remote_Input::init_uinput_keyboard_device()
+{
+ keymap_update_handler = ecore_event_handler_add (ECORE_WL_EVENT_KEYMAP_UPDATE, _ecore_wl_keymap_update_cb, NULL);
+
+ if (!keymap_update_handler) {
+ LOGD ("Add keymap update callback failed\n");
+ return false;
+ }
+
+ return true;
}
bool Remote_Input::init_uinput_mouse_device()
@@ -345,153 +437,19 @@ void Remote_Input::handle_websocket_message(ISE_MESSAGE &message)
if (message.values.size() == 1) {
int e = atoi(message.values.at(0).c_str());
LOGD("send_key_event key num : %d", e);
- switch (e) {
- case 0: //enter
- LOGD ("enter");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Select));
- break;
- case 1: //space
- LOGD ("space");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_KP_Space));
- break;
- case 2: //backspace
- LOGD ("backspace");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_BackSpace));
- break;
- case 3: //esc
- LOGD ("esc");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Escape));
- break;
- case 4: //up
- LOGD ("up");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Up));
- break;
- case 5: //down
- LOGD ("down");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Down));
- break;
- case 6: //left
- LOGD ("left");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Left));
- break;
- case 7: //right
- LOGD ("right");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Right));
- break;
- case 8: //page_up
- LOGD ("page_up");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Page_Up));
- break;
- case 9: //page_down
- LOGD ("page_down");
- _info_manager->remoteinput_forward_key_event(KeyEvent(SCIM_KEY_Page_Down));
- break;
- case 10001://Menu
- LOGD ("menu");
- //panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_PHONE);
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_LEFTMETA); //for tv product binary
- break;
-
- case 10002://Home
- LOGD ("home");
- //panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_MENU);
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F5); //for tv product binary
- break;
-
- case 10003://Back
- LOGD ("back");
- //panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_BACK); //for TDC, 3.0 binary
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_ESC); //for tv product binary
- break;
-
- case 124://TV_KEY_POWER
- LOGD ("TV_KEY_POWER");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_POWER);
- break;
-
- case 235://TV_KEY_SWITCHMODE
- LOGD ("TV_KEY_SWITCHMODE");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F6);
- break;
-
- case 179://TV_KEY_MENU
- LOGD ("TV_KEY_SHORT_MENU");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_MENU);
- break;
-
- case 111://TV_KEY_UP
- LOGD ("TV_KEY_UP");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_UP);
- break;
-
- case 69://TV_KEY_INFO
- LOGD ("TV_KEY_INFO");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F18);
- break;
-
- case 113://TV_KEY_LEFT
- LOGD ("TV_KEY_LEFT");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_LEFT);
- break;
-
- case 36://TV_KEY_SELECT
- LOGD ("TV_KEY_SELECT");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_ENTER);
- break;
-
- case 114://TV_KEY_RIGHT
- LOGD ("TV_KEY_RIGHT");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_RIGHT);
- break;
-
- case 166://TV_KEY_BACK
- LOGD ("TV_KEY_BACK");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_BACK);
- break;
-
- case 116://TV_KEY_DOWN
- LOGD ("TV_KEY_DOWN");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_DOWN);
- break;
- case 182://TV_KEY_EXIT
- LOGD ("TV_KEY_EXIT");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_EXIT);
- break;
-
- case 123://TV_KEY_VOL_UP
- LOGD ("TV_KEY_VOL_UP");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F10);
- break;
-
- case 121://TV_KEY_MUTE
- LOGD ("TV_KEY_MUTE");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F8);
- break;
-
- case 112://TV_KEY_CHAN_UP
- LOGD ("TV_KEY_CHAN_UP");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F12);
- break;
-
- case 122://TV_KEY_VOL_DOWN
- LOGD ("TV_KEY_VOL_DOWN");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F9);
- break;
-
- case 68://TV_KEY_CHAN_LIST
- LOGD ("TV_KEY_CHAN_LIST");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F7);
- break;
-
- case 117://TV_KEY_CHAN_DOWN
- LOGD ("TV_KEY_CHAN_DOWN");
- panel_send_uinput_event_for_key(UINPUT_KEYBOARD, KEY_F11);
- break;
+ 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 {
+ int keycode = keycode_get_from_string((char *)remote_key_names[i].name);
- default:
- LOGD ("unknow key=%d", e);
+ if (keycode)
+ panel_send_uinput_event_for_key(UINPUT_KEYBOARD, keycode);
+ }
break;
+ }
}
}
}
diff --git a/ism/extras/efl_panel/remote_input.h b/ism/extras/efl_panel/remote_input.h
index c2288891..cecb2c76 100644
--- a/ism/extras/efl_panel/remote_input.h
+++ b/ism/extras/efl_panel/remote_input.h
@@ -53,6 +53,10 @@
#include "scim.h"
#include "websocketserver.h"
+#ifdef LOG_TAG
+# undef LOG_TAG
+#endif
+#define LOG_TAG "ISF_REMOTE_INPUT"
using namespace scim;
enum UINPUT_DEVICE{
@@ -66,8 +70,6 @@ public :
private:
static Remote_Input* m_instance;
- int fd_uinput_keyboard;
- int fd_uinput_mouse;
public:
Remote_Input();
diff --git a/ism/extras/efl_panel/remote_input_keycode.h b/ism/extras/efl_panel/remote_input_keycode.h
new file mode 100644
index 00000000..dd7f5055
--- /dev/null
+++ b/ism/extras/efl_panel/remote_input_keycode.h
@@ -0,0 +1,82 @@
+#ifndef _REMOTE_INPUT_KEYCODE_H
+#define _REMOTE_INPUT_KEYCODE_H
+
+enum Remote_KeyCode
+{
+ // 0 ~ 99: default key
+ REMOTE_KEY_ENTER = 0,
+ REMOTE_KEY_SPACE = 1,
+ REMOTE_KEY_BACKSPACE = 2,
+ REMOTE_KEY_ESCAPE = 3,
+ REMOTE_KEY_UP = 4,
+ REMOTE_KEY_DOWN = 5,
+ REMOTE_KEY_LEFT = 6,
+ REMOTE_KEY_RIGHT = 7,
+ REMOTE_KEY_PAGE_UP = 8,
+ REMOTE_KEY_PAGE_DOWN = 9,
+ REMOTE_KEY_SELECT = 10,
+ REMOTE_KEY_CANCEL = 11,
+ // 100 ~ 199: TV key
+ REMOTE_KEY_TV_POWER = 100,
+ REMOTE_KEY_TV_HOME = 101,
+ REMOTE_KEY_TV_MENU = 102,
+ REMOTE_KEY_TV_SELECT = 103,
+ REMOTE_KEY_TV_BACK = 104,
+ REMOTE_KEY_TV_EXIT = 105,
+ REMOTE_KEY_TV_UP = 106,
+ REMOTE_KEY_TV_DOWN = 107,
+ REMOTE_KEY_TV_LEFT = 108,
+ REMOTE_KEY_TV_RIGHT = 109,
+ REMOTE_KEY_TV_VOL_UP = 110,
+ REMOTE_KEY_TV_VOL_DOWN = 111,
+ REMOTE_KEY_TV_MUTE = 112,
+ REMOTE_KEY_TV_CHAN_UP = 113,
+ REMOTE_KEY_TV_CHAN_DOWN = 114,
+ REMOTE_KEY_TV_CHAN_LIST = 115,
+ REMOTE_KEY_TV_INFO = 116,
+ REMOTE_KEY_TV_SWITCHMODE = 117,
+};
+
+struct _RemoteInputKeyName
+{
+ int value;
+ const char *name;
+};
+
+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"},
+ {REMOTE_KEY_TV_SELECT, "Return"},
+ {REMOTE_KEY_TV_BACK, "XF86Back"},
+ {REMOTE_KEY_TV_EXIT, "XF86Exit"},
+ {REMOTE_KEY_TV_UP, "Up"},
+ {REMOTE_KEY_TV_DOWN, "Down"},
+ {REMOTE_KEY_TV_LEFT, "Left"},
+ {REMOTE_KEY_TV_RIGHT, "Right"},
+ {REMOTE_KEY_TV_VOL_UP, "XF86AudioRaiseVolume"},
+ {REMOTE_KEY_TV_VOL_DOWN, "XF86AudioLowerVolume"},
+ {REMOTE_KEY_TV_MUTE, "XF86AudioMute"},
+ {REMOTE_KEY_TV_CHAN_UP, "XF86RaiseChannel"},
+ {REMOTE_KEY_TV_CHAN_DOWN, "XF86LowerChannel"},
+ {REMOTE_KEY_TV_CHAN_LIST, "XF86ChannelList"},
+ {REMOTE_KEY_TV_INFO, "XF86Info"},
+ {REMOTE_KEY_TV_SWITCHMODE,"XF86Display"},
+};
+
+#define REMOTE_KEY_NAMES (sizeof (remote_key_names) / sizeof (remote_key_names[0]))
+
+#endif // _REMOTE_INPUT_KEYCODE_H \ No newline at end of file
diff --git a/ism/extras/efl_panel/websocketserver.h b/ism/extras/efl_panel/websocketserver.h
index 303526cb..d579ad16 100644
--- a/ism/extras/efl_panel/websocketserver.h
+++ b/ism/extras/efl_panel/websocketserver.h
@@ -295,4 +295,4 @@ protected:
Ecore_Pipe *m_recv_message_pipe;
};
-#endif // _WEB_HELPER_AGENT_WEBSOCKET_H_
+#endif // _WEB_SOCKET_SERVER_H_
diff --git a/ism/src/isf_remote_control.h b/ism/src/isf_remote_control.h
index a97b9522..1ea4d0fd 100644
--- a/ism/src/isf_remote_control.h
+++ b/ism/src/isf_remote_control.h
@@ -44,6 +44,8 @@ typedef enum {
REMOTE_CONTROL_KEY_RIGHT, /**< Right key */
REMOTE_CONTROL_KEY_PAGE_UP, /**< Page up key */
REMOTE_CONTROL_KEY_PAGE_DOWN, /**< Page down key */
+ REMOTE_CONTROL_KEY_SELECT, /**< Select key */
+ REMOTE_CONTROL_KEY_CANCEL, /**< Cancel key */
} remote_control_key_type_e;
/**