[M108 Migration][VD] Support all TV keys 61/288561/2
authorshurong.chen <shurong.chen@samsung.com>
Fri, 17 Feb 2023 07:45:00 +0000 (15:45 +0800)
committerBot Blink <blinkbot@samsung.com>
Mon, 20 Feb 2023 09:11:49 +0000 (09:11 +0000)
refer:
[M94 AURA][VD] Support all TV keys
https://review.tizen.org/gerrit/#/c/279339/

[M94 Aura Migration][VD] Support XF86LFDSet XF86LFDUnset and XF86LFDScreenLock key
https://review.tizen.org/gerrit/#/c/285597

[M94 Aura Migration][VD] Support KEY_GAMEPAD_HOMEKEY key
https://review.tizen.org/gerrit/#/c/282778/

Change-Id: I6fdbc2e9553ab52bbe9a99b3497309aa30ae6494
Signed-off-by: shurong.chen <shurong.chen@samsung.com>
third_party/blink/renderer/platform/keyboard_codes.h
third_party/blink/renderer/platform/windows_keyboard_codes.h
tizen_src/chromium_impl/ui/ozone/platform/efl/efl_keycode_map.h
ui/events/keycodes/dom/dom_key_data.inc
ui/events/keycodes/keyboard_codes_posix.h

index b5c7d2f..18b96a5 100644 (file)
@@ -640,6 +640,30 @@ enum {
   // VKEY_INFO (1C9)
   VKEY_INFO = VK_INFO,
 
+  // VKEY_VOICEGUIDE (276D)
+  VKEY_VOICEGUIDE = VK_VOICEGUIDE,
+
+  // VKEY_CC_DIVISION (2771)
+  VKEY_CC_DIVISION = VK_CC_DIVISION,
+
+  // VKEY_SIGN_LANGUAGE_ZOOM (2777)
+  VKEY_SIGN_LANGUAGE_ZOOM = VK_SIGN_LANGUAGE_ZOOM,
+
+  // VKEY_SIGN_LANGUAGEZOOM_PLUS (2789)
+  VKEY_SIGN_LANGUAGEZOOM_PLUS = VK_SIGN_LANGUAGEZOOM_PLUS,
+
+  // VKEY_SIGN_LANGUAGEZOOM_MINUS (278A)
+  VKEY_SIGN_LANGUAGEZOOM_MINUS = VK_SIGN_LANGUAGEZOOM_MINUS,
+
+  // VKEY_CC_PRESET (278B)
+  VKEY_CC_PRESET = VK_CC_PRESET,
+
+  // VKEY_CC_POSITION (2794)
+  VKEY_CC_POSITION = VK_CC_POSITION,
+
+  // VKEY_CC_SIZE (2798)
+  VKEY_CC_SIZE = VK_CC_SIZE,
+
   // VKEY_REPEAT (2799)
   VKEY_REPEAT = VK_REPEAT,
 
@@ -673,7 +697,7 @@ enum {
   // VKEY_DTV (27AA)
   VKEY_DTV = VK_DTV,
 
-  // VKEY_STB_POWER (27AB)
+  // VKEY_STB_POWER (28F7)
   VKEY_STB_POWER = VK_STB_POWER,
 
   // VKEY_PANEL_DOWN (27AD)
@@ -799,6 +823,12 @@ enum {
   // VKEY_W_LINK (2757)
   VKEY_W_LINK = VK_W_LINK,
 
+  // VKEY_LFD_LOCK (27A3)
+  VKEY_LFD_LOCK = VK_LFD_LOCK,
+
+  // VKEY_LFD_UNSET (27B6)
+  VKEY_LFD_UNSET = VK_LFD_UNSET,
+
   // VKEY_ESAVING (27E5)
   VKEY_ESAVING = VK_ESAVING,
 
@@ -877,8 +907,11 @@ enum {
   // VKEY_SOFT_WAKE_UP (2804)
   VKEY_SOFT_WAKE_UP = VK_SOFT_WAKE_UP,
 
-  // VKEY_PANEL_ON (280B)
-  VKEY_PANEL_ON = VK_PANEL_ON,
+  // VKEY_LFD_SET (2805)
+  VKEY_LFD_SET = VK_LFD_SET,
+
+  // VKEY_VG_BACKGROUND (280B)
+  VKEY_VG_BACKGROUND = VK_VG_BACKGROUND,
 
   // VKEY_PLAY_BACK (280C)
   VKEY_PLAY_BACK = VK_PLAY_BACK,
@@ -886,12 +919,45 @@ enum {
   // VKEY_EXTRA (280D)
   VKEY_EXTRA = VK_EXTRA,
 
+  // VKEY_CURRENT_TIME (280E)
+  VKEY_CURRENT_TIME = VK_CURRENT_TIME,
+
+  // VKEY_VOICE_GENDER (280F)
+  VKEY_VOICE_GENDER = VK_VOICE_GENDER,
+
+  // VKEY_VOICE_PITCH (2810)
+  VKEY_VOICE_PITCH = VK_VOICE_PITCH,
+
+  // VKEY_VOICE_SPEED (287A)
+  VKEY_VOICE_SPEED = VK_VOICE_SPEED,
+
+  // VKEY_USERGUIDE_ACCESSIBILITY (287B)
+  VKEY_USERGUIDE_ACCESSIBILITY = VK_USERGUIDE_ACCESSIBILITY,
+
+  // VKEY_ACCESSIBILITY_SHORTCUT (287C)
+  VKEY_ACCESSIBILITY_SHORTCUT = VK_ACCESSIBILITY_SHORTCUT,
+
   // VKEY_COLOR (2891)
   VKEY_COLOR = VK_COLOR,
 
+  // VKEY_CC_COLOR (289B)
+  VKEY_CC_COLOR = VK_CC_COLOR,
+
   // VKEY_ALARM (28B2)
   VKEY_ALARM = VK_ALARM,
 
+  // VKEY_SRDCH_SELECT (28D4)
+  VKEY_SRDCH_SELECT = VK_SRDCH_SELECT,
+
+  // VKEY_BATTERY_ALARM (28F6)
+  VKEY_BATTERY_ALARM = VK_BATTERY_ALARM,
+
+  // VKEY_QUICK_ACCESS (28F8)
+  VKEY_QUICK_ACCESS = VK_QUICK_ACCESS,
+
+  // VKEY_FOCUS (28FA)
+  VKEY_FOCUS = VK_FOCUS,
+
   // VKEY_HOTEL_MOVIES (28FE)
   VKEY_HOTEL_MOVIES = VK_HOTEL_MOVIES,
 
@@ -904,6 +970,30 @@ enum {
   // VKEY_HOTEL_APPS_GUEST (2901)
   VKEY_HOTEL_APPS_GUEST = VK_HOTEL_APPS_GUEST,
 
+  // VKEY_MULTI_VIEW (2909)
+  VKEY_MULTI_VIEW = VK_MULTI_VIEW,
+
+  // VKEY_LAUNCH_APP1, Hulu (290B)
+  VKEY_LAUNCH_APP1 = VK_LAUNCH_APP1,
+
+  // VKEY_LAUNCH_APP2, RakutenTV (290C)
+  VKEY_LAUNCH_APP2 = VK_LAUNCH_APP2,
+
+  // VKEY_ZEE5 (290D)
+  VKEY_ZEE5 = VK_ZEE5,
+
+  // VKEY_GLOBO (290E)
+  VKEY_GLOBO = VK_GLOBO,
+
+  // VKEY_RUSSIA_CP1, Key for CP1 of russia(290F)
+  VKEY_RUSSIA_CP1 = VK_RUSSIA_CP1,
+
+  // VKEY_RUSSIA_CP2, Key for CP2 of russia(2910)
+  VKEY_RUSSIA_CP2 = VK_RUSSIA_CP2,
+
+  // VKEY_RUSSIA_CP3, Key for CP3 of russia(2911)
+  VKEY_RUSSIA_CP3 = VK_RUSSIA_CP3,
+
   // VKEY_NOISE_REDUCTION (2917)
   VKEY_NOISE_REDUCTION = VK_NOISE_REDUCTION,
 
@@ -913,6 +1003,147 @@ enum {
   // VKEY_HOTEL_ROOM_CONTROL (291A)
   VKEY_HOTEL_ROOM_CONTROL = VK_HOTEL_ROOM_CONTROL,
 
+  // VKEY_BT_PAIRING_GUIDE (291B)
+  VKEY_BT_PAIRING_GUIDE = VK_BT_PAIRING_GUIDE,
+
+  // VKEY_INTILE_B_SHOW (291C)
+  VKEY_INTILE_B_SHOW = VK_INTILE_B_SHOW,
+
+  // VKEY_INTILE_B_HIDE (291D)
+  VKEY_INTILE_B_HIDE = VK_INTILE_B_HIDE,
+
+  // VKEY_AUDIO_PREV (291E)
+  VKEY_AUDIO_PREV = VK_AUDIO_PREV,
+
+  // VKEY_AUDIO_FORWARD (291F)
+  VKEY_AUDIO_FORWARD = VK_AUDIO_FORWARD,
+
+  // VKEY_AUDIO_PLAY_PAUSE (2920)
+  VKEY_AUDIO_PLAY_PAUSE = VK_AUDIO_PLAY_PAUSE,
+
+  // VKEY_AUDIO_MEDIA (2921)
+  VKEY_AUDIO_MEDIA = VK_AUDIO_MEDIA,
+
+  // VKEY_AMBIENT (2922)
+  VKEY_AMBIENT = VK_AMBIENT,
+
+  // VKEY_AMBIENTLONG (2927)
+  VKEY_AMBIENTLONG = VK_AMBIENTLONG,
+
+  // VKEY_FUNCTIONS_YOUTUBE (2929)
+  VKEY_FUNCTIONS_YOUTUBE = VK_FUNCTIONS_YOUTUBE,
+
+  // VKEY_BT_FAR_VOICE (292A)
+  VKEY_BT_FAR_VOICE = VK_BT_FAR_VOICE,
+
+  // VKEY_AGING_MODE (292C)
+  VKEY_AGING_MODE = VK_AGING_MODE,
+
+  // VKEY_LUX_TRIGGER (292F)
+  VKEY_LUX_TRIGGER = VK_LUX_TRIGGER,
+
+  // VKEY_LUX_TRIGGER (2931)
+  VKEY_MYCONTENT = VK_MYCONTENT,
+
+  // VKEY_AI_SPEAKER_TRIGGER (2932)
+  VKEY_AI_SPEAKER_TRIGGER = VK_AI_SPEAKER_TRIGGER,
+
+  // VKEY_ABOUTTHISTV_QRCODE (2934)
+  VKEY_ABOUTTHISTV_QRCODE = VK_ABOUTTHISTV_QRCODE,
+
+  // VKEY_TV_PLUS (2948)
+  VKEY_TV_PLUS = VK_TV_PLUS,
+
+  // VK_ROTATE_PANEL (2949)
+  VKEY_ROTATE_PANEL = VK_ROTATE_PANEL,
+
+  // VKEY_AOD (294A)
+  VKEY_AOD = VK_AOD,
+
+  // VKEY_PLAY_BACK_GAME (294B)
+  VKEY_PLAY_BACK_GAME = VK_PLAY_BACK_GAME,
+
+  // VKEY_GAMEPAD_HOMEKEY (294C)
+  VKEY_GAMEPAD_HOMEKEY = VK_GAMEPAD_HOMEKEY,
+
+  // VKEY_HIGHCONTRAST (2958)
+  VKEY_HIGHCONTRAST = VK_HIGHCONTRAST,
+
+  // VKEY_ENLARGE (2959)
+  VKEY_ENLARGE = VK_ENLARGE,
+
+  // VKEY_GRAYSCALE (295A)
+  VKEY_GRAYSCALE = VK_GRAYSCALE,
+
+  // VKEY_COLOR_INVERSION (295B)
+  VKEY_COLOR_INVERSION = VK_COLOR_INVERSION,
+
+  // VKEY_LEARN_REMOTE (295C)
+  VKEY_LEARN_REMOTE = VK_LEARN_REMOTE,
+
+  // VKEY_LEARN_MENU (295D)
+  VKEY_LEARN_MENU = VK_LEARN_MENU,
+
+  // VKEY_REPEAT_DELAY (295E)
+  VKEY_REPEAT_DELAY = VK_REPEAT_DELAY,
+
+  // VKEY_VIETNAM_CP,Key for CP of Vietnam (295F)
+  VKEY_VIETNAM_CP = VK_VIETNAM_CP,
+
+  // VKEY_MENA_CP,Key for CP of MENA (Middle East, North Africa) (2960)
+  VKEY_MENA_CP = VK_MENA_CP,
+
+  // VKEY_ARK_CONTROLLER_VOLUME (2961)
+  VKEY_ARK_CONTROLLER_VOLUME = VK_ARK_CONTROLLER_VOLUME,
+
+  // VKEY_ANDROID_MENU (2963)
+  VKEY_ANDROID_MENU = VK_ANDROID_MENU,
+
+  // VKEY_GRAPHICZOOM (2968)
+  VKEY_GRAPHICZOOM = VK_GRAPHICZOOM,
+
+  // VKEY_VISUAL_IMPAIRED (2969)
+  VKEY_VISUAL_IMPAIRED = VK_VISUAL_IMPAIRED,
+
+  // VKEY_UNIVERSAL_SWITCH (296A)
+  VKEY_UNIVERSAL_SWITCH = VK_UNIVERSAL_SWITCH,
+
+  // VKEY_VOICEGUIDE_PLAY_PAUSE (296B)
+  VKEY_VOICEGUIDE_PLAY_PAUSE = VK_VOICEGUIDE_PLAY_PAUSE,
+
+  // VKEY_VOICEGUIDE_REPEAT (296C)
+  VKEY_VOICEGUIDE_REPEAT = VK_VOICEGUIDE_REPEAT,
+
+  // VKEY_CC_ONOFF (2978)
+  VKEY_CC_ONOFF = VK_CC_ONOFF,
+
+  // VKEY_AUTO_CC (2979)
+  VKEY_AUTO_CC = VK_AUTO_CC,
+
+  // VKEY_AVATAR_SIGNLANGUAGE (297A)
+  VKEY_AVATAR_SIGNLANGUAGE = VK_AVATAR_SIGNLANGUAGE,
+
+  // VKEY_SPOKEN_CC (297B)
+  VKEY_SPOKEN_CC = VK_SPOKEN_CC,
+
+  // VKEY_PICTURE_OFF (297C)
+  VKEY_PICTURE_OFF = VK_PICTURE_OFF,
+
+  // VKEY_SELECTABLE_VOICEGUIDE (297D)
+  VKEY_SELECTABLE_VOICEGUIDE = VK_SELECTABLE_VOICEGUIDE,
+
+  // VKEY_TVING (2988)
+  VKEY_TVING = VK_TVING,
+
+  // VKEY_HOTSTAR (2989)
+  VKEY_HOTSTAR = VK_HOTSTAR,
+
+  // VKEY_DISNEY (298A)
+  VKEY_DISNEY = VK_DISNEY,
+
+  // VKEY_KINOPOISK (298B)
+  VKEY_KINOPOISK = VK_KINOPOISK,
+
   // VKEY_IME_DONE (FF60) Done key on TV IME panel
   VKEY_IME_DONE = VK_IME_DONE,
 
index dcfd4d3..2d4e6d8 100644 (file)
 #define VK_VOLUME_DOWN 0x1C0
 #define VK_VOLUME_MUTE 0x1C1
 #define VK_INFO 0x1C9
+
+#define VK_VOICEGUIDE 0x276D
+#define VK_CC_DIVISION 0x2771
+#define VK_SIGN_LANGUAGE_ZOOM 0x2777
+#define VK_SIGN_LANGUAGEZOOM_PLUS 0x2789
+#define VK_SIGN_LANGUAGEZOOM_MINUS 0x278A
+#define VK_CC_PRESET 0x278B
+#define VK_CC_POSITION 0x2794
+#define VK_CC_SIZE 0x2798
+
 #define VK_REPEAT 0x2799
 #define VK_ASPECT 0x279C
 #define VK_PMODE 0x279D
 #define VK_SLEEP 0x27A6
 #define VK_TV 0x27A9
 #define VK_DTV 0x27AA
-#define VK_STB_POWER 0x27AB
+#define VK_STB_POWER 0x28F7
 #define VK_PANEL_DOWN 0x27AD
 #define VK_CONVERGENCE 0x27AE
 #define VK_BT_COLOR_MECHA 0x27AF
 #define VK_WIFI_PAIRING 0x27DA
 #define VK_BT_SAMSUNG_APPS 0x27E3
 #define VK_W_LINK 0x2757
+#define VK_LFD_LOCK 0x27A3
+#define VK_LFD_UNSET 0x27B6
 #define VK_ESAVING 0x27E5
 #define VK_CLEAR 0x27E6
 #define VK_TV_SNS 0x27E9
 #define VK_PAGE_RIGHT 0x280A
 
 #define VK_SOFT_WAKE_UP 0x2804
-#define VK_PANEL_ON 0x280B
+#define VK_LFD_SET 0x2805
+#define VK_VG_BACKGROUND 0x280B
 #define VK_PLAY_BACK 0x280C
 #define VK_EXTRA 0x280D
+#define VK_CURRENT_TIME 0x280E
+#define VK_VOICE_GENDER 0x280F
+#define VK_VOICE_PITCH 0x2810
+#define VK_VOICE_SPEED 0x287A
+#define VK_USERGUIDE_ACCESSIBILITY 0x287B
+#define VK_ACCESSIBILITY_SHORTCUT 0x287C
 #define VK_COLOR 0x2891
 
+#define VK_CC_COLOR 0x289B
+
 #define VK_ALARM 0x28B2
+
+#define VK_SRDCH_SELECT 0x28D4
+#define VK_BATTERY_ALARM 0x28F6
+#define VK_QUICK_ACCESS 0x28F8
+
+#define VK_FOCUS 0x28FA
+
 #define VK_HOTEL_MOVIES 0x28FE
 #define VK_HOTEL_LANGUAGE 0x28FF
 #define VK_HOTEL_TV_GUIDE 0x2900
 #define VK_HOTEL_APPS_GUEST 0x2901
+#define VK_MULTI_VIEW 0x2909
+
+#define VK_LAUNCH_APP1 0x290B
+#define VK_LAUNCH_APP2 0x290C
+#define VK_ZEE5 0x290D
+#define VK_GLOBO 0x290E
+
+#define VK_RUSSIA_CP1 0x290F
+#define VK_RUSSIA_CP2 0x2910
+#define VK_RUSSIA_CP3 0x2911
+
 #define VK_NOISE_REDUCTION 0x2917
 #define VK_HELP 0x2918
 #define VK_NR 0x2919
 #define VK_HOTEL_ROOM_CONTROL 0x291A
 
+#define VK_BT_PAIRING_GUIDE 0x291B
+#define VK_INTILE_B_SHOW 0x291C
+#define VK_INTILE_B_HIDE 0x291D
+#define VK_AUDIO_PREV 0x291E
+#define VK_AUDIO_FORWARD 0x291F
+#define VK_AUDIO_PLAY_PAUSE 0x2920
+#define VK_AUDIO_MEDIA 0x2921
+
+#define VK_AMBIENT 0x2922
+#define VK_AMBIENTLONG 0x2927
+
+#define VK_FUNCTIONS_YOUTUBE 0x2929
+#define VK_BT_FAR_VOICE 0x292A
+#define VK_AGING_MODE 0x292C
+#define VK_LUX_TRIGGER 0x292F
+#define VK_MYCONTENT 0x2931
+#define VK_AI_SPEAKER_TRIGGER 0x2932
+#define VK_ABOUTTHISTV_QRCODE 0x2934
+
+#define VK_TV_PLUS 0x2948
+#define VK_ROTATE_PANEL 0x2949
+#define VK_AOD 0x294A
+#define VK_PLAY_BACK_GAME 0x294B
+#define VK_GAMEPAD_HOMEKEY 0x294C
+
+#define VK_HIGHCONTRAST 0x2958
+#define VK_ENLARGE 0x2959
+#define VK_GRAYSCALE 0x295A
+#define VK_COLOR_INVERSION 0x295B
+#define VK_LEARN_REMOTE 0x295C
+#define VK_LEARN_MENU 0x295D
+#define VK_REPEAT_DELAY 0x295E
+
+#define VK_VIETNAM_CP 0x295F
+#define VK_MENA_CP 0x2960
+#define VK_ARK_CONTROLLER_VOLUME 0x2961
+#define VK_ANDROID_MENU 0x2963
+
+#define VK_GRAPHICZOOM 0x2968
+#define VK_VISUAL_IMPAIRED 0x2969
+#define VK_UNIVERSAL_SWITCH 0x296A
+#define VK_VOICEGUIDE_PLAY_PAUSE 0x296B
+#define VK_VOICEGUIDE_REPEAT 0x296C
+
+#define VK_CC_ONOFF 0x2978
+#define VK_AUTO_CC 0x2979
+#define VK_AVATAR_SIGNLANGUAGE 0x297A
+#define VK_SPOKEN_CC 0x297B
+#define VK_PICTURE_OFF 0x297C
+#define VK_SELECTABLE_VOICEGUIDE 0x297D
+#define VK_TVING 0x2988
+#define VK_HOTSTAR 0x2989
+#define VK_DISNEY 0x298A
+#define VK_KINOPOISK 0x298B
+
 #define VK_IME_DONE \
   0xFF60  // keyname of IME Done button is Select. but Select(0xFF60) is only
           // Tizen TV IME keyname defined by ISF, there is no X Server keycode.
index 4c3e9ef..aa8a622 100644 (file)
@@ -4,7 +4,10 @@
 
 #include <unordered_map>
 
+#if defined(IS_TIZEN_TV)
 #include "tizen_src/chromium_impl/tizen/system_info.h"
+#include "tizen_src/ewk/efl_integration/common/application_type.h"
+#endif
 
 namespace ui {
 
@@ -30,233 +33,490 @@ bool IsRCDevice(Evas_Device_Class device_id, const std::string device_name) {
 
 static ui::KeyboardCode UIKeyCodeFromEflKey(const char* key) {
   static std::unordered_map<std::string, ui::KeyboardCode> code_from_key_map({
-    {"Shift_L", ui::VKEY_SHIFT}, {"Shift_R", ui::VKEY_SHIFT},
-        {"Control_L", ui::VKEY_CONTROL}, {"Control_R", ui::VKEY_CONTROL},
-        {"Alt_L", ui::VKEY_MENU}, {"Alt_R", ui::VKEY_MENU},
-        {"Meta_L", ui::VKEY_MENU}, {"Meta_R", ui::VKEY_MENU},
-
-        // comes from KeyboardCodeFromXKeysym
-        {"BackSpace", ui::VKEY_BACK}, {"Delete", ui::VKEY_DELETE},
-        {"Tab", ui::VKEY_TAB}, {"Return", ui::VKEY_RETURN},
-        {"KP_Enter", ui::VKEY_RETURN}, {"Clear", ui::VKEY_CLEAR},
-        {"space", ui::VKEY_SPACE}, {"Home", ui::VKEY_HOME},
-        {"KP_Home", ui::VKEY_HOME}, {"End", ui::VKEY_END},
-        {"KP_End", ui::VKEY_END}, {"Prior", ui::VKEY_PRIOR},
-        {"KP_Prior", ui::VKEY_PRIOR}, {"Next", ui::VKEY_NEXT},
-        {"KP_Next", ui::VKEY_NEXT}, {"Left", ui::VKEY_LEFT},
-        {"KP_Left", ui::VKEY_LEFT}, {"Right", ui::VKEY_RIGHT},
-        {"KP_Right", ui::VKEY_RIGHT}, {"Down", ui::VKEY_DOWN},
-        {"KP_Down", ui::VKEY_DOWN}, {"Up", ui::VKEY_UP}, {"KP_Up", ui::VKEY_UP},
-        {"Escape", ui::VKEY_ESCAPE}, {"Kana_Lock", ui::VKEY_KANA},
-        {"Kana_Shift", ui::VKEY_KANA}, {"Hangul", ui::VKEY_HANGUL},
-        {"Hangul_Hanja", ui::VKEY_HANJA}, {"Kanji", ui::VKEY_KANJI},
-        {"Henkan", ui::VKEY_CONVERT}, {"Muhenkan", ui::VKEY_NONCONVERT},
-        {"Zenkaku_Hankaku", ui::VKEY_DBE_DBCSCHAR}, {"KP_0", ui::VKEY_NUMPAD0},
-        {"KP_1", ui::VKEY_NUMPAD1}, {"KP_2", ui::VKEY_NUMPAD2},
-        {"KP_3", ui::VKEY_NUMPAD3}, {"KP_4", ui::VKEY_NUMPAD4},
-        {"KP_5", ui::VKEY_NUMPAD5}, {"KP_6", ui::VKEY_NUMPAD6},
-        {"KP_7", ui::VKEY_NUMPAD7}, {"KP_8", ui::VKEY_NUMPAD8},
-        {"KP_9", ui::VKEY_NUMPAD9}, {"KP_Multiply", ui::VKEY_MULTIPLY},
-        {"KP_Add", ui::VKEY_ADD}, {"KP_Separator", ui::VKEY_SEPARATOR},
-        {"KP_Subtract", ui::VKEY_SUBTRACT}, {"KP_Decimal", ui::VKEY_DECIMAL},
-        {"KP_Divide", ui::VKEY_DIVIDE},
-
-        {"ISO_Level5_Shift", ui::VKEY_OEM_8},
-        {"ISO_Level3_Shift", ui::VKEY_ALTGR}, {"Mode_switch", ui::VKEY_ALTGR},
-        {"Multi_key", ui::VKEY_COMPOSE}, {"Pause", ui::VKEY_PAUSE},
-        {"Caps_Lock", ui::VKEY_CAPITAL}, {"Num_Lock", ui::VKEY_NUMLOCK},
-        {"Scroll_Lock", ui::VKEY_SCROLL}, {"Print", ui::VKEY_PRINT},
-        {"Execute", ui::VKEY_EXECUTE}, {"Insert", ui::VKEY_INSERT},
-        {"KP_Insert", ui::VKEY_INSERT}, {"Help", ui::VKEY_HELP},
-        {"Super_L", ui::VKEY_LWIN}, {"Super_R", ui::VKEY_RWIN},
-        {"Menu", ui::VKEY_APPS}, {"F1", ui::VKEY_F1}, {"KP_F1", ui::VKEY_F1},
-        {"F2", ui::VKEY_F2}, {"KP_F2", ui::VKEY_F2}, {"F3", ui::VKEY_F3},
-        {"KP_F3", ui::VKEY_F3}, {"F4", ui::VKEY_F4}, {"KP_F4", ui::VKEY_F4},
-        {"F5", ui::VKEY_F5}, {"F6", ui::VKEY_F6}, {"F7", ui::VKEY_F7},
-        {"F8", ui::VKEY_F8}, {"F9", ui::VKEY_F9}, {"F10", ui::VKEY_F10},
-        {"F11", ui::VKEY_F11}, {"F12", ui::VKEY_F12}, {"F13", ui::VKEY_F13},
-        {"F14", ui::VKEY_F14}, {"F15", ui::VKEY_F15}, {"F16", ui::VKEY_F16},
-        {"F17", ui::VKEY_F17}, {"F18", ui::VKEY_F18}, {"F19", ui::VKEY_F19},
-        {"F20", ui::VKEY_F20}, {"F21", ui::VKEY_F21}, {"F22", ui::VKEY_F22},
-        {"F23", ui::VKEY_F23}, {"F24", ui::VKEY_F24},
-        {"guillemotleft", ui::VKEY_OEM_102},
-        {"guillemotright", ui::VKEY_OEM_102}, {"degree", ui::VKEY_OEM_102},
-        {"ugrave", ui::VKEY_OEM_102}, {"Ugrave", ui::VKEY_OEM_102},
-        {"brokenbar", ui::VKEY_OEM_102},
-        {"XF86Forward", ui::VKEY_BROWSER_FORWARD},
-        {"XF86Reload", ui::VKEY_BROWSER_REFRESH},
-        {"XF86Stop", ui::VKEY_BROWSER_STOP},
-        {"XF86Favorites", ui::VKEY_BROWSER_FAVORITES},
-        {"XF86HomePage", ui::VKEY_BROWSER_HOME},
-        {"XF86AudioMute", ui::VKEY_VOLUME_MUTE},
-        {"XF86AudioLowerVolume", ui::VKEY_VOLUME_DOWN},
-        {"XF86AudioRaiseVolume", ui::VKEY_VOLUME_UP},
+      {"Shift_L", ui::VKEY_SHIFT},
+      {"Shift_R", ui::VKEY_SHIFT},
+      {"Control_L", ui::VKEY_CONTROL},
+      {"Control_R", ui::VKEY_CONTROL},
+      {"Alt_L", ui::VKEY_MENU},
+      {"Alt_R", ui::VKEY_MENU},
+      {"Meta_L", ui::VKEY_MENU},
+      {"Meta_R", ui::VKEY_MENU},
+
+      // comes from KeyboardCodeFromXKeysym
+      {"BackSpace", ui::VKEY_BACK},
+      {"Delete", ui::VKEY_DELETE},
+      {"Tab", ui::VKEY_TAB},
+      {"Return", ui::VKEY_RETURN},
+      {"KP_Enter", ui::VKEY_RETURN},
+      {"Clear", ui::VKEY_CLEAR},
+      {"space", ui::VKEY_SPACE},
+      {"Home", ui::VKEY_HOME},
+      {"KP_Home", ui::VKEY_HOME},
+      {"End", ui::VKEY_END},
+      {"KP_End", ui::VKEY_END},
+      {"Prior", ui::VKEY_PRIOR},
+      {"KP_Prior", ui::VKEY_PRIOR},
+      {"Next", ui::VKEY_NEXT},
+      {"KP_Next", ui::VKEY_NEXT},
+      {"Left", ui::VKEY_LEFT},
+      {"KP_Left", ui::VKEY_LEFT},
+      {"Right", ui::VKEY_RIGHT},
+      {"KP_Right", ui::VKEY_RIGHT},
+      {"Down", ui::VKEY_DOWN},
+      {"KP_Down", ui::VKEY_DOWN},
+      {"Up", ui::VKEY_UP},
+      {"KP_Up", ui::VKEY_UP},
+      {"Escape", ui::VKEY_ESCAPE},
+      {"Kana_Lock", ui::VKEY_KANA},
+      {"Kana_Shift", ui::VKEY_KANA},
+      {"Hangul", ui::VKEY_HANGUL},
+      {"Hangul_Hanja", ui::VKEY_HANJA},
+      {"Kanji", ui::VKEY_KANJI},
+      {"Henkan", ui::VKEY_CONVERT},
+      {"Muhenkan", ui::VKEY_NONCONVERT},
+      {"Zenkaku_Hankaku", ui::VKEY_DBE_DBCSCHAR},
+      {"KP_0", ui::VKEY_NUMPAD0},
+      {"KP_1", ui::VKEY_NUMPAD1},
+      {"KP_2", ui::VKEY_NUMPAD2},
+      {"KP_3", ui::VKEY_NUMPAD3},
+      {"KP_4", ui::VKEY_NUMPAD4},
+      {"KP_5", ui::VKEY_NUMPAD5},
+      {"KP_6", ui::VKEY_NUMPAD6},
+      {"KP_7", ui::VKEY_NUMPAD7},
+      {"KP_8", ui::VKEY_NUMPAD8},
+      {"KP_9", ui::VKEY_NUMPAD9},
+      {"KP_Multiply", ui::VKEY_MULTIPLY},
+      {"KP_Add", ui::VKEY_ADD},
+      {"KP_Separator", ui::VKEY_SEPARATOR},
+      {"KP_Subtract", ui::VKEY_SUBTRACT},
+      {"KP_Decimal", ui::VKEY_DECIMAL},
+      {"KP_Divide", ui::VKEY_DIVIDE},
+
+      {"ISO_Level5_Shift", ui::VKEY_OEM_8},
+      {"ISO_Level3_Shift", ui::VKEY_ALTGR},
+      {"Mode_switch", ui::VKEY_ALTGR},
+      {"Multi_key", ui::VKEY_COMPOSE},
+      {"Pause", ui::VKEY_PAUSE},
+      {"Caps_Lock", ui::VKEY_CAPITAL},
+      {"Num_Lock", ui::VKEY_NUMLOCK},
+      {"Scroll_Lock", ui::VKEY_SCROLL},
+      {"Print", ui::VKEY_PRINT},
+      {"Execute", ui::VKEY_EXECUTE},
+      {"Insert", ui::VKEY_INSERT},
+      {"KP_Insert", ui::VKEY_INSERT},
+      {"Help", ui::VKEY_HELP},
+      {"Super_L", ui::VKEY_LWIN},
+      {"Super_R", ui::VKEY_RWIN},
+      {"Menu", ui::VKEY_APPS},
+      {"F1", ui::VKEY_F1},
+      {"KP_F1", ui::VKEY_F1},
+      {"F2", ui::VKEY_F2},
+      {"KP_F2", ui::VKEY_F2},
+      {"F3", ui::VKEY_F3},
+      {"KP_F3", ui::VKEY_F3},
+      {"F4", ui::VKEY_F4},
+      {"KP_F4", ui::VKEY_F4},
+      {"F5", ui::VKEY_F5},
+      {"F6", ui::VKEY_F6},
+      {"F7", ui::VKEY_F7},
+      {"F8", ui::VKEY_F8},
+      {"F9", ui::VKEY_F9},
+      {"F10", ui::VKEY_F10},
+      {"F11", ui::VKEY_F11},
+      {"F12", ui::VKEY_F12},
+      {"F13", ui::VKEY_F13},
+      {"F14", ui::VKEY_F14},
+      {"F15", ui::VKEY_F15},
+      {"F16", ui::VKEY_F16},
+      {"F17", ui::VKEY_F17},
+      {"F18", ui::VKEY_F18},
+      {"F19", ui::VKEY_F19},
+      {"F20", ui::VKEY_F20},
+      {"F21", ui::VKEY_F21},
+      {"F22", ui::VKEY_F22},
+      {"F23", ui::VKEY_F23},
+      {"F24", ui::VKEY_F24},
+      {"guillemotleft", ui::VKEY_OEM_102},
+      {"guillemotright", ui::VKEY_OEM_102},
+      {"degree", ui::VKEY_OEM_102},
+      {"ugrave", ui::VKEY_OEM_102},
+      {"Ugrave", ui::VKEY_OEM_102},
+      {"brokenbar", ui::VKEY_OEM_102},
+      {"XF86Forward", ui::VKEY_BROWSER_FORWARD},
+      {"XF86Reload", ui::VKEY_BROWSER_REFRESH},
+      {"XF86Stop", ui::VKEY_BROWSER_STOP},
+      {"XF86Favorites", ui::VKEY_BROWSER_FAVORITES},
+      {"XF86HomePage", ui::VKEY_BROWSER_HOME},
+      {"XF86AudioMute", ui::VKEY_VOLUME_MUTE},
+      {"XF86AudioLowerVolume", ui::VKEY_VOLUME_DOWN},
+      {"XF86AudioRaiseVolume", ui::VKEY_VOLUME_UP},
 
 #if !BUILDFLAG(IS_TIZEN_TV)
-        {"XF86Search", ui::VKEY_BROWSER_SEARCH},
-        {"XF86AudioNext", ui::VKEY_MEDIA_NEXT_TRACK},
-        {"XF86AudioPrev", ui::VKEY_MEDIA_PREV_TRACK},
-        {"XF86AudioStop", ui::VKEY_MEDIA_STOP},
-        {"XF86AudioPlay", ui::VKEY_MEDIA_PLAY_PAUSE},
-        {"Select", ui::VKEY_SELECT}, {"XF86Back", ui::VKEY_BROWSER_BACK},
+      {"XF86Search", ui::VKEY_BROWSER_SEARCH},
+      {"XF86AudioNext", ui::VKEY_MEDIA_NEXT_TRACK},
+      {"XF86AudioPrev", ui::VKEY_MEDIA_PREV_TRACK},
+      {"XF86AudioStop", ui::VKEY_MEDIA_STOP},
+      {"XF86AudioPlay", ui::VKEY_MEDIA_PLAY_PAUSE},
+      {"Select", ui::VKEY_SELECT},
+      {"XF86Back", ui::VKEY_BROWSER_BACK},
 #endif
-        {"XF86Mail", ui::VKEY_MEDIA_LAUNCH_MAIL},
-        {"XF86LaunchA", ui::VKEY_MEDIA_LAUNCH_APP1},
-        {"XF86LaunchB", ui::VKEY_MEDIA_LAUNCH_APP2},
-        {"XF86Calculator", ui::VKEY_MEDIA_LAUNCH_APP2},
-        {"XF86WLAN", ui::VKEY_WLAN}, {"XF86PowerOff", ui::VKEY_POWER},
-        {"XF86Sleep", ui::VKEY_SLEEP},
-        {"XF86MonBrightnessDown", ui::VKEY_BRIGHTNESS_DOWN},
-        {"XF86MonBrightnessUp", ui::VKEY_BRIGHTNESS_UP},
-        {"XF86KbdBrightnessDown", ui::VKEY_KBD_BRIGHTNESS_DOWN},
-        {"XF86KbdBrightnessUp", ui::VKEY_KBD_BRIGHTNESS_UP},
+      {"XF86Mail", ui::VKEY_MEDIA_LAUNCH_MAIL},
+      {"XF86LaunchA", ui::VKEY_MEDIA_LAUNCH_APP1},
+      {"XF86LaunchB", ui::VKEY_MEDIA_LAUNCH_APP2},
+      {"XF86Calculator", ui::VKEY_MEDIA_LAUNCH_APP2},
+      {"XF86WLAN", ui::VKEY_WLAN},
+      {"XF86PowerOff", ui::VKEY_POWER},
+      {"XF86Sleep", ui::VKEY_SLEEP},
+      {"XF86MonBrightnessDown", ui::VKEY_BRIGHTNESS_DOWN},
+      {"XF86MonBrightnessUp", ui::VKEY_BRIGHTNESS_UP},
+      {"XF86KbdBrightnessDown", ui::VKEY_KBD_BRIGHTNESS_DOWN},
+      {"XF86KbdBrightnessUp", ui::VKEY_KBD_BRIGHTNESS_UP},
+
+      {"0", ui::VKEY_0},
+      {"1", ui::VKEY_1},
+      {"2", ui::VKEY_2},
+      {"3", ui::VKEY_3},
+      {"4", ui::VKEY_4},
+      {"5", ui::VKEY_5},
+      {"6", ui::VKEY_6},
+      {"7", ui::VKEY_7},
+      {"8", ui::VKEY_8},
+      {"9", ui::VKEY_9},
 
 #if BUILDFLAG(IS_TIZEN_TV)
-        {"XF86Back", ui::VKEY_DTV_RETURN},
-        {"XF86RaiseChannel", ui::VKEY_CHANNEL_UP},
-        {"XF86LowerChannel", ui::VKEY_CHANNEL_DOWN},
-        {"XF86AudioRewind", ui::VKEY_REWIND},
-        {"XF86AudioPause", ui::VKEY_PAUSE},
-        {"XF86AudioNext", ui::VKEY_FAST_FWD},
-        {"XF86AudioRecord", ui::VKEY_RECORD}, {"XF86AudioPlay", ui::VKEY_PLAY},
-        {"XF86AudioStop", ui::VKEY_STOP}, {"XF86Red", ui::VKEY_RED},
-        {"XF86Green", ui::VKEY_GREEN}, {"XF86Yellow", ui::VKEY_YELLOW},
-        {"XF86Blue", ui::VKEY_BLUE}, {"XF86Grey", ui::VKEY_GREY},
-        {"XF86Brown", ui::VKEY_BROWN}, {"XF86Info", ui::VKEY_INFO},
-        {"XF86Home", ui::VKEY_DTV_HOME}, {"XF86Display", ui::VKEY_SOURCE},
-        {"XF86ChannelList", ui::VKEY_CH_LIST},
-        {"XF86MBRRepeat", ui::VKEY_REPEAT},
-        {"XF86PictureSize", ui::VKEY_ASPECT},
-        {"XF86PictureMode", ui::VKEY_PMODE}, {"XF86Hdmi", ui::VKEY_HDMI},
-        {"XF86UsbHub", ui::VKEY_USBHUB_SWITCH},
-        {"XF86EManual", ui::VKEY_EMANUAL}, {"XF86SimpleMenu", ui::VKEY_TOOLS},
-        {"XF86More", ui::VKEY_MORE}, {"XF86FactoryMode", ui::VKEY_FACTORY},
-        {"XF86Sleep", ui::VKEY_SLEEP}, {"XF86TV", ui::VKEY_TV},
-        {"XF86DTV", ui::VKEY_DTV}, {"XF86STBPower", ui::VKEY_STB_POWER},
-        {"XF86PanelDown", ui::VKEY_PANEL_DOWN},
-        {"XF86WWW", ui::VKEY_CONVERGENCE},
-        {"XF86BTColorMecha", ui::VKEY_BT_COLOR_MECHA},
-        {"XF86StillPicture", ui::VKEY_STILL_PICTURE},
-        {"XF86BTPairing", ui::VKEY_BT_TRIGGER},
-        {"XF86BTHotkey", ui::VKEY_BT_HOTVK},
-        {"XF86BTDevice", ui::VKEY_BT_DEVICE},
-        {"XF86BTContentsBar", ui::VKEY_BT_CONTENTSBAR},
-        {"XF86Game", ui::VKEY_GAME}, {"XF86PIPChannelUp", ui::VKEY_PIP_CHUP},
-        {"XF86PIPChannelDown", ui::VKEY_PIP_CHDOWN},
-        {"XF86Antena", ui::VKEY_ANTENA},
-        {"XF86PanelEnter", ui::VKEY_PANEL_ENTER},
-        {"XF86MBRLink", ui::VKEY_LINK}, {"XF86PanelUp", ui::VKEY_PANEL_UP},
-        {"XF86Game3D", ui::VKEY_ANGLE},
-        {"XF86WheelLeftKey", ui::VKEY_WHEEL_LEFT},
-        {"XF86WheelRightKey", ui::VKEY_WHEEL_RIGHT},
-        {"XF86PanelExit", ui::VKEY_PANEL_EXIT}, {"XF86Exit", ui::VKEY_EXIT},
-        {"XF86MBRTV", ui::VKEY_MBR_TV},
-        {"XF86MBRSTBGuide", ui::VKEY_MBR_STB_GUIDE},
-        {"XF86MBRBDPopup", ui::VKEY_MBR_BD_POPUP},
-        {"XF86MBRBDDVDPower", ui::VKEY_MBR_BDDVD_POWER},
-        {"XF86MBRSetupFailure", ui::VKEY_MBR_SETUP_FAILURE},
-        {"XF86MBRSetup", ui::VKEY_MBR_SETUP},
-        {"XF86MBRWatchTV", ui::VKEY_MBR_WATCH_TV},
-        {"XF86PreviousChannel", ui::VKEY_PRECH},
-        {"XF86Recommend", ui::VKEY_RECOMMEND_SEARCH_TOGGLE},
-        {"XF86NumberPad", ui::VKEY_BT_NUMBER},
-        {"XF86AspectRatio169", ui::VKEY_16_9}, {"XF86MTS", ui::VKEY_MTS},
-        {"XF86SoundMode", ui::VKEY_SMODE}, {"XF863XSpeed", ui::VKEY_3SPEED},
-        {"XF863D", ui::VKEY_3D}, {"XF86TTXMIX", ui::VKEY_TTX_MIX},
-        {"XF86SRSSXT", ui::VKEY_SRSTSXT},
-        {"XF86WIFIPairing", ui::VKEY_WIFI_PAIRING},
-        {"XF86BTApps", ui::VKEY_BT_SAMSUNG_APPS},
-        {"XF86EnergySaving", ui::VKEY_ESAVING},
-        {"XF86MBRClear", ui::VKEY_CLEAR}, {"XF86TVSNS", ui::VKEY_TV_SNS},
-        {"XF86DVR", ui::VKEY_DVR}, {"XF86Apps", ui::VKEY_APP_LIST},
-        {"XF86Camera", ui::VKEY_CAMERA}, {"XF86Caption", ui::VKEY_CAPTION},
-        {"XF86ZoomIn", ui::VKEY_ZOOM1}, {"XF86PanelPlus", ui::VKEY_PANEL_PLUS},
-        {"XF86BTVoice", ui::VKEY_BT_VOICE}, {"XF86Search", ui::VKEY_SEARCH},
-        {"XF86PanelMinus", ui::VKEY_PANEL_MINUS},
-        {"XF86SoccerMode", ui::VKEY_SOCCER_MODE},
-        {"XF86Amazon", ui::VKEY_FUNCTIONS_AMAZON},
-        {"XF86AudioDescription", ui::VKEY_AD},
-        {"XF86PreviousChapter", ui::VKEY_REWIND_},
-        {"XF86NextChapter", ui::VKEY_FF_},
-        {"XF86Netflix", ui::VKEY_FUNCTIONS_NETFLIX},
-        {"XF86PIP", ui::VKEY_PIP_ONOFF},
-        {"XF86MBRWatchMovie", ui::VKEY_MBR_WATCH_MOVIE},
-        {"XF86MBRMenu", ui::VKEY_MBR_STBBD_MENU},
-        {"XF86MBRConfirm", ui::VKEY_MBR_SETUP_CONFIRM},
-        {"XF86FamilyHub", ui::VKEY_FAMILYHUB},
-        {"XF86HDMICEC", ui::VKEY_ANYVIEW}, {"XF86LeftPage", ui::VKEY_PAGE_LEFT},
-        {"XF86RightPage", ui::VKEY_PAGE_RIGHT},
-        {"XF86PowerOff", ui::VKEY_POWER}, {"XF86SysMenu", ui::VKEY_DTV_MENU},
-        {"XF86ChannelGuide", ui::VKEY_GUIDE},
-        {"XF86ChannelAddDel", ui::VKEY_ADDDEL},
-        {"XF86ChannelAutoTune", ui::VKEY_AUTO_PROGRAM},
-        {"XF86FavoriteChannel", ui::VKEY_FAVCH},
-        {"XF86DualView", ui::VKEY_BT_DUALVIEW},
-        {"XF86Subtitle", ui::VKEY_SUB_TITLE},
-        {"XF86SoftWakeup", ui::VKEY_SOFT_WAKE_UP},
-        {"XF86PlayBack", ui::VKEY_PLAY_BACK}, {"XF86ExtraApp", ui::VKEY_EXTRA},
-        {"XF86Color", ui::VKEY_COLOR},
-
-        {"XF86NoiseReduction", ui::VKEY_NOISE_REDUCTION},
-        {"XF86Help", ui::VKEY_HELP},
-        {"XF86HotelAppsGuest", ui::VKEY_HOTEL_APPS_GUEST},
-        {"XF86HotelMovies", ui::VKEY_HOTEL_MOVIES},
-        {"XF86HotelLanguage", ui::VKEY_HOTEL_LANGUAGE},
-        {"XF86HotelTVGuide", ui::VKEY_HOTEL_TV_GUIDE}, {"XF86NR", ui::VKEY_NR},
-        {"XF86HotelRoomControl", ui::VKEY_HOTEL_ROOM_CONTROL},
-        {"XF86Alarm", ui::VKEY_ALARM},
-
-        // TV IME Keys
-        {"Select", ui::VKEY_RETURN}, {"Clear", ui::VKEY_DELETE},
+      {"XF86Back", ui::VKEY_DTV_RETURN},
+      {"XF86RaiseChannel", ui::VKEY_CHANNEL_UP},
+      {"XF86LowerChannel", ui::VKEY_CHANNEL_DOWN},
+      {"XF86AudioRewind", ui::VKEY_REWIND},
+      {"XF86AudioPause", ui::VKEY_PAUSE},
+      {"XF86AudioNext", ui::VKEY_FAST_FWD},
+      {"XF86AudioRecord", ui::VKEY_RECORD},
+      {"XF86AudioPlay", ui::VKEY_PLAY},
+      {"XF86AudioStop", ui::VKEY_STOP},
+      {"XF86Red", ui::VKEY_RED},
+      {"XF86Green", ui::VKEY_GREEN},
+      {"XF86Yellow", ui::VKEY_YELLOW},
+      {"XF86Blue", ui::VKEY_BLUE},
+      {"XF86Grey", ui::VKEY_GREY},
+      {"XF86Brown", ui::VKEY_BROWN},
+      {"XF86Info", ui::VKEY_INFO},
+      {"XF86Home", ui::VKEY_DTV_HOME},
+      {"XF86Display", ui::VKEY_SOURCE},
+      {"XF86ChannelList", ui::VKEY_CH_LIST},
+      {"XF86VoiceGuide", ui::VKEY_VOICEGUIDE},
+      {"XF86CCDivision", ui::VKEY_CC_DIVISION},
+      {"XF86SignLanguageZoom", ui::VKEY_SIGN_LANGUAGE_ZOOM},
+      {"XF86SignLanguageZoomPlus", ui::VKEY_SIGN_LANGUAGEZOOM_PLUS},
+      {"XF86SignLanguageZoomMinus", ui::VKEY_SIGN_LANGUAGEZOOM_MINUS},
+      {"XF86CCPreset", ui::VKEY_CC_PRESET},
+      {"XF86CCPosition", ui::VKEY_CC_POSITION},
+      {"XF86CCSize", ui::VKEY_CC_SIZE},
+      {"XF86MBRRepeat", ui::VKEY_REPEAT},
+      {"XF86PictureSize", ui::VKEY_ASPECT},
+      {"XF86PictureMode", ui::VKEY_PMODE},
+      {"XF86Hdmi", ui::VKEY_HDMI},
+      {"XF86UsbHub", ui::VKEY_USBHUB_SWITCH},
+      {"XF86EManual", ui::VKEY_EMANUAL},
+      {"XF86SimpleMenu", ui::VKEY_TOOLS},
+      {"XF86More", ui::VKEY_MORE},
+      {"XF86FactoryMode", ui::VKEY_FACTORY},
+      {"XF86Sleep", ui::VKEY_SLEEP},
+      {"XF86TV", ui::VKEY_TV},
+      {"XF86DTV", ui::VKEY_DTV},
+      {"XF86STBPower", ui::VKEY_STB_POWER},
+      {"XF86PanelDown", ui::VKEY_PANEL_DOWN},
+      {"XF86WWW", ui::VKEY_CONVERGENCE},
+      {"XF86BTColorMecha", ui::VKEY_BT_COLOR_MECHA},
+      {"XF86StillPicture", ui::VKEY_STILL_PICTURE},
+      {"XF86BTPairing", ui::VKEY_BT_TRIGGER},
+      {"XF86BTHotkey", ui::VKEY_BT_HOTVK},
+      {"XF86BTDevice", ui::VKEY_BT_DEVICE},
+      {"XF86BTContentsBar", ui::VKEY_BT_CONTENTSBAR},
+      {"XF86Game", ui::VKEY_GAME},
+      {"XF86PIPChannelUp", ui::VKEY_PIP_CHUP},
+      {"XF86PIPChannelDown", ui::VKEY_PIP_CHDOWN},
+      {"XF86Antena", ui::VKEY_ANTENA},
+      {"XF86PanelEnter", ui::VKEY_PANEL_ENTER},
+      {"XF86MBRLink", ui::VKEY_LINK},
+      {"XF86PanelUp", ui::VKEY_PANEL_UP},
+      {"XF86Game3D", ui::VKEY_ANGLE},
+      {"XF86WheelLeftKey", ui::VKEY_WHEEL_LEFT},
+      {"XF86WheelRightKey", ui::VKEY_WHEEL_RIGHT},
+      {"XF86PanelExit", ui::VKEY_PANEL_EXIT},
+      {"XF86Exit", ui::VKEY_EXIT},
+      {"XF86MBRTV", ui::VKEY_MBR_TV},
+      {"XF86MBRSTBGuide", ui::VKEY_MBR_STB_GUIDE},
+      {"XF86MBRBDPopup", ui::VKEY_MBR_BD_POPUP},
+      {"XF86MBRBDDVDPower", ui::VKEY_MBR_BDDVD_POWER},
+      {"XF86MBRSetupFailure", ui::VKEY_MBR_SETUP_FAILURE},
+      {"XF86MBRSetup", ui::VKEY_MBR_SETUP},
+      {"XF86MBRWatchTV", ui::VKEY_MBR_WATCH_TV},
+      {"XF86PreviousChannel", ui::VKEY_PRECH},
+      {"XF86Recommend", ui::VKEY_RECOMMEND_SEARCH_TOGGLE},
+      {"XF86NumberPad", ui::VKEY_BT_NUMBER},
+      {"XF86AspectRatio169", ui::VKEY_16_9},
+      {"XF86MTS", ui::VKEY_MTS},
+      {"XF86SoundMode", ui::VKEY_SMODE},
+      {"XF863XSpeed", ui::VKEY_3SPEED},
+      {"XF863D", ui::VKEY_3D},
+      {"XF86TTXMIX", ui::VKEY_TTX_MIX},
+      {"XF86SRSSXT", ui::VKEY_SRSTSXT},
+      {"XF86WIFIPairing", ui::VKEY_WIFI_PAIRING},
+      {"XF86BTApps", ui::VKEY_BT_SAMSUNG_APPS},
+      {"XF86EnergySaving", ui::VKEY_ESAVING},
+      {"XF86MBRClear", ui::VKEY_CLEAR},
+      {"XF86TVSNS", ui::VKEY_TV_SNS},
+      {"XF86DVR", ui::VKEY_DVR},
+      {"XF86Apps", ui::VKEY_APP_LIST},
+      {"XF86Camera", ui::VKEY_CAMERA},
+      {"XF86Caption", ui::VKEY_CAPTION},
+      {"XF86ZoomIn", ui::VKEY_ZOOM1},
+      {"XF86PanelPlus", ui::VKEY_PANEL_PLUS},
+      {"XF86BTVoice", ui::VKEY_BT_VOICE},
+      {"XF86Search", ui::VKEY_SEARCH},
+      {"XF86PanelMinus", ui::VKEY_PANEL_MINUS},
+      {"XF86SoccerMode", ui::VKEY_SOCCER_MODE},
+      {"XF86Amazon", ui::VKEY_FUNCTIONS_AMAZON},
+      {"XF86AudioDescription", ui::VKEY_AD},
+      {"XF86PreviousChapter", ui::VKEY_REWIND_},
+      {"XF86NextChapter", ui::VKEY_FF_},
+      {"XF86Netflix", ui::VKEY_FUNCTIONS_NETFLIX},
+      {"XF86PIP", ui::VKEY_PIP_ONOFF},
+      {"XF86MBRWatchMovie", ui::VKEY_MBR_WATCH_MOVIE},
+      {"XF86MBRMenu", ui::VKEY_MBR_STBBD_MENU},
+      {"XF86MBRConfirm", ui::VKEY_MBR_SETUP_CONFIRM},
+      {"XF86FamilyHub", ui::VKEY_FAMILYHUB},
+      {"XF86HDMICEC", ui::VKEY_ANYVIEW},
+      {"XF86LeftPage", ui::VKEY_PAGE_LEFT},
+      {"XF86RightPage", ui::VKEY_PAGE_RIGHT},
+      {"XF86VGBackground", ui::VKEY_VG_BACKGROUND},
+      {"XF86PowerOff", ui::VKEY_POWER},
+      {"XF86SysMenu", ui::VKEY_DTV_MENU},
+      {"XF86ChannelGuide", ui::VKEY_GUIDE},
+      {"XF86ChannelAddDel", ui::VKEY_ADDDEL},
+      {"XF86ChannelAutoTune", ui::VKEY_AUTO_PROGRAM},
+      {"XF86FavoriteChannel", ui::VKEY_FAVCH},
+      {"XF86DualView", ui::VKEY_BT_DUALVIEW},
+      {"XF86Subtitle", ui::VKEY_SUB_TITLE},
+      {"XF86SoftWakeup", ui::VKEY_SOFT_WAKE_UP},
+      {"XF86LFDScreenLock", ui::VKEY_LFD_LOCK},
+      {"XF86LFDUnset", ui::VKEY_LFD_UNSET},
+      {"XF86LFDSet", ui::VKEY_LFD_SET},
+      {"XF86PlayBack", ui::VKEY_PLAY_BACK},
+      {"XF86ExtraApp", ui::VKEY_EXTRA},
+      {"XF86CurrentTime", ui::VKEY_CURRENT_TIME},
+      {"XF86VoiceGender", ui::VKEY_VOICE_GENDER},
+      {"XF86VoicePitch", ui::VKEY_VOICE_PITCH},
+      {"XF86VoiceSpeed", ui::VKEY_VOICE_SPEED},
+      {"XF86UserGuideAccessibility", ui::VKEY_USERGUIDE_ACCESSIBILITY},
+      {"XF86AccessibilityShortcut", ui::VKEY_ACCESSIBILITY_SHORTCUT},
+      {"XF86CCColor", ui::VKEY_CC_COLOR},
+      {"XF86Color", ui::VKEY_COLOR},
+
+      {"XF86SrdChSelect", ui::VKEY_SRDCH_SELECT},
+      {"XF86BatteryAlarm", ui::VKEY_BATTERY_ALARM},
+      {"XF86QuickAccess", ui::VKEY_QUICK_ACCESS},
+      {"XF86Focus", ui::VKEY_FOCUS},
+
+      {"XF86NoiseReduction", ui::VKEY_NOISE_REDUCTION},
+      {"XF86Help", ui::VKEY_HELP},
+      {"XF86HotelAppsGuest", ui::VKEY_HOTEL_APPS_GUEST},
+      {"XF86MultiView", ui::VKEY_MULTI_VIEW},
+      {"XF86HotelMovies", ui::VKEY_HOTEL_MOVIES},
+      {"XF86HotelLanguage", ui::VKEY_HOTEL_LANGUAGE},
+      {"XF86HotelTVGuide", ui::VKEY_HOTEL_TV_GUIDE},
+      {"XF86NR", ui::VKEY_NR},
+      {"XF86HotelRoomControl", ui::VKEY_HOTEL_ROOM_CONTROL},
+      {"XF86Alarm", ui::VKEY_ALARM},
+
+      {"XF86BTPairingGuide", ui::VKEY_BT_PAIRING_GUIDE},
+      {"XF86InTileBShow", ui::VKEY_INTILE_B_SHOW},
+      {"XF86InTileBHide", ui::VKEY_INTILE_B_HIDE},
+      {"XF86AudioPrev", ui::VKEY_AUDIO_PREV},
+      {"XF86AudioForward", ui::VKEY_AUDIO_FORWARD},
+      {"XF86AudioPlayPause", ui::VKEY_AUDIO_PLAY_PAUSE},
+      {"XF86AudioMedia", ui::VKEY_AUDIO_MEDIA},
+
+      {"XF86LaunchApp1", ui::VKEY_LAUNCH_APP1},
+      {"XF86LaunchApp2", ui::VKEY_LAUNCH_APP2},
+      {"XF86KeyZee5", ui::VKEY_ZEE5},
+      {"XF86KeyGlobo", ui::VKEY_GLOBO},
+
+      {"XF86RussiaCP1", ui::VKEY_RUSSIA_CP1},
+      {"XF86RussiaCP2", ui::VKEY_RUSSIA_CP2},
+      {"XF86RussiaCP3", ui::VKEY_RUSSIA_CP3},
+
+      {"XF86Ambient", ui::VKEY_AMBIENT},
+      {"XF86KeyAmbientLong", ui::VKEY_AMBIENTLONG},
+
+      {"XF86KeyYouTube", ui::VKEY_FUNCTIONS_YOUTUBE},
+      {"XF86KeyBtFarVoice", ui::VKEY_BT_FAR_VOICE},
+      {"XF86KeyAgingMode", ui::VKEY_AGING_MODE},
+      {"XF86KeyLuxTrigger", ui::VKEY_LUX_TRIGGER},
+      {"Xf86MyContent", ui::VKEY_MYCONTENT},
+      {"XF86KeyAiSpeakerTrigger", ui::VKEY_AI_SPEAKER_TRIGGER},
+      {"XF86KeyAboutThisTVQRcode", ui::VKEY_ABOUTTHISTV_QRCODE},
+
+      {"XF86KeyTVPlus", ui::VKEY_TV_PLUS},
+      {"XF86KeyRotatePanel", ui::VKEY_ROTATE_PANEL},
+
+      {"XF86KeyAod", ui::VKEY_AOD},
+      {"XF86PlayBackGame", ui::VKEY_PLAY_BACK_GAME},
+      {"XF86GamepadHomekey", ui::VKEY_GAMEPAD_HOMEKEY},
+
+      {"XF86KeyHighContrast", ui::VKEY_HIGHCONTRAST},
+      {"XF86KeyEnlarge", ui::VKEY_ENLARGE},
+      {"XF86KeyGrayScale", ui::VKEY_GRAYSCALE},
+      {"XF86KeyColorInversion", ui::VKEY_COLOR_INVERSION},
+      {"XF86KeyLearnRemote", ui::VKEY_LEARN_REMOTE},
+      {"XF86KeyLearnMenu", ui::VKEY_LEARN_MENU},
+      {"XF86KeyRepeatDelay", ui::VKEY_REPEAT_DELAY},
+      {"XF86VietnamCP", ui::VKEY_VIETNAM_CP},
+      {"XF86MenaCP", ui::VKEY_MENA_CP},
+      {"XF86KeyARKVolume", ui::VKEY_ARK_CONTROLLER_VOLUME},
+      {"XF86AndroidMenu", ui::VKEY_ANDROID_MENU},
+      {"XF86KeyGraphicZoom", ui::VKEY_GRAPHICZOOM},
+      {"XF86VisualImpaired", ui::VKEY_VISUAL_IMPAIRED},
+      {"XF86KeyUniversalSwitch", ui::VKEY_UNIVERSAL_SWITCH},
+      {"XF86VoiceGuidePlayPause", ui::VKEY_VOICEGUIDE_PLAY_PAUSE},
+      {"XF86KeyVoiceGuideRepeat", ui::VKEY_VOICEGUIDE_REPEAT},
+
+      {"XF86CCOnOff", ui::VKEY_CC_ONOFF},
+      {"XF86KeyAutoCC", ui::VKEY_AUTO_CC},
+      {"XF86KeyAvatarSignLanguage", ui::VKEY_AVATAR_SIGNLANGUAGE},
+      {"XF86KeySpokenCC", ui::VKEY_SPOKEN_CC},
+      {"XF86KeyPictureOff", ui::VKEY_PICTURE_OFF},
+      {"XF86KeySelectableVoiceGuide", ui::VKEY_SELECTABLE_VOICEGUIDE},
+      {"XF86Tving", ui::VKEY_TVING},
+      {"XF86Hotstar", ui::VKEY_HOTSTAR},
+      {"XF86Disney", ui::VKEY_DISNEY},
+      {"XF86Kinopoisk",ui::VKEY_KINOPOISK},
+      // TV IME Keys
+      {"Select", ui::VKEY_RETURN},
+      {"Clear", ui::VKEY_DELETE},
+
+      // Support "+" "-" "*" "/" "," on the main keyboard zone of the USB keyboard:
+      // "+" ,"-","*","/" and "," delivered from EFL have key "plus","minus","asterisk",
+      // "slash","comma", that have already mapped to right keycode.
+      // But on TV all keys will go through IME,after processing of IME, the key changed
+      // from "plus","minus","asterisk","slash","comma" to "+" "-" "*" "/" ",".
+      // If "+" "-" "*" "/" "," have no map here, then their keycode will be 229,
+      // that will cause some website like office 365 excel check keycode failed.
+      {"+", ui::VKEY_OEM_PLUS},
+      {"-", ui::VKEY_OEM_MINUS},
+      {"*", ui::VKEY_8},
+      {"/", ui::VKEY_OEM_2},
+      {",", ui::VKEY_OEM_COMMA},
+
+      // The key value of the "Tab" is "ISO_Left_Tab" on "shift+ Tab" case.
+      // Add "ISO_Left_Tab" mapping for supporting cell switch on Hancom Space Excel.
+      {"ISO_Left_Tab", ui::VKEY_TAB},
+
 #endif
 
-        {"0", ui::VKEY_0}, {"1", ui::VKEY_1}, {"2", ui::VKEY_2},
-        {"3", ui::VKEY_3}, {"4", ui::VKEY_4}, {"5", ui::VKEY_5},
-        {"6", ui::VKEY_6}, {"7", ui::VKEY_7}, {"8", ui::VKEY_8},
-        {"9", ui::VKEY_9},
-
-        // XXX: it won't work on all keyboard layouts
-        {"comma", ui::VKEY_OEM_COMMA}, {"less", ui::VKEY_OEM_COMMA},
-        {"minus", ui::VKEY_OEM_MINUS}, {"underscore", ui::VKEY_OEM_MINUS},
-        {"greater", ui::VKEY_OEM_PERIOD}, {"period", ui::VKEY_OEM_PERIOD},
-        {"semicolon", ui::VKEY_OEM_1}, {"colon", ui::VKEY_OEM_1},
-        {"question", ui::VKEY_OEM_2}, {"slash", ui::VKEY_OEM_2},
-        {"asciitilde", ui::VKEY_OEM_3}, {"quoteleft", ui::VKEY_OEM_3},
-        {"bracketleft", ui::VKEY_OEM_4}, {"braceleft", ui::VKEY_OEM_4},
-        {"backslash", ui::VKEY_OEM_5}, {"bar", ui::VKEY_OEM_5},
-        {"bracketright", ui::VKEY_OEM_6}, {"braceright", ui::VKEY_OEM_6},
-        {"quoteright", ui::VKEY_OEM_7}, {"quotedbl", ui::VKEY_OEM_7},
-
-        // support specail keys "!@#$%^&*()+='`"
-        {"exclam", ui::VKEY_1}, {"at", ui::VKEY_2}, {"numbersign", ui::VKEY_3},
-        {"dollar", ui::VKEY_4}, {"percent", ui::VKEY_5},
-        {"asciicircum", ui::VKEY_6}, {"ampersand", ui::VKEY_7},
-        {"asterisk", ui::VKEY_8}, {"parenleft", ui::VKEY_9},
-        {"parenright", ui::VKEY_0}, {"plus", ui::VKEY_OEM_PLUS},
-        {"equal", ui::VKEY_OEM_PLUS}, {"apostrophe", ui::VKEY_OEM_7},
-        {"grave", ui::VKEY_OEM_3},
-
-        // XXX: handle accents and other characters
-        {"a", ui::VKEY_A}, {"A", ui::VKEY_A}, {"b", ui::VKEY_B},
-        {"B", ui::VKEY_B}, {"c", ui::VKEY_C}, {"C", ui::VKEY_C},
-        {"d", ui::VKEY_D}, {"D", ui::VKEY_D}, {"e", ui::VKEY_E},
-        {"E", ui::VKEY_E}, {"f", ui::VKEY_F}, {"F", ui::VKEY_F},
-        {"g", ui::VKEY_G}, {"G", ui::VKEY_G}, {"h", ui::VKEY_H},
-        {"H", ui::VKEY_H}, {"i", ui::VKEY_I}, {"I", ui::VKEY_I},
-        {"j", ui::VKEY_J}, {"J", ui::VKEY_J}, {"k", ui::VKEY_K},
-        {"K", ui::VKEY_K}, {"l", ui::VKEY_L}, {"L", ui::VKEY_L},
-        {"m", ui::VKEY_M}, {"M", ui::VKEY_M}, {"n", ui::VKEY_N},
-        {"N", ui::VKEY_N}, {"o", ui::VKEY_O}, {"O", ui::VKEY_O},
-        {"p", ui::VKEY_P}, {"P", ui::VKEY_P}, {"q", ui::VKEY_Q},
-        {"Q", ui::VKEY_Q}, {"r", ui::VKEY_R}, {"R", ui::VKEY_R},
-        {"s", ui::VKEY_S}, {"S", ui::VKEY_S}, {"t", ui::VKEY_T},
-        {"T", ui::VKEY_T}, {"u", ui::VKEY_U}, {"U", ui::VKEY_U},
-        {"v", ui::VKEY_V}, {"V", ui::VKEY_V}, {"w", ui::VKEY_W},
-        {"W", ui::VKEY_W}, {"x", ui::VKEY_X}, {"X", ui::VKEY_X},
-        {"y", ui::VKEY_Y}, {"Y", ui::VKEY_Y}, {"z", ui::VKEY_Z},
-        {"Z", ui::VKEY_Z},
+      // XXX: it won't work on all keyboard layouts
+      {"comma", ui::VKEY_OEM_COMMA},
+      {"less", ui::VKEY_OEM_COMMA},
+      {"minus", ui::VKEY_OEM_MINUS},
+      {"underscore", ui::VKEY_OEM_MINUS},
+      {"greater", ui::VKEY_OEM_PERIOD},
+      {"period", ui::VKEY_OEM_PERIOD},
+      {"semicolon", ui::VKEY_OEM_1},
+      {"colon", ui::VKEY_OEM_1},
+      {"question", ui::VKEY_OEM_2},
+      {"slash", ui::VKEY_OEM_2},
+      {"asciitilde", ui::VKEY_OEM_3},
+      {"quoteleft", ui::VKEY_OEM_3},
+      {"bracketleft", ui::VKEY_OEM_4},
+      {"braceleft", ui::VKEY_OEM_4},
+      {"backslash", ui::VKEY_OEM_5},
+      {"bar", ui::VKEY_OEM_5},
+      {"bracketright", ui::VKEY_OEM_6},
+      {"braceright", ui::VKEY_OEM_6},
+      {"quoteright", ui::VKEY_OEM_7},
+      {"quotedbl", ui::VKEY_OEM_7},
+
+      // support specail keys "!@#$%^&*()+='`"
+      {"exclam", ui::VKEY_1},
+      {"at", ui::VKEY_2},
+      {"numbersign", ui::VKEY_3},
+      {"dollar", ui::VKEY_4},
+      {"percent", ui::VKEY_5},
+      {"asciicircum", ui::VKEY_6},
+      {"ampersand", ui::VKEY_7},
+      {"asterisk", ui::VKEY_8},
+      {"parenleft", ui::VKEY_9},
+      {"parenright", ui::VKEY_0},
+      {"plus", ui::VKEY_OEM_PLUS},
+      {"equal", ui::VKEY_OEM_PLUS},
+      {"apostrophe",ui::VKEY_OEM_7},
+      {"grave",ui::VKEY_OEM_3},
+
+      // XXX: handle accents and other characters
+      {"a", ui::VKEY_A},
+      {"A", ui::VKEY_A},
+      {"b", ui::VKEY_B},
+      {"B", ui::VKEY_B},
+      {"c", ui::VKEY_C},
+      {"C", ui::VKEY_C},
+      {"d", ui::VKEY_D},
+      {"D", ui::VKEY_D},
+      {"e", ui::VKEY_E},
+      {"E", ui::VKEY_E},
+      {"f", ui::VKEY_F},
+      {"F", ui::VKEY_F},
+      {"g", ui::VKEY_G},
+      {"G", ui::VKEY_G},
+      {"h", ui::VKEY_H},
+      {"H", ui::VKEY_H},
+      {"i", ui::VKEY_I},
+      {"I", ui::VKEY_I},
+      {"j", ui::VKEY_J},
+      {"J", ui::VKEY_J},
+      {"k", ui::VKEY_K},
+      {"K", ui::VKEY_K},
+      {"l", ui::VKEY_L},
+      {"L", ui::VKEY_L},
+      {"m", ui::VKEY_M},
+      {"M", ui::VKEY_M},
+      {"n", ui::VKEY_N},
+      {"N", ui::VKEY_N},
+      {"o", ui::VKEY_O},
+      {"O", ui::VKEY_O},
+      {"p", ui::VKEY_P},
+      {"P", ui::VKEY_P},
+      {"q", ui::VKEY_Q},
+      {"Q", ui::VKEY_Q},
+      {"r", ui::VKEY_R},
+      {"R", ui::VKEY_R},
+      {"s", ui::VKEY_S},
+      {"S", ui::VKEY_S},
+      {"t", ui::VKEY_T},
+      {"T", ui::VKEY_T},
+      {"u", ui::VKEY_U},
+      {"U", ui::VKEY_U},
+      {"v", ui::VKEY_V},
+      {"V", ui::VKEY_V},
+      {"w", ui::VKEY_W},
+      {"W", ui::VKEY_W},
+      {"x", ui::VKEY_X},
+      {"X", ui::VKEY_X},
+      {"y", ui::VKEY_Y},
+      {"Y", ui::VKEY_Y},
+      {"z", ui::VKEY_Z},
+      {"Z", ui::VKEY_Z},
   });
 
+#if defined(IS_TIZEN_TV)
+  if (IsTvProfile() && content::IsTIZENWRT()) {
+    // WRT use 2 different key codes
+    if (strcmp(key, "Select") == 0)
+      return ui::VKEY_IME_DONE;
+    if (strcmp(key, "Cancel") == 0)
+      return ui::VKEY_IME_CANCEL;
+  }
+#endif
+
   auto uicode = code_from_key_map.find(key);
   if (uicode == code_from_key_map.end())
     return ui::VKEY_UNKNOWN;
index 218bd58..216de79 100644 (file)
@@ -561,19 +561,28 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86Home",             XF86Home,                  0x2757),
   DOM_KEY_MAP("XF86Display",          XF86Display,               0x2758),
   DOM_KEY_MAP("XF86ChannelList",      XF86ChannelList,           0x2759),
+  DOM_KEY_MAP("XF86VoiceGuide",       XF86VoiceGuide,            0x276D),
+  DOM_KEY_MAP("XF86CCDivision",       XF86CCDivision,            0x2771),
+  DOM_KEY_MAP("XF86SignLanguageZoom", XF86SignLanguageZoom,      0x2777),
+  DOM_KEY_MAP("XF86SignLanguageZoomPlus",  XF86SignLanguageZoomPlus,  0x2789),
+  DOM_KEY_MAP("XF86SignLanguageZoomMinus", XF86SignLanguageZoomMinus, 0x278A),
+  DOM_KEY_MAP("XF86CCPreset",         XF86CCPreset,              0x278B),
+  DOM_KEY_MAP("XF86CCPosition",       XF86CCPosition,            0x2794),
+  DOM_KEY_MAP("XF86CCSize",           XF86CCSize,                0x2798),
   DOM_KEY_MAP("XF86MBRRepeat",        XF86MBRRepeat,             0x2799),
   DOM_KEY_MAP("XF86PictureSize",      XF86PictureSize,           0x279C),
   DOM_KEY_MAP("XF86PictureMode",      XF86PictureMode,           0x279D),
   DOM_KEY_MAP("XF86Hdmi",             XF86Hdmi,                  0x279F),
   DOM_KEY_MAP("XF86UsbHub",           XF86UsbHub,                0x27A0),
   DOM_KEY_MAP("XF86EManual",          XF86EManual,               0x27A2),
+  DOM_KEY_MAP("XF86LFDScreenLock",    XF86LFDScreenLock,         0x27A3),
   DOM_KEY_MAP("XF86SimpleMenu",       XF86SimpleMenu,            0x2797),
   DOM_KEY_MAP("XF86More",             XF86More,                  0x27A4),
   DOM_KEY_MAP("XF86FactoryMode",      XF86FactoryMode,           0x27A5),
   DOM_KEY_MAP("XF86Sleep",            XF86Sleep,                 0x27A6),
   DOM_KEY_MAP("XF86TV",               XF86TV,                    0x27A9),
   DOM_KEY_MAP("XF86DTV",              XF86DTV,                   0x27AA),
-  DOM_KEY_MAP("XF86STBPower",         XF86STBPower,              0x27AB),
+  DOM_KEY_MAP("XF86STBPower",         XF86STBPower,              0x28F7),
   DOM_KEY_MAP("XF86PanelDown",        XF86PanelDown,             0x27AD),
   DOM_KEY_MAP("XF86WWW",              XF86WWW,                   0x27AE),
   DOM_KEY_MAP("XF86BTColorMecha",     XF86BTColorMecha,          0x27AF),
@@ -583,6 +592,7 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86BTDevice",         XF86BTDevice,              0x27B3),
   DOM_KEY_MAP("XF86BTContentsBar",    XF86BTContentsBar,         0x27B4),
   DOM_KEY_MAP("XF86Game",             XF86Game,                  0x27B5),
+  DOM_KEY_MAP("XF86LFDUnset",         XF86LFDUnset,              0x27B6),
   DOM_KEY_MAP("XF86PIPChannelUp",     XF86PIPChannelUp,          0x27B7),
   DOM_KEY_MAP("XF86PIPChannelDown",   XF86PIPChannelDown,        0x27B8),
   DOM_KEY_MAP("XF86Antena",           XF86Antena,                0x27B9),
@@ -637,8 +647,10 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86MBRConfirm",       XF86MBRConfirm,            0x27FE),
   DOM_KEY_MAP("XF86FamilyHub",        XF86FamilyHub,             0x27FF),
   DOM_KEY_MAP("XF86HDMICEC",          XF86HDMICEC,               0x2800),
+  DOM_KEY_MAP("XF86LFDSet",           XF86LFDSet,                0x2805),
   DOM_KEY_MAP("XF86LeftPage",         XF86LeftPage,              0x2809),
   DOM_KEY_MAP("XF86RightPage",        XF86RightPage,             0x280A),
+  DOM_KEY_MAP("XF86VGBackground",     XF86VGBackground,          0x280B),
   DOM_KEY_MAP("XF86PowerOff",         XF86PowerOff,              0x0199),
   DOM_KEY_MAP("XF86SysMenu",          XF86SysMenu,               0x2795),
   DOM_KEY_MAP("XF86ChannelGuide",     XF86ChannelGuide,          0x01CA),
@@ -650,16 +662,82 @@ DOM_KEY_MAP_DECLARATION {
   DOM_KEY_MAP("XF86SoftWakeup",       XF86SoftWakeup,            0x2804),
   DOM_KEY_MAP("XF86PlayBack",         XF86PlayBack,              0x280C),
   DOM_KEY_MAP("XF86ExtraApp",         XF86ExtraApp,              0x280D),
+  DOM_KEY_MAP("XF86CurrentTime",      XF86CurrentTime,           0x280E),
+  DOM_KEY_MAP("XF86VoiceGender",      XF86VoiceGender,           0x280F),
+  DOM_KEY_MAP("XF86VoicePitch",       XF86VoicePitch,            0x2810),
+  DOM_KEY_MAP("XF86VoiceSpeed",       XF86VoiceSpeed,            0x287A),
+  DOM_KEY_MAP("XF86UserGuideAccessibility",  XF86UserGuideAccessibility, 0x287B),
+  DOM_KEY_MAP("XF86AccessibilityShortcut",  XF86AccessibilityShortcut, 0x287C),
   DOM_KEY_MAP("XF86Color",            XF86Color,                 0x2891),
+  DOM_KEY_MAP("XF86CCColor",          XF86CCColor,               0x289B),
   DOM_KEY_MAP("XF86Alarm",            XF86Alarm,                 0x28B2),
+  DOM_KEY_MAP("XF86SrdChSelect",      XF86SrdChSelect,           0x28D4),
+  DOM_KEY_MAP("XF86BatteryAlarm",     XF86BatteryAlarm,          0x28F6),
+  DOM_KEY_MAP("XF86QuickAccess",      XF86QuickAccess,           0x28F8),
+  DOM_KEY_MAP("XF86Focus",            XF86Focus,                 0x28FA),
   DOM_KEY_MAP("XF86HotelMovies",      XF86HotelMovies,           0x28FE),
   DOM_KEY_MAP("XF86HotelLanguage",    XF86HotelLanguage,         0x28FF),
   DOM_KEY_MAP("XF86HotelTVGuide",     XF86HotelTVGuide,          0x2900),
   DOM_KEY_MAP("XF86HotelAppsGuest",   XF86HotelAppsGuest,        0x2901),
+  DOM_KEY_MAP("XF86MultiView",        XF86MultiView,             0x2909),
+  DOM_KEY_MAP("XF86LaunchApp1",       XF86LaunchApp1,            0x290B),
+  DOM_KEY_MAP("XF86LaunchApp2",       XF86LaunchApp2,            0x290C),
+  DOM_KEY_MAP("XF86KeyZee5",          XF86KeyZee5,               0x290D),
+  DOM_KEY_MAP("XF86KeyGlobo",         XF86KeyGlobo,              0x290E),
+  DOM_KEY_MAP("XF86RussiaCP1",        XF86RussiaCP1,             0x290F),
+  DOM_KEY_MAP("XF86RussiaCP2",        XF86RussiaCP2,             0x2910),
+  DOM_KEY_MAP("XF86RussiaCP3",        XF86RussiaCP3,             0x2911),
   DOM_KEY_MAP("XF86NoiseReduction",   XF86NoiseReduction,        0x2917),
   DOM_KEY_MAP("XF86Help",             XF86Help,                  0x2918),
   DOM_KEY_MAP("XF86NR",               XF86NR,                    0x2919),
   DOM_KEY_MAP("XF86HotelRoomControl", XF86HotelRoomControl,      0x291A),
+  DOM_KEY_MAP("XF86BTPairingGuide",   XF86BTPairingGuide,        0x291B),
+  DOM_KEY_MAP("XF86InTileBShow",      XF86InTileBShow,           0x291C),
+  DOM_KEY_MAP("XF86InTileBHide",      XF86InTileBHide,           0x291D),
+  DOM_KEY_MAP("XF86AudioPrev",        XF86AudioPrev,             0x291E),
+  DOM_KEY_MAP("XF86AudioForward",     XF86AudioForward,          0x291F),
+  DOM_KEY_MAP("XF86AudioPlayPause",   XF86AudioPlayPause,        0x2920),
+  DOM_KEY_MAP("XF86AudioMedia",       XF86AudioMedia,            0x2921),
+  DOM_KEY_MAP("XF86Ambient",          XF86Ambient,               0x2922),
+  DOM_KEY_MAP("XF86KeyAmbientLong",   XF86KeyAmbientLong,        0x2927),
+  DOM_KEY_MAP("XF86KeyYouTube",       XF86KeyYouTube,            0x2929),
+  DOM_KEY_MAP("XF86KeyBtFarVoice",    XF86KeyBtFarVoice,         0x292A),
+  DOM_KEY_MAP("XF86KeyAgingMode",     XF86KeyAgingMode,          0x292C),
+  DOM_KEY_MAP("XF86KeyLuxTrigger",    XF86KeyLuxTrigger,         0x292F),
+  DOM_KEY_MAP("Xf86MyContent",        Xf86MyContent,             0x2931),
+  DOM_KEY_MAP("XF86KeyAiSpeakerTrigger", XF86KeyAiSpeakerTrigger,0x2932),
+  DOM_KEY_MAP("XF86KeyAboutThisTVQRcode", XF86KeyAboutThisTVQRcode,0x2934),
+  DOM_KEY_MAP("XF86KeyTVPlus",        XF86KeyTVPlus,             0x2948),
+  DOM_KEY_MAP("XF86KeyRotatePanel",   XF86KeyRotatePanel,        0x2949),
+  DOM_KEY_MAP("XF86KeyAod",           XF86KeyAod,                0x294A),
+  DOM_KEY_MAP("XF86PlayBackGame",     XF86PlayBackGame,          0x294B),
+  DOM_KEY_MAP("XF86GamepadHomekey",   XF86GamepadHomekey,        0x294C),
+  DOM_KEY_MAP("XF86KeyHighContrast",  XF86KeyHighContrast,       0x2958),
+  DOM_KEY_MAP("XF86KeyEnlarge",       XF86KeyEnlarge,            0x2959),
+  DOM_KEY_MAP("XF86KeyGrayScale",     XF86KeyGrayScale,          0x295A),
+  DOM_KEY_MAP("XF86KeyColorInversion",XF86KeyColorInversion,     0x295B),
+  DOM_KEY_MAP("XF86KeyLearnRemote",   XF86KeyLearnRemote,        0x295C),
+  DOM_KEY_MAP("XF86KeyLearnMenu",     XF86KeyLearnMenu,          0x295D),
+  DOM_KEY_MAP("XF86KeyRepeatDelay",   XF86KeyRepeatDelay,        0x295E),
+  DOM_KEY_MAP("XF86VietnamCP",        XF86VietnamCP,             0x295F),
+  DOM_KEY_MAP("XF86MenaCP",           XF86MenaCP,                0x2960),
+  DOM_KEY_MAP("XF86KeyARKVolume",     XF86KeyARKVolume,          0x2961),
+  DOM_KEY_MAP("XF86AndroidMenu",      XF86AndroidMenu,           0x2963),
+  DOM_KEY_MAP("XF86KeyGraphicZoom",   XF86KeyGraphicZoom,        0x2968),
+  DOM_KEY_MAP("XF86VisualImpaired",   XF86VisualImpaired,        0x2969),
+  DOM_KEY_MAP("XF86KeyUniversalSwitch", XF86KeyUniversalSwitch,  0x296A),
+  DOM_KEY_MAP("XF86VoiceGuidePlayPause",XF86VoiceGuidePlayPause, 0x296B),
+  DOM_KEY_MAP("XF86KeyVoiceGuideRepeat",XF86KeyVoiceGuideRepeat, 0x296C),
+  DOM_KEY_MAP("XF86CCOnOff",          XF86CCOnOff,               0x2978),
+  DOM_KEY_MAP("XF86KeyAutoCC",        XF86KeyAutoCC,             0x2979),
+  DOM_KEY_MAP("XF86KeyAvatarSignLanguage",XF86KeyAvatarSignLanguage,0x297A),
+  DOM_KEY_MAP("XF86KeySpokenCC",      XF86KeySpokenCC,           0x297B),
+  DOM_KEY_MAP("XF86KeyPictureOff",    XF86KeyPictureOff,         0x297C),
+  DOM_KEY_MAP("XF86KeySelectableVoiceGuide",XF86KeySelectableVoiceGuide,0x297D),
+  DOM_KEY_MAP("XF86Tving",            XF86Tving,                 0x2988),
+  DOM_KEY_MAP("XF86Hotstar",          XF86Hotstar,               0x2989),
+  DOM_KEY_MAP("XF86Disney",           XF86Disney,                0x298A),
+  DOM_KEY_MAP("XF86Kinopoisk",        XF86Kinopoisk,             0x298B),
   DOM_KEY_MAP("Select",               Select,                    0x000D),
   DOM_KEY_MAP("Clear",                Clear,                     0x002E),
 #endif
index 56f2b9a..16f631d 100644 (file)
@@ -314,19 +314,28 @@ enum KeyboardCode {
 
   VKEY_INFO = 0x1C9,
 
+  VKEY_VOICEGUIDE = 0x276D,
+  VKEY_CC_DIVISION = 0x2771,
+  VKEY_SIGN_LANGUAGE_ZOOM = 0x2777,
+  VKEY_SIGN_LANGUAGEZOOM_PLUS = 0x2789,
+  VKEY_SIGN_LANGUAGEZOOM_MINUS = 0x278A,
+  VKEY_CC_PRESET = 0x278B,
+  VKEY_CC_POSITION = 0x2794,
+  VKEY_CC_SIZE = 0x2798,
   VKEY_REPEAT = 0x2799,
   VKEY_ASPECT = 0x279C,
   VKEY_PMODE = 0x279D,
   VKEY_HDMI = 0x279F,
   VKEY_USBHUB_SWITCH = 0x27A0,
   VKEY_EMANUAL = 0x27A2,
+  VKEY_LFD_LOCK = 0x27A3,
   VKEY_TOOLS = 0x2797,
   VKEY_MORE = 0x27A4,
   VKEY_FACTORY = 0x27A5,
   VKEY_SLEEP = 0x27A6,
   VKEY_TV = 0x27A9,
   VKEY_DTV = 0x27AA,
-  VKEY_STB_POWER = 0x27AB,
+  VKEY_STB_POWER = 0x28F7,
   VKEY_PANEL_DOWN = 0x27AD,
   VKEY_CONVERGENCE = 0x27AE,
   VKEY_BT_COLOR_MECHA = 0x27AF,
@@ -336,6 +345,7 @@ enum KeyboardCode {
   VKEY_BT_DEVICE = 0x27B3,
   VKEY_BT_CONTENTSBAR = 0x27B4,
   VKEY_GAME = 0x27B5,
+  VKEY_LFD_UNSET = 0x27B6,
   VKEY_PIP_CHUP = 0x27B7,
   VKEY_PIP_CHDOWN = 0x27B8,
   VKEY_ANTENA = 0x27B9,
@@ -395,26 +405,105 @@ enum KeyboardCode {
   VKEY_MBR_SETUP_CONFIRM = 0x27FE,
   VKEY_FAMILYHUB = 0x27FF,
   VKEY_ANYVIEW = 0x2800,
+  VKEY_LFD_SET = 0x2805,
 
   VKEY_PAGE_LEFT = 0x2809,
   VKEY_PAGE_RIGHT = 0x280A,
 
   VKEY_SOFT_WAKE_UP = 0x2804,
-  VKEY_PANEL_ON = 0x280B,
+  VKEY_VG_BACKGROUND = 0x280B,
   VKEY_PLAY_BACK = 0x280C,
   VKEY_EXTRA = 0x280D,
+  VKEY_CURRENT_TIME = 0x280E,
+  VKEY_VOICE_GENDER = 0x280F,
+  VKEY_VOICE_PITCH = 0x2810,
+  VKEY_VOICE_SPEED = 0x287A,
+  VKEY_USERGUIDE_ACCESSIBILITY = 0x287B,
+  VKEY_ACCESSIBILITY_SHORTCUT = 0x287C,
   VKEY_COLOR = 0x2891,
+  VKEY_CC_COLOR = 0x289B,
 
   VKEY_ALARM = 0x28B2,
+
+  VKEY_SRDCH_SELECT = 0x28D4,
+  VKEY_BATTERY_ALARM = 0x28F6,
+  VKEY_QUICK_ACCESS = 0x28F8,
+  VKEY_FOCUS = 0x28FA,
+
   VKEY_HOTEL_MOVIES = 0x28FE,
   VKEY_HOTEL_LANGUAGE = 0x28FF,
   VKEY_HOTEL_TV_GUIDE = 0x2900,
   VKEY_HOTEL_APPS_GUEST = 0x2901,
+  VKEY_MULTI_VIEW = 0x2909,
+
+  VKEY_LAUNCH_APP1 = 0x290B,
+  VKEY_LAUNCH_APP2 = 0x290C,
+  VKEY_ZEE5 = 0x290D,
+  VKEY_GLOBO = 0x290E,
+
+  VKEY_RUSSIA_CP1 = 0x290F,
+  VKEY_RUSSIA_CP2 = 0x2910,
+  VKEY_RUSSIA_CP3 = 0x2911,
+
   VKEY_NOISE_REDUCTION = 0x2917,
   VKEY_HELP = 0x2918,
   VKEY_NR = 0x2919,
   VKEY_HOTEL_ROOM_CONTROL = 0x291A,
 
+  VKEY_BT_PAIRING_GUIDE = 0x291B,
+  VKEY_INTILE_B_SHOW = 0x291C,
+  VKEY_INTILE_B_HIDE = 0x291D,
+  VKEY_AUDIO_PREV = 0x291E,
+  VKEY_AUDIO_FORWARD = 0x291F,
+  VKEY_AUDIO_PLAY_PAUSE = 0x2920,
+  VKEY_AUDIO_MEDIA = 0x2921,
+
+  VKEY_AMBIENT = 0x2922,
+  VKEY_AMBIENTLONG = 0x2927,
+
+  VKEY_FUNCTIONS_YOUTUBE = 0x2929,
+  VKEY_BT_FAR_VOICE = 0x292A,
+  VKEY_AGING_MODE = 0x292C,
+  VKEY_LUX_TRIGGER = 0x292F,
+  VKEY_MYCONTENT = 0x2931,
+  VKEY_AI_SPEAKER_TRIGGER = 0x2932,
+  VKEY_ABOUTTHISTV_QRCODE = 0x2934,
+
+  VKEY_TV_PLUS = 0x2948,
+  VKEY_ROTATE_PANEL = 0x2949,
+  VKEY_AOD = 0x294A,
+  VKEY_PLAY_BACK_GAME = 0x294B,
+  VKEY_GAMEPAD_HOMEKEY = 0x294C,
+
+  VKEY_HIGHCONTRAST = 0x2958,
+  VKEY_ENLARGE = 0x2959,
+  VKEY_GRAYSCALE = 0x295A,
+  VKEY_COLOR_INVERSION = 0x295B,
+  VKEY_LEARN_REMOTE = 0x295C,
+  VKEY_LEARN_MENU = 0x295D,
+  VKEY_REPEAT_DELAY = 0x295E,
+  VKEY_VIETNAM_CP = 0x295F,
+  VKEY_MENA_CP = 0x2960,
+  VKEY_ARK_CONTROLLER_VOLUME = 0x2961,
+  VKEY_ANDROID_MENU = 0x2963,
+  VKEY_GRAPHICZOOM = 0x2968,
+  VKEY_VISUAL_IMPAIRED = 0x2969,
+
+  VKEY_UNIVERSAL_SWITCH = 0x296A,
+  VKEY_VOICEGUIDE_PLAY_PAUSE = 0x296B,
+  VKEY_VOICEGUIDE_REPEAT = 0x296C,
+
+  VKEY_CC_ONOFF = 0x2978,
+  VKEY_AUTO_CC = 0x2979,
+  VKEY_AVATAR_SIGNLANGUAGE = 0x297A,
+  VKEY_SPOKEN_CC = 0x297B,
+  VKEY_PICTURE_OFF = 0x297C,
+  VKEY_SELECTABLE_VOICEGUIDE = 0x297D,
+  VKEY_TVING = 0x2988,
+  VKEY_HOTSTAR = 0x2989,
+  VKEY_DISNEY = 0x298A,
+  VKEY_KINOPOISK = 0x298B,
+
   // TV IME "Select" key, no X Server keycode, 0xFF60 ISF code.
   VKEY_IME_DONE = 0xFF60,
   // TV IME "Cancel" key, no X Server keycode, 0xFF69 ISF code.