Talk:Development: A proposal for a common IR keycode definition map

From LinuxTVWiki
Jump to: navigation, search

Page renaming

Mauro, can you pls move this page to some more understandable name? Something like "IR Keycode map proposal" or similar?

The current naming "proposal" is far from beeing a unique name and can be something complete different.

--wirbel 12:07, 29 August 2009 (UTC)

done --CityK 22:56, 29 August 2009 (UTC)
thanks --wirbel 08:29, 30 August 2009 (UTC)

Duplicate work

What is the purpose of this page? For instance, CEA-2014 (CE-HTML) Annex F defines a large number of device keys required by TV-based media players, STBs and the like - including media keys, colour keys (all 6), teletext, subtitles, audio adjustments and so on. CEA-2014 is referenced by the OIPF, HbbTV and DLNA standards among others.

I'm not certain if Mauro and others partaking in the discussion on the mailing list are even aware of this existing standands document. Best to bring this up on the m/l --CityK 03:56, 7 September 2009 (UTC)
I just spoke to Mauro on irc, and he does not have a copy of the CEA-2014 specs ... in addition, it doesn't appear that they can be obtained freely (if you have a copy which you can provide, please, by all means email Mauro). He also expressed doubt regarding whether that document would have much bearing upon the way the Linux event subsystem should handle each key --CityK 16:55, 7 September 2009 (UTC)
From CEA-2014-A - CE-HTML Annex F:
This Annex gives an overview of the key codes that SHALL be used for “keydown” and
“keyup”-type events. This Annex is normative and is based on Section 5.3.1.2.8.1 of
Advanced Television Systems Committee,
DTV Application Software Environment Level 1 (DASE-1) Part 2, A/100-2, 9 March 2003,
[http://www.atsc.org/standards/a100.html]
 const Number VK_UNDEFINED = 0;
 const Number VK_CANCEL = 3;
 const Number VK_BACK_SPACE = 8;
 const Number VK_TAB = 9;
 const Number VK_CLEAR = 12;
 const Number VK_ENTER = 13;
 const Number VK_SHIFT = 16;
 const Number VK_CONTROL = 17;
 const Number VK_ALT = 18;
 const Number VK_PAUSE = 19;
 const Number VK_CAPS_LOCK = 20;
 const Number VK_KANA = 21;
 const Number VK_FINAL = 24;
 const Number VK_KANJI = 25;
 const Number VK_ESCAPE = 27;
 const Number VK_CONVERT = 28;
 const Number VK_NONCONVERT = 29;
 const Number VK_ACCEPT = 30;
 const Number VK_MODECHANGE = 31;
 const Number VK_SPACE = 32;
 const Number VK_PAGE_UP = 33;
 const Number VK_PAGE_DOWN = 34;
 const Number VK_END = 35;
 const Number VK_HOME = 36;
 const Number VK_LEFT = 37;
 const Number VK_UP = 38;
 const Number VK_RIGHT = 39;
 const Number VK_DOWN = 40;
 const Number VK_COMMA = 44;
 const Number VK_PERIOD = 46;
 const Number VK_SLASH = 47;
 const Number VK_0 = 48;
 const Number VK_1 = 49;
 const Number VK_2 = 50;
 const Number VK_3 = 51;
 const Number VK_4 = 52;
 const Number VK_5 = 53;
 const Number VK_6 = 54;
 const Number VK_7 = 55;
 const Number VK_8 = 56;
 const Number VK_9 = 57;
 const Number VK_SEMICOLON = 59;
 const Number VK_EQUALS = 61;
 const Number VK_A = 65;
 const Number VK_B = 66;
 const Number VK_C = 67;
 const Number VK_D = 68;
 const Number VK_E = 69;
 const Number VK_F = 70;
 const Number VK_G = 71;
 const Number VK_H = 72;
 const Number VK_I = 73;
 const Number VK_J = 74;
 const Number VK_K = 75;
 const Number VK_L = 76;
 const Number VK_M = 77;
 const Number VK_N = 78;
 const Number VK_O = 79;
 const Number VK_P = 80;
 const Number VK_Q = 81;
 const Number VK_R = 82;
 const Number VK_S = 83;
 const Number VK_T = 84;
 const Number VK_U = 85;
 const Number VK_V = 86;
 const Number VK_W = 87;
 const Number VK_X = 88;
 const Number VK_Y = 89;
 const Number VK_Z = 90;
 const Number VK_OPEN_BRACKET = 91;
 const Number VK_BACK_SLASH = 92;
 const Number VK_CLOSE_BRACKET = 93;
 const Number VK_NUMPAD0 = 96;
 const Number VK_NUMPAD1 = 97;
 const Number VK_NUMPAD2 = 98;
 const Number VK_NUMPAD3 = 99;
 const Number VK_NUMPAD4 = 100;
 const Number VK_NUMPAD5 = 101;
 const Number VK_NUMPAD6 = 102;
 const Number VK_NUMPAD7 = 103;
 const Number VK_NUMPAD8 = 104;
 const Number VK_NUMPAD9 = 105;
 const Number VK_MULTIPLY = 106;
 const Number VK_ADD = 107;
 const Number VK_SEPARATER = 108;
 const Number VK_SUBTRACT = 109;
 const Number VK_DECIMAL = 110;
 const Number VK_DIVIDE = 111;
 const Number VK_F1 = 112;
 const Number VK_F2 = 113;
 const Number VK_F3 = 114;
 const Number VK_F4 = 115;
 const Number VK_F5 = 116;
 const Number VK_F6 = 117;
 const Number VK_F7 = 118;
 const Number VK_F8 = 119;
 const Number VK_F9 = 120;
 const Number VK_F10 = 121;
 const Number VK_F11 = 122;
 const Number VK_F12 = 123;
 const Number VK_DELETE = 127;
 const Number VK_NUM_LOCK = 144;
 const Number VK_SCROLL_LOCK = 145;
 const Number VK_PRINTSCREEN = 154;
 const Number VK_INSERT = 155;
 const Number VK_HELP = 156;
 const Number VK_META = 157;
 const Number VK_BACK_QUOTE = 192;
 const Number VK_QUOTE = 222;
 const Number VK_RED = 403;
 const Number VK_GREEN = 404;
 const Number VK_YELLOW = 405;
 const Number VK_BLUE = 406;
 const Number VK_GREY = 407;
 const Number VK_BROWN = 408;
 const Number VK_POWER = 409;
 const Number VK_DIMMER = 410;
 const Number VK_WINK = 411;
 const Number VK_REWIND = 412;
 const Number VK_STOP = 413; // media stop
 const Number VK_EJECT_TOGGLE = 414;
 const Number VK_PLAY = 415;
 const Number VK_RECORD = 416;
 const Number VK_FAST_FWD = 417;
 const Number VK_PLAY_SPEED_UP = 418;
 const Number VK_PLAY_SPEED_DOWN = 419;
 const Number VK_PLAY_SPEED_RESET = 420;
 const Number VK_RECORD_SPEED_NEXT = 421;
 const Number VK_GO_TO_START = 422;
 const Number VK_GO_TO_END = 423;
 const Number VK_PREV = 424; // media previous
 const Number VK_NEXT = 425; // media next
 const Number VK_RANDOM_TOGGLE = 426; // shuffle on/off
 const Number VK_CHANNEL_UP = 427;
 const Number VK_CHANNEL_DOWN = 428;
 const Number VK_STORE_FAVORITE_0 = 429;
 const Number VK_STORE_FAVORITE_1 = 430;
 const Number VK_STORE_FAVORITE_2 = 431;
 const Number VK_STORE_FAVORITE_3 = 432;
 const Number VK_RECALL_FAVORITE_0 = 433;
 const Number VK_RECALL_FAVORITE_1 = 434;
 const Number VK_RECALL_FAVORITE_2 = 435;
 const Number VK_RECALL_FAVORITE_3 = 436;
 const Number VK_CLEAR_FAVORITE_0 = 437;
 const Number VK_CLEAR_FAVORITE_1 = 438;
 const Number VK_CLEAR_FAVORITE_2 = 439;
 const Number VK_CLEAR_FAVORITE_3 = 440;
 const Number VK_SCAN_CHANNELS_TOGGLE = 441;
 const Number VK_PINP_TOGGLE = 442;
 const Number VK_SPLIT_SCREEN_TOGGLE = 443;
 const Number VK_DISPLAY_SWAP = 444;
 const Number VK_SCREEN_MODE_NEXT = 445;
 const Number VK_VIDEO_MODE_NEXT = 446;
 const Number VK_VOLUME_UP = 447;
 const Number VK_VOLUME_DOWN = 448;
 const Number VK_MUTE = 449;
 const Number VK_SURROUND_MODE_NEXT = 450;
 const Number VK_BALANCE_RIGHT = 451;
 const Number VK_BALANCE_LEFT = 452;
 const Number VK_FADER_FRONT = 453;
 const Number VK_FADER_REAR = 454;
 const Number VK_BASS_BOOST_UP = 455;
 const Number VK_BASS_BOOST_DOWN = 456;
 const Number VK_INFO = 457;
 const Number VK_GUIDE = 458;
 const Number VK_TELETEXT = 459;
 const Number VK_SUBTITLE = 460;
 const Number VK_BACK = 461;
 const Number VK_MENU = 462;

Additional keys which vendors commonly define which aren't currently in CEHTML:

const Number VENDOR_VK_DEVICE_SLEEP = VENDOR + 195; // sleep timer
const Number VENDOR_VK_DEVICE_EXIT = VENDOR + 158;
const Number VENDOR_VK_DEVICE_LIVE_TV = VENDOR + 157;
const Number VENDOR_VK_DEVICE_PHONE = VENDOR + 189;
const Number VENDOR_VK_DEVICE_VOD = VENDOR + 182;
const Number VENDOR_VK_DEVICE_DVR = VENDOR + 181;
const Number VENDOR_VK_DEVICE_SETUP = VENDOR + 184; // bring up user settings menu
const Number VENDOR_VK_DEVICE_KEYBOARD =  = VENDOR + 31; // bring up IME, On-screen keyboard or toggle IME/OSK modes
const Number VENDOR_VK_BROWSER_PREVIOUS = VENDOR + 769;
const Number VENDOR_VK_BROWSER_NEXT = VENDOR + 768;
const Number VENDOR_VK_BROWSER_STOP = VENDOR + 773; // stop loading the current page
const Number VENDOR_VK_BROWSER_RELOAD = VENDOR + 772; // relaod current page
const Number VENDOR_VK_BROWSER_SEARCH = VENDOR + 170;
const Number VENDOR_VK_BROWSER_HOME = VENDOR + 771;
const Number VENDOR_VK_BROWSER_URL = VENDOR + 770; // move keyboard focus to url input field, possibly showing the browser or toolbar in the process if not currently shown
const Number VENDOR_VK_BROWSER_TOOLBAR = VENDOR + 774; // show/hide browser toolbar
const Number VENDOR_VK_MEDIA_PLAY_PAUSE_TOGGLE = VENDOR + 402; // single key/button that toggles between play 1x speed and pause
const Number VENDOR_VK_SUPER_LEFT = VENDOR + 94; // left windows key
const Number VENDOR_VK_SUPER_RIGHT = VENDOR + 95; // right windows key