crossbrowdy
Version:
A Multimedia JavaScript framework to create real cross-platform and hybrid game engines, games, emulators, multimedia libraries and apps.
955 lines (937 loc) • 131 kB
JavaScript
/**
* @file Keyboard management (and other devices which also fire [keyboard events]{@link https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent} as TV remote controls, game consoles' gamepads, etc.). Contains the {@link CB_Keyboard} static class.
* @author Joan Alba Maldonado <workindalian@gmail.com>
* @license Creative Commons Attribution 4.0 International. See more at {@link https://crossbrowdy.com/about#what_is_the_crossbrowdy_copyright_and_license}.
*/
/**
* Static class to manage the keyboard and other input devices that generate key codes. It will return itself if it is tried to be instantiated.
* @namespace
*/
var CB_Keyboard = function() { return CB_Keyboard; };
{
//CB_Keyboard.onKeyPressFunction; //Function that is executed when a key is pressed (onKeyPress event).
//CB_Keyboard.onKeyDownFunction; //Function that is executed when a key is down (onKeyDown event).
//CB_Keyboard.onKeyUpFunction; //Function that is executed when a key is released (onKeyUp event).
//CB_Keyboard.firstEvent = ""; //Defines wheter the first event captured is onKeyDown or onKeyPress (compatibility reasons).
//CB_Keyboard.onKeyDownOrPressFunction; //Function that is executed when either a key is down os pressed (onKeyDown or onKeyPress event)
/**
* Object that will store the status for each key detected, using the key code as index and a boolean as their value (true when down or false when released).
* @var
* @readonly
* @type {Object}
* @default
*/
CB_Keyboard.keysDown = {};
/**
* Array with the codes of the keys pressed recently (it will be cleared after the chosen milliseconds set with the {@link CB_Keyboard.setKeysPressedExpiration} function).
* @var
* @readonly
* @type {array}
* @default
*/
CB_Keyboard.keysPressed = [];
CB_Keyboard._keysPressedExpiration = 500; //Milliseconds before keys pressed array expires.
CB_Keyboard._keysPressedExpirationTimeout = null; //It will store the timeout that clears the keys pressed array.
/**
* Array with the codes of the string typed recently (it will be cleared after the chosen milliseconds set with the {@link CB_Keyboard.setTypedStringExpiration} function).
* @var
* @readonly
* @type {array}
* @default
*/
CB_Keyboard.typedStringCodes = [];
/**
* Stores the string typed recently (it will be cleared after the chosen milliseconds set with the {@link CB_Keyboard.setTypedStringExpiration} function).
* @var
* @readonly
* @type {string}
* @default
*/
CB_Keyboard.typedString = ""; //Stores the string typed (it will be cleared after some milliseconds).
CB_Keyboard._typedStringExpiration = 500; //Milliseconds before typed string expires.
CB_Keyboard._typedStringExpirationTimeout = null; //It will store the timeout that clears the typed string.
CB_Keyboard.initialized = false; //It will tells whether the object has been initialized or not.
/**
Property that keeps extended key codes for different systems and platforms.
* @namespace CB_Keyboard.extended
*/
CB_Keyboard.extended = {};
/**
* Smart TV Alliance and virtual keyboard key codes.
* @memberof CB_Keyboard.extended
* @name VK
* @constant
* @type {Object}
* @default
* @todo Consider adding more (found in {@link https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx} and {@link http://nehe.gamedev.net/article/msdn_virtualkey_codes/15009/})
* @property {number} ENTER - ENTER key.
* @property {number} PAUSE - PAUSE key.
* @property {number} PAGE_UP - PAGE UP key.
* @property {number} PAGE_DOWN - PAGE DOWN key.
* @property {number} LEFT - LEFT key.
* @property {number} UP - UP key.
* @property {number} RIGHT - RIGHT key.
* @property {number} DOWN - DOWN key.
* @property {number} _0 - 0 (zero) key.
* @property {number} _1 - 1 key.
* @property {number} _2 - 2 key.
* @property {number} _3 - 3 key.
* @property {number} _4 - 4 key.
* @property {number} _5 - 5 key.
* @property {number} _6 - 6 key.
* @property {number} _7 - 7 key.
* @property {number} _8 - 8 key.
* @property {number} _9 - 9 key.
* @property {number} 0 - Alias for {@link CB_Keyboard.extended.VK._0}.
* @property {number} 1 - Alias for {@link CB_Keyboard.extended.VK._1}.
* @property {number} 2 - Alias for {@link CB_Keyboard.extended.VK._2}.
* @property {number} 3 - Alias for {@link CB_Keyboard.extended.VK._3}.
* @property {number} 4 - Alias for {@link CB_Keyboard.extended.VK._4}.
* @property {number} 5 - Alias for {@link CB_Keyboard.extended.VK._5}.
* @property {number} 6 - Alias for {@link CB_Keyboard.extended.VK._6}.
* @property {number} 7 - Alias for {@link CB_Keyboard.extended.VK._7}.
* @property {number} 8 - Alias for {@link CB_Keyboard.extended.VK._8}.
* @property {number} 9 - Alias for {@link CB_Keyboard.extended.VK._9}.
* @property {number} REWIND - RW (REWIND) key.
* @property {number} STOP - STOP key.
* @property {number} PLAY - PLAY key.
* @property {number} FAST_FWD - FF (FAST FORWARD) key.
* @property {number} BACK - BACK key.
* @property {number} PREV - PREVIOUS key.
* @property {number} NEXT - NEXT key.
* @property {number} INFO - INFORMATION key.
* @property {number} RED - RED key.
* @property {number} GREEN - GREEN key.
* @property {number} YELLOW - YELLOW key.
* @property {number} BLUE - BLUE key.
* @property {number} SPACE - SPACE key.
* @property {number} BACK_SPACE - BACK SPACE key.
* @property {number} A - A key.
* @property {number} B - B key.
* @property {number} C - C key.
* @property {number} D - D key.
* @property {number} E - E key.
* @property {number} F - F key.
* @property {number} G - G key.
* @property {number} H - H key.
* @property {number} I - I key.
* @property {number} J - J key.
* @property {number} K - K key.
* @property {number} L - L key.
* @property {number} M - M key.
* @property {number} N - N key.
* @property {number} O - O key.
* @property {number} P - P key.
* @property {number} Q - Q key.
* @property {number} R - R key.
* @property {number} S - S key.
* @property {number} T - T key.
* @property {number} U - U key.
* @property {number} V - V key.
* @property {number} W - W key.
* @property {number} X - X key.
* @property {number} Y - Y key.
* @property {number} Z - Z key.
* @property {number} VOLUME_UP - VOLUME UP key.
* @property {number} VOLUME_DOWN - VOLUME DOWN key.
* @property {number} MUTE - MUTE key.
* @property {number} PLAY_PAUSE - PLAY/PAUSE key.
* @property {number} HELP - HELP key.
* @property {number} SUBTITLE - SUBTITLE key.
* @property {number} SEARCH - SEARCH key.
* @property {number} AUDIODESCRIPTION - AUDIODESCRIPTION key.
* @property {number} HD - HD (High Definition) key.
*/
CB_Keyboard.extended.VK =
{
//* Source: http://smarttv-alliance.org/Markets/Developers.aspx
ENTER: window.VK_ENTER || 13,
PAUSE: window.VK_PAUSE || 19,
PAGE_UP: window.VK_PAGE_UP || 33,
PAGE_DOWN: window.VK_PAGE_DOWN || 34,
LEFT: window.VK_LEFT || 37,
UP: window.VK_UP || 38,
RIGHT: window.VK_RIGHT || 39,
DOWN: window.VK_DOWN || 40,
_0: window.VK_0 || 48,
_1: window.VK_1 || 49,
_2: window.VK_2 || 50,
_3: window.VK_3 || 51,
_4: window.VK_4 || 52,
_5: window.VK_5 || 53,
_6: window.VK_6 || 54,
_7: window.VK_7 || 55,
_8: window.VK_8 || 56,
_9: window.VK_9 || 57,
REWIND: window.VK_REWIND || 412,
STOP: window.VK_STOP || 413,
PLAY: window.VK_PLAY || 415,
FAST_FWD: window.VK_FAST_FWD || 417,
BACK: window.VK_BACK || 461,
PREV: window.VK_PREV || 424,
NEXT: window.VK_NEXT || 425,
INFO: window.VK_INFO || 457,
RED: window.VK_RED || 403,
GREEN: window.VK_GREEN || 404,
YELLOW: window.VK_YELLOW || 405,
BLUE: window.VK_BLUE || 406,
//More virtual keyboard keys:
//* Source: https://fmtvp.github.io/tal/jsdoc/symbols/src/antie_static_script_events_keyevent.js.html
SPACE: window.VK_SPACE || 32,
BACK_SPACE: window.VK_BACK_SPACE || 8,
A: window.VK_A || 65,
B: window.VK_B || 66,
C: window.VK_C || 67,
D: window.VK_D || 68,
E: window.VK_E || 69,
F: window.VK_F || 70,
G: window.VK_G || 71,
H: window.VK_H || 72,
I: window.VK_I || 73,
J: window.VK_J || 74,
K: window.VK_K || 75,
L: window.VK_L || 76,
M: window.VK_M || 77,
N: window.VK_N || 78,
O: window.VK_O || 79,
P: window.VK_P || 80,
Q: window.VK_Q || 81,
R: window.VK_R || 82,
S: window.VK_S || 83,
T: window.VK_T || 84,
U: window.VK_U || 85,
V: window.VK_V || 86,
W: window.VK_W || 87,
X: window.VK_X || 88,
Y: window.VK_Y || 89,
Z: window.VK_Z || 90,
VOLUME_UP: window.VK_VOLUME_UP || 447,
VOLUME_DOWN: window.VK_VOLUME_DOWN || 448,
MUTE: window.VK_MUTE || 449,
PLAY_PAUSE: window.VK_PLAY_PAUSE || 402,
HELP: window.VK_HELP || 156,
SUBTITLE: window.VK_SUBTITLE || 460,
SEARCH: window.VK_SEARCH || 112, //112 is the same code as the F1 key.
AUDIODESCRIPTION: window.VK_AUDIODESCRIPTION || 113, //113 is the same code as the F2 key.
HD: window.VK_HD || 114 //114 is the same code as the F3 key.
};
CB_Keyboard.extended.VK[0] = CB_Keyboard.extended.VK._0;
CB_Keyboard.extended.VK[1] = CB_Keyboard.extended.VK._1;
CB_Keyboard.extended.VK[2] = CB_Keyboard.extended.VK._2;
CB_Keyboard.extended.VK[3] = CB_Keyboard.extended.VK._3;
CB_Keyboard.extended.VK[4] = CB_Keyboard.extended.VK._4;
CB_Keyboard.extended.VK[5] = CB_Keyboard.extended.VK._5;
CB_Keyboard.extended.VK[6] = CB_Keyboard.extended.VK._6;
CB_Keyboard.extended.VK[7] = CB_Keyboard.extended.VK._7;
CB_Keyboard.extended.VK[8] = CB_Keyboard.extended.VK._8;
CB_Keyboard.extended.VK[9] = CB_Keyboard.extended.VK._9;
CB_Keyboard.extended.VK._allowDuplicateKeyAliases = CB_Configuration[CB_BASE_NAME].CB_Keyboard_extended_VK_allowDuplicateKeyAliases;
/**
* Samsung Tizen TV key codes.
* @memberof CB_Keyboard.extended
* @name SAMSUNG_TIZEN_TV
* @constant
* @type {Object}
* @default
* @property {number} UP - UP button.
* @property {number} DOWN - DOWN button.
* @property {number} LEFT - LEFT button.
* @property {number} RIGHT - RIGHT button.
* @property {number} ENTER - ENTER button.
* @property {number} MEDIA_PLAY_PAUSE - PLAY/PAUSE MEDIA button.
* @property {number} MEDIA_REWIND - RW (REWIND) MEDIA button.
* @property {number} MEDIA_FORWARD - FW (FORWARD) MEDIA button.
* @property {number} MEDIA_PLAY - PLAY MEDIA button.
* @property {number} MEDIA_PAUSE - PAUSE MEDIA button.
* @property {number} MEDIA_STOP - STOP MEDIA button.
* @property {number} RETURN - RETURN button.
* @property {number} MEDIA_RECORD - RECORD MEDIA button.
* @property {number} MEDIA_TRACK_PREVIOUS - PREVIOUS TRACK MEDIA button.
* @property {number} MEDIA_TRACK_NEXT - NEXT TRACK MEDIA button.
* @property {number} VOLUME_UP - VOLUME UP button.
* @property {number} VOLUME_DOWN - VOLUME DOWN button.
* @property {number} MUTE - MUTE button.
* @property {number} _0 - 0 (zero) button.
* @property {number} _1 - 1 button.
* @property {number} _2 - 2 button.
* @property {number} _3 - 3 button.
* @property {number} _4 - 4 button.
* @property {number} _5 - 5 button.
* @property {number} _6 - 6 button.
* @property {number} _7 - 7 button.
* @property {number} _8 - 8 button.
* @property {number} _9 - 9 button.
* @property {number} 0 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._0}.
* @property {number} 1 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._1}.
* @property {number} 2 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._2}.
* @property {number} 3 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._3}.
* @property {number} 4 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._4}.
* @property {number} 5 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._5}.
* @property {number} 6 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._6}.
* @property {number} 7 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._7}.
* @property {number} 8 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._8}.
* @property {number} 9 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._9}.
* @property {number} RED - RED button.
* @property {number} GREEN - GREEN button.
* @property {number} YELLOW - YELLOW button.
* @property {number} BLUE - BLUE button.
* @property {number} INFO - INFORMATION button.
* @property {number} EXIT - EXIT button.
* @property {number} MINUS - MINUS button.
* @property {number} CAPTION - CAPTION button.
* @property {number} CH_UP - CHANNEL UP button.
* @property {number} CH_DOWN - CHANNEL DOWN button.
* @property {number} CH_PREVIOUS - PREVIOUS CHANNEL button.
* @property {number} CH_LIST - CHANNEL LIST button.
* @property {number} E_MANUAL - E-MANUAL button.
* @property {number} SEARCH - SEARCH button.
* @property {number} _3D - 3D button.
* @property {number} 3D - Alias for {@link CB_Keyboard.extended.SAMSUNG_TIZEN_TV._3D}.
* @property {number} GUIDE - GUIDE button.
* @property {number} SOURCE - SOURCE button.
* @property {number} PICTURE_SIZE - PICTURE SIZE button.
* @property {number} EXTRA - EXTRA button.
* @property {number} SOCCER - SOCCER button.
* @property {number} MTS - MTS (Multichannel Television Sound) button.
* @property {number} TELETEXT - TELETEXT button.
* @property {number} MENU - MENU button.
* @property {number} TOOLS - TOOLS button.
*/
CB_Keyboard.extended.SAMSUNG_TIZEN_TV =
{
UP: 38,
DOWN: 40,
LEFT: 37,
RIGHT: 39,
ENTER: 13,
MEDIA_PLAY_PAUSE: 10252,
MEDIA_REWIND: 412,
MEDIA_FORWARD: 417,
MEDIA_PLAY: 415,
MEDIA_PAUSE: 19,
MEDIA_STOP: 413,
RETURN: 10009,
MEDIA_RECORD: 416,
MEDIA_TRACK_PREVIOUS: 10232,
MEDIA_TRACK_NEXT: 10233,
VOLUME_UP: 447,
VOLUME_DOWN: 448,
MUTE: 449,
_0: 48,
_1: 49,
_2: 50,
_3: 51,
_4: 52,
_5: 53,
_6: 54,
_7: 55,
_8: 56,
_9: 57,
RED: 403,
GREEN: 404,
YELLOW: 405,
BLUE: 406,
INFO: 457,
EXIT: 10182,
MINUS: 189,
CAPTION: 10221,
CH_UP: 427,
CH_DOWN: 428,
CH_PREVIOUS: 10190,
CH_LIST: 10073,
E_MANUAL: 10146,
SEARCH: 10225,
_3D: 10199,
GUIDE: 458,
SOURCE: 10072,
PICTURE_SIZE: 10140,
EXTRA: 10253,
SOCCER: 10228,
MTS: 10195,
TELETEXT: 10200,
MENU: 457,
TOOLS: 10135
};
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[0] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._0;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[1] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._1;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[2] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._2;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[3] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._3;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[4] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._4;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[5] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._5;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[6] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._6;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[7] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._7;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[8] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._8;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV[9] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._9;
CB_Keyboard.extended.SAMSUNG_TIZEN_TV["3D"] = CB_Keyboard.extended.SAMSUNG_TIZEN_TV._3D;
try { var tvKey = new Common.API.TVKeyValue(); } catch(E) { try { tvKey = sf.key; } catch(E) { tvKey = {}; } }
/**
* Samsung TV key codes.
* @memberof CB_Keyboard.extended
* @name SAMSUNG_TV
* @constant
* @type {Object}
* @default
* @property {number} TOOLS - TOOLS button.
* @property {number} EMODE - EMODE button.
* @property {number} DMA - DMA (Digital Media Adapter) button.
* @property {number} SOURCE - SOURCE button.
* @property {number} CHDOWN - CHANNEL DOWN button.
* @property {number} CHUP - CHANNEL UP button.
* @property {number} PANEL_CH_UP - CHANNEL UP PANEL button #1.
* @property {number} PANEL_CH_DOWN - CHANNEL DOWN PANEL button #1.
* @property {number} PANEL_CHUP - CHANNEL UP PANEL button #2.
* @property {number} PANEL_CHDOWN - CHANNEL DOWN PANEL button #2.
* @property {number} PIP_CHUP - CHANNEL UP PIP (Picture In Picture) button.
* @property {number} PIP_CHDOWN - CHANNEL DOWN PIP (Picture In Picture) button.
* @property {number} PRECH - PRE-CHANNEL (PREVIOUS CHANNEL) button.
* @property {number} FAVCH - FAVOURITE CHANNEL button.
* @property {number} CHLIST - CHANNEL LIST button.
* @property {number} TTX_MIX - TELETEXT button.
* @property {number} GUIDE - GUIDE button.
* @property {number} ASPECT - ASPECT button.
* @property {number} DOLBY_SRR - DOLBY SRR (SuRroundRight) button.
* @property {number} MTS - MTS (Multichannel Television Sound) button.
* @property {number} WHEELDOWN - WHEEL DOWN #1.
* @property {number} WHEEL_DOWN - WHEEL DOWN #2.
* @property {number} WHEELUP - WHEEL UP #1.
* @property {number} WHEEL_UP - WHEEL UP #2.
* @property {number} WHEELLEFT - WHEEL LEFT #1.
* @property {number} WHEEL_LEFT - WHEEL LEFT #2.
* @property {number} WHEELRIGHT - WHEEL RIGHT #1.
* @property {number} WHEEL_RIGHT - WHEEL RIGHT #2.
* @property {number} SMART - SMART TV button.
* @property {number} EXIT - EXIT button.
* @property {number} POWER - POWER button.
* @property {number} PANEL_POWER - POWER PANEL button.
* @property {number} POWEROFF - POWER OFF button.
* @property {number} POWERON - POWER ON button.
* @property {number} CONTENT - CONTENT button.
* @property {number} WLINK - WLINK (Wiselink) button #1.
* @property {number} W_LINK - WLINK (Wiselink) button #2.
* @property {number} EMPTY - EMPTY button.
* @property {number} CC - CC (Closed Captioning) button.
* @property {number} REC - REC button.
* @property {number} VOLUP - VOLUME UP button #1.
* @property {number} VOL_UP - VOLUME UP button #2.
* @property {number} VOLDOWN - VOLUME DOWN button #1.
* @property {number} VOL_DOWN - VOLUME DOWN button #2.
* @property {number} PANEL_VOLUP - PANEL VOLUME UP button #1.
* @property {number} PANEL_VOL_UP - PANEL VOLUME UP button #2.
* @property {number} PANEL_VOLDOW - PANEL VOLUME DOWN button #1.
* @property {number} PANEL_VOLDOWN - PANEL VOLUME DOWN button #2.
* @property {number} PANEL_VOL_DOWN - PANEL VOLUME DOWN button #3.
* @property {number} MUTE - MUTE button.
* @property {number} INFO - INFORMATION button.
* @property {number} INFOLINK - INFOLINK button.
* @property {number} MENU - MENU button.
* @property {number} SUBTITLE - SUBTITLE button #1.
* @property {number} SUB_TITLE - SUBTITLE button #2.
* @property {number} PANEL_SOURCE - SOURCE PANEL button.
* @property {number} _0 - 0 (zero) button.
* @property {number} _1 - 1 button.
* @property {number} _2 - 2 button.
* @property {number} _3 - 3 button.
* @property {number} _4 - 4 button.
* @property {number} _5 - 5 button.
* @property {number} _6 - 6 button.
* @property {number} _7 - 7 button.
* @property {number} _8 - 8 button.
* @property {number} _9 - 9 button.
* @property {number} _10 - 10 button.
* @property {number} _11 - 11 button.
* @property {number} _12 - 12 button.
* @property {number} 0 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._0}.
* @property {number} 1 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._1}.
* @property {number} 2 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._2}.
* @property {number} 3 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._3}.
* @property {number} 4 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._4}.
* @property {number} 5 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._5}.
* @property {number} 6 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._6}.
* @property {number} 7 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._7}.
* @property {number} 8 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._8}.
* @property {number} 9 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._9}.
* @property {number} 10 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._10}.
* @property {number} 11 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._11}.
* @property {number} 12 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._12}.
* @property {number} RED - RED button.
* @property {number} GREEN - GREEN button.
* @property {number} YELLOW - YELLOW button.
* @property {number} BLUE - BLUE button.
* @property {number} CYAN - CYAN button.
* @property {number} RW - RW (REWIND) button #1.
* @property {number} REWIND - RW (REWIND) button #2.
* @property {number} REWIND_ - RW (REWIND) button #3.
* @property {number} FF - FF (FAST FORWARD) button #1.
* @property {number} FF_ - FF (FAST FORWARD) button #2.
* @property {number} PAUSE - PAUSE button.
* @property {number} PLAY - PLAY button.
* @property {number} STOP - STOP button.
* @property {number} SEARCH - SEARCH button.
* @property {number} UP - UP button.
* @property {number} DOWN - DOWN button.
* @property {number} LEFT - LEFT button.
* @property {number} RIGHT - RIGHT button.
* @property {number} CH_UP - CHANNEL UP button.
* @property {number} CH_DOWN - CHANNEL DOWN button.
* @property {number} DISC_MENU - DISC MENU button.
* @property {number} _3D - 3D button.
* @property {number} 3D - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._3D}.
* @property {number} PIP_ONOFF - PIP (Picture In Picture) ON/OFF button.
* @property {number} AD - AD (Audio Description) button.
* @property {number} PMODE - PICTURE MODE button.
* @property {number} SMODE - SOUND MODE button.
* @property {number} SLEEP - SLEEP button.
* @property {number} D_AUDIO - DIGITAL AUDIO button.
* @property {number} D_FRONT_PLAY - DIGITAL FRONT PLAY button.
* @property {number} D_VIEW_MODE - DIGITAL VIEW MODE button.
* @property {number} STEP - STEP button.
* @property {number} CALLER_ID - CALLED ID button.
* @property {number} ANTENNA - ANTENNA button.
* @property {number} ZOOM_MOVE - MOVE ZOOM button.
* @property {number} ZOOM1 - ZOOM 1 button.
* @property {number} ZOOM2 - ZOOM 2 button.
* @property {number} ZOOM_IN - ZOOM IN button.
* @property {number} ZOOM_OUT - ZOOM OUT button.
* @property {number} RETURN - RETURN button.
* @property {number} PANEL_RETURN - RETURN PANEL button.
* @property {number} ENTER - ENTER button.
* @property {number} PANEL_ENTER - ENTER PANEL button.
* @property {number} PANEL_MENU - MENU PANEL button.
* @property {number} ADDDEL - ADD/DEL button.
* @property {number} PIP_SWAP - PIP (Picture In Picture) SWAP button.
* @property {number} PLUS100 - SAMSUNG AUTO MOTION PLUS 100 HZ button.
* @property {number} CAPTION - CAPTION button.
* @property {number} PICTURE_SIZE - PICTURE SIZE button.
* @property {number} PIP_SIZE - PIP (Picture In Picture) SIZE button.
* @property {number} MAGIC_CHANNEL - MAGIC CHANNEL button.
* @property {number} PIP_SCAN - PIP (Picture In Picture) SCAN button.
* @property {number} DEVICE_CONNECT - DEVICE CONNECT button.
* @property {number} HELP - HELP button.
* @property {number} CONVERGENCE - CONVERGENCE button.
* @property {number} AUTO_PROGRAM - AUTO PROGRAM button.
* @property {number} FACTORY - FACTORY button.
* @property {number} _3SPEED - 3SPEED button.
* @property {number} 3SPEED - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._3SPEED}.
* @property {number} RSURF - R.SURF button.
* @property {number} TOPMENU - TOP MENU button.
* @property {number} GAME - GAME button.
* @property {number} QUICK_REPLAY - QUICK REPLAY button.
* @property {number} STILL_PICTURE - STILL PICTURE button.
* @property {number} DTV - DTV (Digital Television) button.
* @property {number} INSTANT_REPLAY - INSTANT REPLAY button.
* @property {number} LINK - LINK button.
* @property {number} ANGLE - ANGLE button.
* @property {number} RESERVED1 - RESERVED1 button.
* @property {number} RESERVED5 - RESERVED5 button.
* @property {number} PROGRAM - PROGRAM button.
* @property {number} BOOKMARK - BOOKMARK button.
* @property {number} PRINT - PRINT button.
* @property {number} CLEAR - CLEAR button.
* @property {number} VCHIP - V-CHIP button.
* @property {number} REPEAT - REPEAT button.
* @property {number} DOOR - DOOR button.
* @property {number} OPEN - OPEN button.
* @property {number} TURBO - TURBO button.
* @property {number} DVR_MENU - DVR (Digital Video Recorder) MENU button.
* @property {number} TTX_SUBFACE - Teletext Subface button.
* @property {number} CH_LIST - CHANNEL LIST button.
* @property {number} DNIe - DNIe (Digital Natural Image Engine) button.
* @property {number} DNSe - DNSe (Digital Natural Sound Engine) button.
* @property {number} SRS - SRS (Sound Retrieval System) button.
* @property {number} CONVERT_AUDIO_MAINSUB - CONVERT AUDIO MAIN/SUB button.
* @property {number} MDC - MDC button.
* @property {number} SEFFECT - SOUND EFFECT button.
* @property {number} DVR - DVR (Digital Video Recorder) button.
* @property {number} DTV_SIGNAL - DTV (Digital Television) SIGNAL button.
* @property {number} LIVE - LIVE button.
* @property {number} PERPECT_FOCUS - PERPECT FOCUS button.
* @property {number} HOME - HOME button.
* @property {number} ESAVING - ENERGY SAVING button.
* @property {number} CONTENTS - CONTENTS button.
* @property {number} SCALE - SCALE button.
* @property {number} CLOCK_DISPLAY - CLOCK DISPLAY button.
* @property {number} SETUP_CLOCK_TIMER - SETUP CLOCK TIMER button.
* @property {number} MAGIC_BRIGHT - MAGIC BRIGHT button.
* @property {number} FM_RADIO - FM RADIO button.
* @property {number} VCR_MODE - VCR MODE button.
* @property {number} CATV_MODE - CATV (Community Antenna Television) MODE button.
* @property {number} DSS_MODE - DSS MODE button.
* @property {number} DVD_MODE - DVD MODE button.
* @property {number} STB_MODE - STB (Set-Top Box) MODE button.
* @property {number} PCMODE - PC MODE button.
* @property {number} TV_MODE - TV MODE button.
* @property {number} TV - TV button.
* @property {number} AV1 - AV #1 button.
* @property {number} AV2 - AV #2 button.
* @property {number} AV3 - AV #3 button.
* @property {number} SVIDEO1 - S-VIDEO (Separated-Video) #1 button.
* @property {number} SVIDEO2 - S-VIDEO (Separated-Video) #2 button.
* @property {number} SVIDEO3 - S-VIDEO (Separated-Video) #3 button.
* @property {number} COMPONENT1 - COMPONENT #1 button.
* @property {number} COMPONENT2 - COMPONENT #2 button.
* @property {number} DVI - DVI (Digital Visual Interface) button.
* @property {number} HDMI - HDMI button.
* @property {number} HDMI1 - HDMI #1 button.
* @property {number} HDMI2 - HDMI #2 button.
* @property {number} HDMI3 - HDMI #3 button.
* @property {number} HDMI4 - HDMI #4 button.
* @property {number} DTV_LINK - DTVLINK (DIGITAL TELEVISION LINK) button.
* @property {number} APP_LIST - APP LIST button.
* @property {number} BACK_MHP - BACK MHP (Multimedia Home Platform) button.
* @property {number} ALT_MHP - ALTERNATE MHP (Multimedia Home Platform) button.
* @property {number} RSS - RSS button.
* @property {number} ENTERTAINMENT - ENTERTAINMENT button.
* @property {number} ID_INPUT - ID INPUT button.
* @property {number} ID_SETUP - ID SETUP button.
* @property {number} ANYNET - ANYNET button.
* @property {number} ANYVIEW - ANYVIEW button.
* @property {number} MS - MS button.
* @property {number} MORE - MORE button.
* @property {number} _4_3 - 4:3 button.
* @property {number} 4_3 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._4_3}.
* @property {number} _16_9 - 16:9 button.
* @property {number} 16_9 - Alias for {@link CB_Keyboard.extended.SAMSUNG_TV._16_9}.
* @property {number} PANORAMA - PICTURE MODE PANORAMA button.
* @property {number} DYNAMIC - PICTURE MODE DYNAMIC button.
* @property {number} STANDARD - PICTURE MODE STANDARD button.
* @property {number} MOVIE1 - PICTURE MODE MOVIE1 button.
* @property {number} CUSTOM - PICTURE MODE CUSTOM button.
* @property {number} AUTO_ARC_RESET - AUTO ARC (Audio Return Channel) RESET button.
* @property {number} AUTO_ARC_LNA_ON - AUTO ARC (Audio Return Channel) LNA (Low Noise Amplifier) ON button.
* @property {number} AUTO_ARC_LNA_OFF - AUTO ARC (Audio Return Channel) LNA (Low Noise Amplifier) OFF button.
* @property {number} AUTO_ARC_ANYNET_MODE_OK - AUTO ARC (Audio Return Channel) ANYNET MODE OK button.
* @property {number} AUTO_ARC_ANYNET_AUTO_START - AUTO ARC (Audio Return Channel) ANYNET AUTO START button.
* @property {number} AUTO_ARC_CAPTION_ON - AUTO ARC (Audio Return Channel) CAPTION ON button.
* @property {number} AUTO_ARC_CAPTION_OFF - AUTO ARC (Audio Return Channel) CAPTION OFF button.
* @property {number} AUTO_ARC_PIP_DOUBLE - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) DOUBLE button.
* @property {number} AUTO_ARC_PIP_LARGE - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) LARGE button.
* @property {number} AUTO_ARC_PIP_SMALL - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) SMALL button.
* @property {number} AUTO_ARC_PIP_WIDE - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) WIDE button.
* @property {number} AUTO_ARC_PIP_LEFT_TOP - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) LEFT TOP button.
* @property {number} AUTO_ARC_PIP_RIGHT_TOP - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) RIGHT TOP button.
* @property {number} AUTO_ARC_PIP_LEFT_BOTTOM - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) LEFT BOTTOM button.
* @property {number} AUTO_ARC_PIP_RIGHT_BOTTOM - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) RIGHT BOTTOM button.
* @property {number} AUTO_ARC_PIP_CH_CHANGE - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) CHANNEL CHANGE button.
* @property {number} AUTO_ARC_PIP_SOURCE_CHANGE - AUTO ARC (Audio Return Channel) PIP (Picture In Picture) SOURCE CHANGE button.
* @property {number} AUTO_ARC_AUTOCOLOR_SUCCESS - AUTO ARC (Audio Return Channel) AUTOCOLOR SUCCESS button.
* @property {number} AUTO_ARC_AUTOCOLOR_FAIL - AUTO ARC (Audio Return Channel) AUTOCOLOR FAIL button.
* @property {number} AUTO_ARC_C_FORCE_AGING - AUTO ARC (Audio Return Channel) C-FORCE AGING button.
* @property {number} AUTO_ARC_USBJACK_INSPECT - AUTO ARC (Audio Return Channel) USB JACK INSPECT button.
* @property {number} AUTO_ARC_JACK_IDENT - AUTO ARC (Audio Return Channel) JACK IDENT button.
* @property {number} AUTO_ARC_CAPTION_KOR - AUTO ARC (Audio Return Channel) CAPTION KOREAN button.
* @property {number} AUTO_ARC_CAPTION_ENG - AUTO ARC (Audio Return Channel) CAPTION ENGLISH button.
* @property {number} AUTO_ARC_ANTENNA_AIR - AUTO ARC (Audio Return Channel) ANTENNA AIR button.
* @property {number} AUTO_ARC_ANTENNA_CABLE - AUTO ARC (Audio Return Channel) ANTENNA CABLE button.
* @property {number} AUTO_ARC_ANTENNA_SATELLITE - AUTO ARC (Audio Return Channel) ANTENNA SATELLITE button.
* @property {number} AUTO_FORMAT - AUTO FORMAT button.
* @property {number} DNET - D-NET button.
* @property {number} NINE_SEPARATE - NINE SEPARATE button.
* @property {number} MIC - MIC (MICROPHONE) button.
* @property {number} EXT1 - EXT1 button.
* @property {number} EXT2 - EXT2 button.
* @property {number} EXT3 - EXT3 button.
* @property {number} EXT4 - EXT4 button.
* @property {number} EXT5 - EXT5 button.
* @property {number} EXT6 - EXT6 button.
* @property {number} EXT7 - EXT7 button.
* @property {number} EXT8 - EXT8 button.
* @property {number} EXT9 - EXT9 button.
* @property {number} EXT10 - EXT10 button.
* @property {number} EXT11 - EXT11 button.
* @property {number} EXT12 - EXT12 button.
* @property {number} EXT13 - EXT13 button.
* @property {number} EXT14 - EXT14 button.
* @property {number} EXT15 - EXT15 button.
* @property {number} EXT16 - EXT16 button.
* @property {number} EXT17 - EXT17 button.
* @property {number} EXT18 - EXT18 button.
* @property {number} EXT19 - EXT19 button.
* @property {number} EXT20 - EXT20 button.
* @property {number} EXT21 - EXT21 button.
* @property {number} EXT22 - EXT22 button.
* @property {number} EXT23 - EXT23 button.
* @property {number} EXT24 - EXT24 button.
* @property {number} EXT25 - EXT25 button.
* @property {number} EXT26 - EXT26 button.
* @property {number} EXT27 - EXT27 button.
* @property {number} EXT28 - EXT28 button.
* @property {number} EXT29 - EXT29 button.
* @property {number} EXT30 - EXT30 button.
* @property {number} EXT31 - EXT31 button.
* @property {number} EXT32 - EXT32 button.
* @property {number} EXT33 - EXT33 button.
* @property {number} EXT34 - EXT34 button.
* @property {number} EXT35 - EXT35 button.
* @property {number} EXT36 - EXT36 button.
* @property {number} EXT37 - EXT37 button.
* @property {number} EXT38 - EXT38 button.
* @property {number} EXT39 - EXT39 button.
* @property {number} EXT40 - EXT40 button.
* @property {number} EXT41 - EXT41 button.
*/
//* Source: https://forum.samygo.tv/viewtopic.php?t=1792 and http://www.openremote.org/pages/viewpage.action?pageId=19434990 and https://github.com/Ape/samsungctl/issues/87
CB_Keyboard.extended.SAMSUNG_TV =
{
TOOLS: tvKey.KEY_TOOLS || tvKey.TOOLS, //Same code as "K" key (75).
EMODE: tvKey.KEY_EMODE || tvKey.EMODE, //148
DMA: tvKey.KEY_DMA || tvKey.DMA, //260
SOURCE: tvKey.KEY_SOURCE || tvKey.SOURCE, //222
CHDOWN: tvKey.KEY_CHDOWN || tvKey.CHDOWN,
CHUP: tvKey.KEY_CHUP || tvKey.CHUP,
PANEL_CH_UP: tvKey.KEY_PANEL_CH_UP || tvKey.PANEL_CH_UP, //105 (same code as "9" in the numeric pad).
PANEL_CH_DOWN: tvKey.KEY_PANEL_CH_DOWN || tvKey.PANEL_CH_DOWN, //106 (same code as asterisk ("*") in the numeric pad).
PANEL_CHUP: tvKey.KEY_PANEL_CHUP || tvKey.KEY_PANNEL_CHUP || tvKey.PANEL_CHUP || tvKey.PANNEL_CHUP,
PANEL_CHDOWN: tvKey.KEY_PANEL_CHDOWN || tvKey.KEY_PANNEL_CHDOWN || tvKey.PANEL_CHDOWN || tvKey.PANNEL_CHDOWN,
PIP_CHUP: tvKey.KEY_PIP_CHUP || tvKey.PIP_CHUP, //1050
PIP_CHDOWN: tvKey.KEY_PIP_CHDOWN || tvKey.PIP_CHDOWN, //1051
PRECH: tvKey.KEY_PRECH || tvKey.PRECH, //259
FAVCH: tvKey.KEY_FAVCH || tvKey.FAVCH, //256
CHLIST: tvKey.KEY_CHLIST || tvKey.CHLIST, //84 (same code as "T" key).
TTX_MIX: tvKey.KEY_TTX_MIX || tvKey.TTX_MIX, //650
GUIDE: tvKey.KEY_GUIDE || tvKey.GUIDE, //651
ASPECT: tvKey.KEY_ASPECT || tvKey.ASPECT, //653
DOLBY_SRR: tvKey.KEY_DOLBY_SRR || tvKey.DOLBY_SRR, //654
MTS: tvKey.KEY_MTS || tvKey.MTS, //655
WHEELDOWN: tvKey.KEY_WHEELDOWN || tvKey.WHEELDOWN, //29469
WHEEL_DOWN: tvKey.KEY_WHEEL_DOWN || tvKey.WHEEL_DOWN,
WHEELUP: tvKey.KEY_WHEELUP || tvKey.WHEELUP, //29468
WHEEL_UP: tvKey.KEY_WHEEL_UP || tvKey.WHEEL_UP,
WHEELLEFT: tvKey.KEY_WHEELLEFT || tvKey.WHEELLEFT,
WHEEL_LEFT: tvKey.KEY_WHEEL_LEFT || tvKey.WHEEL_LEFT,
WHEELRIGHT: tvKey.KEY_WHEELRIGHT || tvKey.WHEELRIGHT,
WHEEL_RIGHT: tvKey.KEY_WHEEL_RIGHT || tvKey.WHEEL_RIGHT,
SMART: tvKey.KEY_SMART || tvKey.SMART,
EXIT: tvKey.KEY_EXIT || tvKey.EXIT, //Same code as INS key (45).
POWER: tvKey.KEY_POWER || tvKey.POWER, //76 (same code as "L" key).
PANEL_POWER: tvKey.KEY_PANEL_POWER || tvKey.KEY_PANNEL_POWER || tvKey.PANEL_POWER || tvKey.PANNEL_POWER, //614
POWEROFF: tvKey.KEY_POWEROFF || tvKey.POWEROFF,
POWERON: tvKey.KEY_POWERON || tvKey.POWERON,
CONTENT: tvKey.KEY_CONTENT || tvKey.CONTENT, //261
WLINK: tvKey.KEY_WLINK || tvKey.WLINK, //115 (same code as F4 key)
W_LINK: tvKey.KEY_W_LINK || tvKey.W_LINK,
EMPTY: tvKey.KEY_EMPTY || tvKey.EMPTY, //0
CC: tvKey.KEY_CC || tvKey.CC, //118 (same code as F7 key)
REC: tvKey.KEY_REC || tvKey.REC, //192
VOLUP: tvKey.KEY_VOLUP || tvKey.VOLUP,
VOL_UP: tvKey.KEY_VOL_UP || tvKey.VOL_UP, //7
VOLDOWN: tvKey.KEY_VOLDOWN || tvKey.VOLDOWN,
VOL_DOWN: tvKey.KEY_VOL_DOWN || tvKey.VOL_DOWN, //1
PANEL_VOLUP: tvKey.KEY_PANEL_VOLUP || tvKey.KEY_PANNEL_VOLUP || tvKey.PANEL_VOLUP || tvKey.PANNEL_VOLUP,
PANEL_VOL_UP: tvKey.KEY_PANEL_VOL_UP || tvKey.PANEL_VOL_UP, //203
PANEL_VOLDOW: tvKey.KEY_PANEL_VOLDOW || tvKey.KEY_PANNEL_VOLDOW || tvKey.PANEL_VOLDOW || tvKey.PANNEL_VOLDOW,
PANEL_VOLDOWN: tvKey.KEY_PANEL_VOLDOWN || tvKey.KEY_PANNEL_VOLDOWN || tvKey.PANEL_VOLDOWN || tvKey.PANNEL_VOLDOWN,
PANEL_VOL_DOWN: tvKey.KEY_PANEL_VOL_DOWN || tvKey.PANEL_VOL_DOWN, //204
MUTE: tvKey.KEY_MUTE || tvKey.MUTE, //Same code as ESC key (27).
INFO: tvKey.KEY_INFO || tvKey.INFO, //31
INFOLINK: tvKey.KEY_INFOLINK || tvKey.INFOLINK, //147
MENU: tvKey.KEY_MENU || tvKey.MENU, //262
SUBTITLE: tvKey.KEY_SUBTITLE || tvKey.SUBTITLE, //652
SUB_TITLE: tvKey.KEY_SUB_TITLE || tvKey.SUB_TITLE, //1089
PANEL_SOURCE: tvKey.KEY_PANEL_SOURCE || tvKey.KEY_PANNEL_SOURCE || tvKey.PANEL_SOURCE || tvKey.PANNEL_SOURCE, //612
_0: tvKey.KEY_0 || tvKey.N0 || tvKey._0 || tvKey["0"], //17 (same code as CTRL or META key, depending on the system).
_1: tvKey.KEY_1 || tvKey.N1 || tvKey._1 || tvKey["1"], //101 (same code as "5" in the numeric pad).
_2: tvKey.KEY_2 || tvKey.N2 || tvKey._2 || tvKey["2"], //98 (same code as "2" in the numeric pad).
_3: tvKey.KEY_3 || tvKey.N3 || tvKey._3 || tvKey["3"], //6
_4: tvKey.KEY_4 || tvKey.N4 || tvKey._4 || tvKey["4"], //8
_5: tvKey.KEY_5 || tvKey.N5 || tvKey._5 || tvKey["5"], //9
_6: tvKey.KEY_6 || tvKey.N6 || tvKey._6 || tvKey["6"], //10
_7: tvKey.KEY_7 || tvKey.N7 || tvKey._7 || tvKey["7"], //12
_8: tvKey.KEY_8 || tvKey.N8 || tvKey._8 || tvKey["8"], //13
_9: tvKey.KEY_9 || tvKey.N9 || tvKey._9 || tvKey["9"], //14
_10: tvKey.KEY_10 || tvKey.N10 || tvKey._10 || tvKey["10"],
_11: tvKey.KEY_11 || tvKey.N11 || tvKey._11 || tvKey["11"],
_12: tvKey.KEY_12 || tvKey.N12 || tvKey._12 || tvKey["12"], //1057
RED: tvKey.KEY_RED || tvKey.RED, //Same code as SEPARATOR key (108).
GREEN: tvKey.KEY_GREEN || tvKey.GREEN, //Same code as CAPS_LOCK key (20).
YELLOW: tvKey.KEY_YELLOW || tvKey.YELLOW, //21
BLUE: tvKey.KEY_BLUE || tvKey.BLUE, //22
CYAN: tvKey.KEY_CYAN || tvKey.CYAN,
RW: tvKey.KEY_RW || tvKey.RW, //69 (same code as "E" key).
PAUSE: tvKey.KEY_PAUSE || tvKey.PAUSE, //74 (same code as "J" key).
FF: tvKey.KEY_FF || tvKey.FF, //72 (same code as "H" key).
FF_: tvKey.KEY_FF_ || tvKey.FF_, //1078
REWIND: tvKey.KEY_REWIND || tvKey.REWIND,
REWIND_: tvKey.KEY_REWIND_ || tvKey.REWIND_, //1080
PLAY: tvKey.KEY_PLAY || tvKey.PLAY, //71 (same code as "G" key).
STOP: tvKey.KEY_STOP || tvKey.STOP, //70 (same code as "F" key).
SEARCH: tvKey.KEY_SEARCH || tvKey.SEARCH,
UP: tvKey.KEY_UP || tvKey.UP, //29460.
DOWN: tvKey.KEY_DOWN || tvKey.DOWN, //29461
LEFT: tvKey.KEY_LEFT || tvKey.LEFT, //4
RIGHT: tvKey.KEY_RIGHT || tvKey.RIGHT, //5
CH_UP: tvKey.KEY_CH_UP || tvKey.CH_UP, //68 (same code as "D" key)
CH_DOWN: tvKey.KEY_CH_DOWN || tvKey.CH_DOWN, //65 (same code as "A" key)
DISC_MENU: tvKey.KEY_DISC_MENU || tvKey.DISC_MENU, //1086
_3D: tvKey.KEY_3D || tvKey._3D || tvKey["3D"], //1219
PIP_ONOFF: tvKey.KEY_PIP_ONOFF || tvKey.PIP_ONOFF, //1032
AD: tvKey.KEY_AD || tvKey.AD, //1039
PMODE: tvKey.KEY_PMODE || tvKey.PMODE, //1040
SMODE: tvKey.KEY_SMODE || tvKey.SMODE, //1043
SLEEP: tvKey.KEY_SLEEP || tvKey.SLEEP, //1097
D_AUDIO: tvKey.KEY_D_AUDIO || tvKey.D_AUDIO, //1236
D_FRONT_PLAY: tvKey.KEY_D_FRONT_PLAY || tvKey.D_FRONT_PLAY, //1243 (for BD)
D_VIEW_MODE: tvKey.KEY_D_VIEW_MODE || tvKey.D_VIEW_MODE, //1249
STEP: tvKey.KEY_STEP || tvKey.STEP, //1023 (REC PAUSE(BD))
CALLER_ID: tvKey.KEY_CALLER_ID || tvKey.CALLER_ID, //1128 (FULL SCREEN (BD))
ANTENNA: tvKey.KEY_ANTENA || tvKey.ANTENA || tvKey.KEY_ANTENNA || tvKey.ANTENNA, //1054 (for CN)
ZOOM_MOVE: tvKey.KEY_ZOOM_MOVE || tvKey.ZOOM_MOVE,
ZOOM1: tvKey.KEY_ZOOM1 || tvKey.ZOOM1, //1083
ZOOM2: tvKey.KEY_ZOOM2 || tvKey.ZOOM2,
ZOOM_IN: tvKey.KEY_ZOOM_IN || tvKey.ZOOM_IN,
ZOOM_OUT: tvKey.KEY_ZOOM_OUT || tvKey.ZOOM_OUT,
RETURN: tvKey.KEY_RETURN || tvKey.RETURN, //Same code as "X" key (88).
PANEL_RETURN: tvKey.KEY_PANEL_RETURN || tvKey.PANEL_RETURN,
ENTER: tvKey.KEY_ENTER || tvKey.ENTER, //29443
PANEL_ENTER: tvKey.KEY_PANEL_ENTER || tvKey.KEY_PANNEL_ENTER || tvKey.PANEL_ENTER || tvKey.PANNEL_ENTER, //309
PANEL_MENU: tvKey.KEY_PANEL_MENU || tvKey.KEY_PANNEL_MENU || tvKey.PANEL_MENU || tvKey.PANNEL_MENU, //613
ADDDEL: tvKey.KEY_ADDDEL || tvKey.ADDDEL,
PIP_SWAP: tvKey.KEY_PIP_SWAP || tvKey.PIP_SWAP,
PLUS100: tvKey.KEY_PLUS100 || tvKey.PLUS100,
CAPTION: tvKey.KEY_CAPTION || tvKey.CAPTION,
PICTURE_SIZE: tvKey.KEY_PICTURE_SIZE || tvKey.PICTURE_SIZE,
PIP_SIZE: tvKey.KEY_PIP_SIZE || tvKey.PIP_SIZE,
MAGIC_CHANNEL: tvKey.KEY_MAGIC_CHANNEL || tvKey.MAGIC_CHANNEL,
PIP_SCAN: tvKey.KEY_PIP_SCAN || tvKey.PIP_SCAN,
DEVICE_CONNECT: tvKey.KEY_DEVICE_CONNECT || tvKey.DEVICE_CONNECT,
HELP: tvKey.KEY_HELP || tvKey.HELP,
CONVERGENCE: tvKey.KEY_CONVERGENCE || tvKey.CONVERGENCE,
AUTO_PROGRAM: tvKey.KEY_AUTO_PROGRAM || tvKey.AUTO_PROGRAM,
FACTORY: tvKey.KEY_FACTORY || tvKey.FACTORY,
_3SPEED: tvKey.KEY_3SPEED || tvKey._3SPEED || tvKey["3SPEED"],
RSURF: tvKey.KEY_RSURF || tvKey.RSURF,
TOPMENU: tvKey.KEY_TOPMENU || tvKey.TOPMENU,
GAME: tvKey.KEY_GAME || tvKey.GAME,
QUICK_REPLAY: tvKey.KEY_QUICK_REPLAY || tvKey.QUICK_REPLAY,
STILL_PICTURE: tvKey.KEY_STILL_PICTURE || tvKey.STILL_PICTURE,
DTV: tvKey.KEY_DTV || tvKey.DTV,
INSTANT_REPLAY: tvKey.KEY_INSTANT_REPLAY || tvKey.INSTANT_REPLAY,
LINK: tvKey.KEY_LINK || tvKey.LINK,
ANGLE: tvKey.KEY_ANGLE || tvKey.ANGLE,
RESERVED1: tvKey.KEY_RESERVED1 || tvKey.RESERVED1,
RESERVED5: tvKey.KEY_RESERVED5 || tvKey.RESERVED5,
PROGRAM: tvKey.KEY_PROGRAM || tvKey.PROGRAM,
BOOKMARK: tvKey.KEY_BOOKMARK || tvKey.BOOKMARK,
PRINT: tvKey.KEY_PRINT || tvKey.PRINT,
CLEAR: tvKey.KEY_CLEAR || tvKey.CLEAR,
VCHIP: tvKey.KEY_VCHIP || tvKey.VCHIP,
REPEAT: tvKey.KEY_REPEAT || tvKey.REPEAT,
DOOR: tvKey.KEY_DOOR || tvKey.DOOR,
OPEN: tvKey.KEY_OPEN || tvKey.OPEN,
TURBO: tvKey.KEY_TURBO || tvKey.TURBO,
DVR_MENU: tvKey.KEY_DVR_MENU || tvKey.DVR_MENU,
TTX_SUBFACE: tvKey.KEY_TTX_SUBFACE || tvKey.TTX_SUBFACE,
CH_LIST: tvKey.KEY_CH_LIST || tvKey.CH_LIST,
DNIe: tvKey.KEY_DNIe || tvKey.KEY_DNIE || tvKey.DNIe || tvKey.DNIE,
DNSe: tvKey.KEY_DNSe || tvKey.KEY_DNSE || tvKey.DNSe || tvKey.DNSE,
SRS: tvKey.KEY_SRS || tvKey.SRS,
CONVERT_AUDIO_MAINSUB: tvKey.KEY_CONVERT_AUDIO_MAINSUB || tvKey.CONVERT_AUDIO_MAINSUB,
MDC: tvKey.KEY_MDC || tvKey.MDC,
SEFFECT: tvKey.KEY_SEFFECT || tvKey.SEFFECT,
DVR: tvKey.KEY_DVR || tvKey.DVR,
DTV_SIGNAL: tvKey.KEY_DTV_SIGNAL || tvKey.DTV_SIGNAL,
LIVE: tvKey.KEY_LIVE || tvKey.LIVE,
PERPECT_FOCUS: tvKey.KEY_PERPECT_FOCUS || tvKey.PERPECT_FOCUS,
HOME: tvKey.KEY_HOME || tvKey.HOME,
ESAVING: tvKey.KEY_ESAVING || tvKey.ESAVING,
CONTENTS: tvKey.KEY_CONTENTS || tvKey.CONTENTS,
SCALE: tvKey.KEY_SCALE || tvKey.SCALE,
CLOCK_DISPLAY: tvKey.KEY_CLOCK_DISPLAY || tvKey.CLOCK_DISPLAY,
SETUP_CLOCK_TIMER: tvKey.KEY_SETUP_CLOCK_TIMER || tvKey.SETUP_CLOCK_TIMER,
MAGIC_BRIGHT: tvKey.KEY_MAGIC_BRIGHT || tvKey.MAGIC_BRIGHT,
FM_RADIO: tvKey.KEY_FM_RADIO || tvKey.FM_RADIO,
VCR_MODE: tvKey.KEY_VCR_MODE || tvKey.VCR_MODE,
CATV_MODE: tvKey.KEY_CATV_MODE || tvKey.CATV_MODE,
DSS_MODE: tvKey.KEY_DSS_MODE || tvKey.DSS_MODE,
DVD_MODE: tvKey.KEY_DVD_MODE || tvKey.DVD_MODE,
STB_MODE: tvKey.KEY_STB_MODE || tvKey.STB_MODE,
PCMODE: tvKey.KEY_PCMODE || tvKey.PCMODE,
TV_MODE: tvKey.KEY_TV_MODE || tvKey.TV_MODE,
TV: tvKey.KEY_TV || tvKey.TV, //77
AV1: tvKey.KEY_AV1 || tvKey.AV1,
AV2: tvKey.KEY_AV2 || tvKey.AV2,
AV3: tvKey.KEY_AV3 || tvKey.AV3,
SVIDEO1: tvKey.KEY_SVIDEO1 || tvKey.SVIDEO1,
SVIDEO2: tvKey.KEY_SVIDEO2 || tvKey.SVIDEO2,
SVIDEO3: tvKey.KEY_SVIDEO3 || tvKey.SVIDEO3,
COMPONENT1: tvKey.KEY_COMPONENT1 || tvKey.COMPONENT1,
COMPONENT2: tvKey.KEY_COMPONENT2 || tvKey.COMPONENT2,
DVI: tvKey.KEY_DVI || tvKey.DVI,
HDMI: tvKey.KEY_HDMI || tvKey.HDMI,
HDMI1: tvKey.KEY_HDMI1 || tvKey.HDMI1,
HDMI2: tvKey.KEY_HDMI2 || tvKey.HDMI2,
HDMI3: tvKey.KEY_HDMI3 || tvKey.HDMI3,
HDMI4: tvKey.KEY_HDMI4 || tvKey.HDMI4,
DTV_LINK: tvKey.KEY_DTV_LINK || tvKey.DTV_LINK,
APP_LIST: tvKey.KEY_APP_LIST || tvKey.APP_LIST,
BACK_MHP: tvKey.KEY_BACK_MHP || tvKey.BACK_MHP,
ALT_MHP: tvKey.KEY_ALT_MHP || tvKey.ALT_MHP,
RSS: tvKey.KEY_RSS || tvKey.RSS,
ENTERTAINMENT: tvKey.KEY_ENTERTAINMENT || tvKey.ENTERTAINMENT,
ID_INPUT: tvKey.KEY_ID_INPUT || tvKey.ID_INPUT,
ID_SETUP: tvKey.KEY_ID_SETUP || tvKey.ID_SETUP,
ANYNET: tvKey.KEY_ANYNET || tvKey.ANYNET,
ANYVIEW: tvKey.KEY_ANYVIEW || tvKey.ANYVIEW,
MS: tvKey.KEY_MS || tvKey.MS,
MORE: tvKey.KEY_MORE || tvKey.MORE,
_4_3: tvKey.KEY_4_3 || tvKey._4_3 || tvKey["4_3"],
_16_9: tvKey.KEY_16_9 || tvKey._16_9 || tvKey["16_9"],
PANORAMA: tvKey.KEY_PANORAMA || tvKey.PANORAMA,
DYNAMIC: tvKey.KEY_DYNAMIC || tvKey.DYNAMIC,
STANDARD: tvKey.KEY_STANDARD || tvKey.STANDARD,
MOVIE1: tvKey.KEY_MOVIE1 || tvKey.MOVIE1,
CUSTOM: tvKey.KEY_CUSTOM || tvKey.CUSTOM,
AUTO_ARC_RESET: tvKey.KEY_AUTO_ARC_RESET || tvKey.AUTO_ARC_RESET,
AUTO_ARC_LNA_ON: tvKey.KEY_AUTO_ARC_LNA_ON || tvKey.AUTO_ARC_LNA_ON,
AUTO_ARC_LNA_OFF: tvKey.KEY_AUTO_ARC_LNA_OFF || tvKey.AUTO_ARC_LNA_OFF,
AUTO_ARC_ANYNET_MODE_OK: tvKey.KEY_AUTO_ARC_ANYNET_MODE_OK || tvKey.AUTO_ARC_ANYNET_MODE_OK,
AUTO_ARC_ANYNET_AUTO_START: tvKey.KEY_AUTO_ARC_ANYNET_AUTO_START || tvKey.AUTO_ARC_ANYNET_AUTO_START,
AUTO_ARC_CAPTION_ON: tvKey.KEY_AUTO_ARC_CAPTION_ON || tvKey.AUTO_ARC_CAPTION_ON,
AUTO_ARC_CAPTION_OFF: tvKey.KEY_AUTO_ARC_CAPTION_OFF || tvKey.AUTO_ARC_CAPTION_OFF,
AUTO_ARC_PIP_DOUBLE: tvKey.KEY_AUTO_ARC_PIP_DOUBLE || tvKey.AUTO_ARC_PIP_DOUBLE,
AUTO_ARC_PIP_LARGE: tvKey.KEY_AUTO_ARC_PIP_LARGE || tvKey.AUTO_ARC_PIP_LARGE,
AUTO_ARC_PIP_SMALL: tvKey.KEY_AUTO_ARC_PIP_SMALL || tvKey.AUTO_ARC_PIP_SMALL,
AUTO_ARC_PIP_WIDE: tvKey.KEY_AUTO_ARC_PIP_WIDE || tvKey.AUTO_ARC_PIP_WIDE,
AUTO_ARC_PIP_LEFT_TOP: tvKey.KEY_AUTO_ARC_PIP_LEFT_TOP || tvKey.AUTO_ARC_PIP_LEFT_TOP,
AUTO_ARC_PIP_RIGHT_TOP: tvKey.KEY_AUTO_ARC_PIP_RIGHT_TOP || tvKey.AUTO_ARC_PIP_RIGHT_TOP,
AUTO_ARC_PIP_LEFT_BOTTOM: tvKey.KEY_AUTO_ARC_PIP_LEFT_BOTTOM || tvKey.AUTO_ARC_PIP_LEFT_BOTTOM,
AUTO_ARC_PIP_RIGHT_BOTTOM: tvKey.KEY_AUTO_ARC_PIP_RIGHT_BOTTOM || tvKey.AUTO_ARC_PIP_RIGHT_BOTTOM,
AUTO_ARC_PIP_CH_CHANGE: tvKey.KEY_AUTO_ARC_PIP_CH_CHANGE || tvKey.AUTO_ARC_PIP_CH_CHANGE,
AUTO_ARC_PIP_SOURCE_CHANGE: tvKey.KEY_AUTO_ARC_PIP_SOURCE_CHANGE || tvKey.AUTO_ARC_PIP_SOURCE_CHANGE,
AUTO_ARC_AUTOCOLOR_SUCCESS: tvKey.KEY_AUTO_ARC_AUTOCOLOR_SUCCESS || tvKey.AUTO_ARC_AUTOCOLOR_SUCCESS,
AUTO_ARC_AUTOCOLOR_FAIL: tvKey.KEY_AUTO_ARC_AUTOCOLOR_FAIL || tvKey.AUTO_ARC_AUTOCOLOR_FAIL,
AUTO_ARC_C_FORCE_AGING: tvKey.KEY_AUTO_ARC_C_FORCE_AGING || tvKey.AUTO_ARC_C_FORCE_AGING,
AUTO_ARC_USBJACK_INSPECT: tvKey.KEY_AUTO_ARC_USBJACK_INSPECT || tvKey.AUTO_ARC_USBJACK_INSPECT,
AUTO_ARC_JACK_IDENT: tvKey.KEY_AUTO_ARC_JACK_IDENT || tvKey.AUTO_ARC_JACK_IDENT,
AUTO_ARC_CAPTION_KOR: tvKey.KEY_AUTO_ARC_CAPTION_KOR || tvKey.AUTO_ARC_CAPTION_KOR,
AUTO_ARC_CAPTION_ENG: tvKey.KEY_AUTO_ARC_CAPTION_ENG || tvKey.AUTO_ARC_CAPTION_ENG,
AUTO_ARC_ANTENNA_AIR: tvKey.KEY_AUTO_ARC_ANTENNA_AIR || tvKey.AUTO_ARC_ANTENNA_AIR,
AUTO_ARC_ANTENNA_CABLE: tvKey.KEY_AUTO_ARC_ANTENNA_CABLE || tvKey.AUTO_ARC_ANTENNA_CABLE,
AUTO_ARC_ANTENNA_SATELLITE: tvKey.KEY_AUTO_ARC_ANTENNA_SATELLITE || tvKey.AUTO_ARC_ANTENNA_SATELLITE,
AUTO_FORMAT: tvKey.KEY_AUTO_FORMAT || tvKey.AUTO_FORMAT,
DNET: tvKey.KEY_DNET || tvKey.DNET,
NINE_SEPARATE: tvKey.KEY_NINE_SEPERATE || tvKey.NINE_SEPERATE || tvKey.KEY_NINE_SEPARATE || tvKey.NINE_SEPARATE,
MIC: tvKey.KEY_MIC || tvKey.MIC,
EXT1: tvKey.KEY_EXT1 || tvKey.EXT1,
EXT2: tvKey.KEY_EXT2 || tvKey.EXT2,
EXT3: tvKey.KEY_EXT3 || tvKey.EXT3,
EXT4: tvKey.KEY_EXT4 || tvKey.EXT4,
EXT5: tvKey.KEY_EXT5 || tvKey.EXT5,
EXT6: tvKey.KEY_EXT6 || tvKey.EXT6,
EXT7: tvKey.KEY_EXT7 || tvKey.EXT7,
EXT8: tvKey.KEY_EXT8 || tvKey.EXT8,
EXT9: tvKey.KEY_EXT9 || tvKey.EXT9,
EXT10: tvKey.KEY_EXT10 || tvKey.EXT10,
EXT11: tvKey.KEY_EXT11 || tvKey.EXT11,
EXT12: tvKey.KEY_EXT12 || tvKey.EXT12,
EXT13: tvKey.KEY_EXT13 || tvKey.EXT13,
EXT14: tvKey.KEY_EXT14 || tvKey.EXT14,
EXT15: tvKey.KEY_EXT15 || tvKey.EXT15,
EXT16: tvKey.KEY_EXT16 || tvKey.EXT16,
EXT17: tvKey.KEY_EXT17 || tvKey.EXT17,
EXT18: tvKey.KEY_EXT18 || tvKey.EXT18,
EXT19: tvKey.KEY_EXT19 || tvKey.EXT19,
EXT20: tvKey.KEY_EXT20 || tvKey.EXT20,
EXT21: tvKey.KEY_EXT21 || tvKey.EXT21,
EXT22: tvKey.KEY_EXT22 || tvKey.EXT22,
EXT23: tvKey.KEY_EXT23 || tvKey.EXT23,
EXT24: tvKey.KEY_EXT24 || tv