Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Keyboard

Classes

class  CInputManager
 Main input processing class. More...
 
class  KODI::KEYBOARD::CKeyboardInputHandling
 Class to translate input from Kodi keycodes to key names defined by the keyboard's controller profile. More...
 
class  KODI::KEYBOARD::IKeyboardDriverHandler
 Interface for handling keyboard events. More...
 
class  KODI::KEYBOARD::IKeyboardInputHandler
 Interface for handling input events for keyboards. More...
 
class  KODI::KEYBOARD::IKeyboardInputProvider
 Interface for classes that can provide keyboard input. More...
 
class  CKey
 
class  KODI::KEYBOARD::CKeyboardEasterEgg
 Hush!!! More...
 
class  KODI::KEYBOARD::CKeyboardLayout
 
class  KODI::KEYBOARD::CKeyboardLayoutManager
 
class  KODI::KEYBOARD::CKeyboardStat
 
struct  XBMC_keysym
 
struct  KODI::KEYBOARD::XBMCKEYTABLE
 

Typedefs

using KODI::KEYBOARD::KeyboardLayouts = std::map<std::string, CKeyboardLayout>
 
enum  XBMCKey {
  XBMCK_UNKNOWN = 0x00 , XBMCK_FIRST = 0x00 , XBMCK_CTRLF = 0x06 , XBMCK_BACKSPACE = 0x08 ,
  XBMCK_TAB = 0x09 , XBMCK_CLEAR = 0x0C , XBMCK_RETURN = 0x0D , XBMCK_PAUSE = 0x13 ,
  XBMCK_ESCAPE = 0x1B , XBMCK_SPACE = 0x20 , XBMCK_EXCLAIM = 0x21 , XBMCK_QUOTEDBL = 0x22 ,
  XBMCK_HASH = 0x23 , XBMCK_DOLLAR = 0x24 , XBMCK_PERCENT = 0x25 , XBMCK_AMPERSAND = 0x26 ,
  XBMCK_QUOTE = 0x27 , XBMCK_LEFTPAREN = 0x28 , XBMCK_RIGHTPAREN = 0x29 , XBMCK_ASTERISK = 0x2A ,
  XBMCK_PLUS = 0x2B , XBMCK_COMMA = 0x2C , XBMCK_MINUS = 0x2D , XBMCK_PERIOD = 0x2E ,
  XBMCK_SLASH = 0x2F , XBMCK_0 = 0x30 , XBMCK_1 = 0x31 , XBMCK_2 = 0x32 ,
  XBMCK_3 = 0x33 , XBMCK_4 = 0x34 , XBMCK_5 = 0x35 , XBMCK_6 = 0x36 ,
  XBMCK_7 = 0x37 , XBMCK_8 = 0x38 , XBMCK_9 = 0x39 , XBMCK_COLON = 0x3A ,
  XBMCK_SEMICOLON = 0x3B , XBMCK_LESS = 0x3C , XBMCK_EQUALS = 0x3D , XBMCK_GREATER = 0x3E ,
  XBMCK_QUESTION = 0x3F , XBMCK_AT = 0x40 , XBMCK_LEFTBRACKET = 0x5B , XBMCK_BACKSLASH = 0x5C ,
  XBMCK_RIGHTBRACKET = 0x5D , XBMCK_CARET = 0x5E , XBMCK_UNDERSCORE = 0x5F , XBMCK_BACKQUOTE = 0x60 ,
  XBMCK_a = 0x61 , XBMCK_b = 0x62 , XBMCK_c = 0x63 , XBMCK_d = 0x64 ,
  XBMCK_e = 0x65 , XBMCK_f = 0x66 , XBMCK_g = 0x67 , XBMCK_h = 0x68 ,
  XBMCK_i = 0x69 , XBMCK_j = 0x6A , XBMCK_k = 0x6B , XBMCK_l = 0x6C ,
  XBMCK_m = 0x6D , XBMCK_n = 0x6E , XBMCK_o = 0x6F , XBMCK_p = 0x70 ,
  XBMCK_q = 0x71 , XBMCK_r = 0x72 , XBMCK_s = 0x73 , XBMCK_t = 0x74 ,
  XBMCK_u = 0x75 , XBMCK_v = 0x76 , XBMCK_w = 0x77 , XBMCK_x = 0x78 ,
  XBMCK_y = 0x79 , XBMCK_z = 0x7A , XBMCK_LEFTBRACE = 0x7b , XBMCK_PIPE = 0x7C ,
  XBMCK_RIGHTBRACE = 0x7D , XBMCK_TILDE = 0x7E , XBMCK_DELETE = 0x7F , XBMCK_BROWSER_BACK = 0xA6 ,
  XBMCK_BROWSER_FORWARD = 0xA7 , XBMCK_BROWSER_REFRESH = 0xA8 , XBMCK_BROWSER_STOP = 0xA9 , XBMCK_BROWSER_SEARCH = 0xAA ,
  XBMCK_BROWSER_FAVORITES = 0xAB , XBMCK_BROWSER_HOME = 0xAC , XBMCK_VOLUME_MUTE = 0xAD , XBMCK_VOLUME_DOWN = 0xAE ,
  XBMCK_VOLUME_UP = 0xAF , XBMCK_MEDIA_NEXT_TRACK = 0xB0 , XBMCK_MEDIA_PREV_TRACK = 0xB1 , XBMCK_MEDIA_STOP = 0xB2 ,
  XBMCK_MEDIA_PLAY_PAUSE = 0xB3 , XBMCK_LAUNCH_MAIL = 0xB4 , XBMCK_LAUNCH_MEDIA_SELECT = 0xB5 , XBMCK_LAUNCH_APP1 = 0xB6 ,
  XBMCK_LAUNCH_APP2 = 0xB7 , XBMCK_LAUNCH_FILE_BROWSER = 0xB8 , XBMCK_LAUNCH_MEDIA_CENTER = 0xB9 , XBMCK_MEDIA_REWIND = 0xBA ,
  XBMCK_MEDIA_FASTFORWARD = 0xBB , XBMCK_OEM_102 = 0xE2 , XBMCK_KP0 = 0x100 , XBMCK_KP1 = 0x101 ,
  XBMCK_KP2 = 0x102 , XBMCK_KP3 = 0x103 , XBMCK_KP4 = 0x104 , XBMCK_KP5 = 0x105 ,
  XBMCK_KP6 = 0x106 , XBMCK_KP7 = 0x107 , XBMCK_KP8 = 0x108 , XBMCK_KP9 = 0x109 ,
  XBMCK_KP_PERIOD = 0x10A , XBMCK_KP_DIVIDE = 0x10B , XBMCK_KP_MULTIPLY = 0x10C , XBMCK_KP_MINUS = 0x10D ,
  XBMCK_KP_PLUS = 0x10E , XBMCK_KP_ENTER = 0x10F , XBMCK_KP_EQUALS = 0x110 , XBMCK_UP = 0x111 ,
  XBMCK_DOWN = 0x112 , XBMCK_RIGHT = 0x113 , XBMCK_LEFT = 0x114 , XBMCK_INSERT = 0x115 ,
  XBMCK_HOME = 0x116 , XBMCK_END = 0x117 , XBMCK_PAGEUP = 0x118 , XBMCK_PAGEDOWN = 0x119 ,
  XBMCK_F1 = 0x11A , XBMCK_F2 = 0x11B , XBMCK_F3 = 0x11C , XBMCK_F4 = 0x11D ,
  XBMCK_F5 = 0x11E , XBMCK_F6 = 0x11F , XBMCK_F7 = 0x120 , XBMCK_F8 = 0x121 ,
  XBMCK_F9 = 0x122 , XBMCK_F10 = 0x123 , XBMCK_F11 = 0x124 , XBMCK_F12 = 0x125 ,
  XBMCK_F13 = 0x126 , XBMCK_F14 = 0x127 , XBMCK_F15 = 0x128 , XBMCK_NUMLOCK = 0x12C ,
  XBMCK_CAPSLOCK = 0x12D , XBMCK_SCROLLOCK = 0x12E , XBMCK_RSHIFT = 0x12F , XBMCK_LSHIFT = 0x130 ,
  XBMCK_RCTRL = 0x131 , XBMCK_LCTRL = 0x132 , XBMCK_RALT = 0x133 , XBMCK_LALT = 0x134 ,
  XBMCK_RMETA = 0x135 , XBMCK_LMETA = 0x136 , XBMCK_LSUPER = 0x137 , XBMCK_RSUPER = 0x138 ,
  XBMCK_MODE = 0x139 , XBMCK_COMPOSE = 0x13A , XBMCK_HELP = 0x13B , XBMCK_PRINT = 0x13C ,
  XBMCK_SYSREQ = 0x13D , XBMCK_BREAK = 0x13E , XBMCK_MENU = 0x13F , XBMCK_POWER = 0x140 ,
  XBMCK_EURO = 0x141 , XBMCK_UNDO = 0x142 , XBMCK_SLEEP = 0x143 , XBMCK_GUIDE = 0x144 ,
  XBMCK_SETTINGS = 0x145 , XBMCK_INFO = 0x146 , XBMCK_RED = 0x147 , XBMCK_GREEN = 0x148 ,
  XBMCK_YELLOW = 0x149 , XBMCK_BLUE = 0x14a , XBMCK_ZOOM = 0x14b , XBMCK_TEXT = 0x14c ,
  XBMCK_FAVORITES = 0x14d , XBMCK_HOMEPAGE = 0x14e , XBMCK_CONFIG = 0x14f , XBMCK_EPG = 0x150 ,
  XBMCK_GRAVE = 0x0060 , XBMCK_ACUTE = 0x00B4 , XBMCK_CIRCUMFLEX = 0x005E , XBMCK_PERISPOMENI = 0x1FC0 ,
  XBMCK_MACRON = 0x00AF , XBMCK_BREVE = 0x02D8 , XBMCK_ABOVEDOT = 0x02D9 , XBMCK_DIAERESIS = 0x00A8 ,
  XBMCK_ABOVERING = 0x02DA , XBMCK_DOUBLEACUTE = 0x030B , XBMCK_CARON = 0x030C , XBMCK_CEDILLA = 0x0327 ,
  XBMCK_OGONEK = 0x0328 , XBMCK_IOTA = 0x0345 , XBMCK_VOICESOUND = 0x3099 , XBMCK_SEMIVOICESOUND = 0x309A ,
  XBMCK_BELOWDOT = 0x0323 , XBMCK_HOOK = 0x0309 , XBMCK_HORN = 0x031B , XBMCK_STROKE = 0x0335 ,
  XBMCK_ABOVECOMMA = 0x0313 , XBMCK_ABOVEREVERSEDCOMMA = 0x0314 , XBMCK_DOUBLEGRAVE = 0x30F , XBMCK_BELOWRING = 0x325 ,
  XBMCK_BELOWMACRON = 0x331 , XBMCK_BELOWCIRCUMFLEX = 0x32D , XBMCK_BELOWTILDE = 0x330 , XBMCK_BELOWBREVE = 0x32e ,
  XBMCK_BELOWDIAERESIS = 0x324 , XBMCK_INVERTEDBREVE = 0x32f , XBMCK_BELOWCOMMA = 0x326 , XBMCK_LOWLINE = 0x332 ,
  XBMCK_ABOVEVERTICALLINE = 0x30D , XBMCK_BELOWVERTICALLINE = 0x329 , XBMCK_LONGSOLIDUSOVERLAY = 0x338 , XBMCK_DEAD_A = 0x363 ,
  XBMCK_DEAD_E = 0x364 , XBMCK_DEAD_I = 0x365 , XBMCK_DEAD_O = 0x366 , XBMCK_DEAD_U = 0x367 ,
  XBMCK_SCHWA = 0x1DEA , XBMCK_STOP = 337 , XBMCK_RECORD = 338 , XBMCK_REWIND = 339 ,
  XBMCK_PHONE = 340 , XBMCK_PLAY = 341 , XBMCK_SHUFFLE = 342 , XBMCK_FASTFORWARD = 343 ,
  XBMCK_EJECT = 344 , XBMCK_XKB_KP_HOME = 0xFF95 , XBMCK_XKB_KP_LEFT = 0xFF96 , XBMCK_XKB_KP_UP = 0xFF97 ,
  XBMCK_XKB_KP_RIGHT = 0xFF98 , XBMCK_XKB_KP_DOWN = 0xFF99 , XBMCK_XKB_KP_PAGE_UP = 0xFF9A , XBMCK_XKB_KP_PAGE_DOWN = 0xFF9B ,
  XBMCK_XKB_KP_END = 0xFF9C , XBMCK_XKB_KP_BEGIN = 0xFF9D , XBMCK_XKB_KP_INSERT = 0xFF9E , XBMCK_XKB_KP_DELETE = 0xFF9F ,
  XBMCK_XKB_KP_DECIMAL = 0xFFAE , XBMCK_XKB_KP0 = 0xFFB0 , XBMCK_XKB_KP1 = 0xFFB1 , XBMCK_XKB_KP2 = 0xFFB2 ,
  XBMCK_XKB_KP3 = 0xFFB3 , XBMCK_XKB_KP4 = 0xFFB4 , XBMCK_XKB_KP5 = 0xFFB5 , XBMCK_XKB_KP6 = 0xFFB6 ,
  XBMCK_XKB_KP7 = 0xFFB7 , XBMCK_XKB_KP8 = 0xFFB8 , XBMCK_XKB_KP9 = 0xFFB9 , XBMCK_XKB_KP_SPACE = 0xFF80 ,
  XBMCK_XKB_KP_TAB = 0xFF89 , XBMCK_XKB_KP_ENTER = 0xFF8D , XBMCK_XKB_KP_F1 = 0xFF91 , XBMCK_XKB_KP_F2 = 0xFF92 ,
  XBMCK_XKB_KP_F3 = 0xFF93 , XBMCK_XKB_KP_F4 = 0xFF94 , XBMCK_XKB_KP_EQUALS = 0xFFBD , XBMCK_XKB_KP_MULTIPLY = 0xFFAA ,
  XBMCK_XKB_KP_ADD = 0xFFAB , XBMCK_XKB_KP_SEPARATOR = 0xFFAC , XBMCK_XKB_KP_SUBTRACT = 0xFFAD , XBMCK_XKB_KP_DIVIDE = 0xFFAF ,
  XBMCK_LAST
}
 
enum  XBMCVKey {
  XBMCVK_BACK = 0x08 , XBMCVK_TAB = 0x09 , XBMCVK_RETURN = 0x0D , XBMCVK_ESCAPE = 0x1B ,
  XBMCVK_SPACE = 0x20 , XBMCVK_EXCLAIM = 0x21 , XBMCVK_QUOTEDBL = 0x22 , XBMCVK_HASH = 0x23 ,
  XBMCVK_DOLLAR = 0x24 , XBMCVK_PERCENT = 0x25 , XBMCVK_AMPERSAND = 0x26 , XBMCVK_QUOTE = 0x27 ,
  XBMCVK_LEFTPAREN = 0x28 , XBMCVK_RIGHTPAREN = 0x29 , XBMCVK_ASTERISK = 0x2A , XBMCVK_PLUS = 0x2B ,
  XBMCVK_COMMA = 0x2C , XBMCVK_MINUS = 0x2D , XBMCVK_PERIOD = 0x2E , XBMCVK_SLASH = 0x2F ,
  XBMCVK_0 = 0x30 , XBMCVK_1 = 0x31 , XBMCVK_2 = 0x32 , XBMCVK_3 = 0x33 ,
  XBMCVK_4 = 0x34 , XBMCVK_5 = 0x35 , XBMCVK_6 = 0x36 , XBMCVK_7 = 0x37 ,
  XBMCVK_8 = 0x38 , XBMCVK_9 = 0x39 , XBMCVK_COLON = 0x3A , XBMCVK_SEMICOLON = 0x3B ,
  XBMCVK_LESS = 0x3C , XBMCVK_EQUALS = 0x3D , XBMCVK_GREATER = 0x3E , XBMCVK_QUESTION = 0x3F ,
  XBMCVK_AT = 0x40 , XBMCVK_A = 0x41 , XBMCVK_B = 0x42 , XBMCVK_C = 0x43 ,
  XBMCVK_D = 0x44 , XBMCVK_E = 0x45 , XBMCVK_F = 0x46 , XBMCVK_G = 0x47 ,
  XBMCVK_H = 0x48 , XBMCVK_I = 0x49 , XBMCVK_J = 0x4A , XBMCVK_K = 0x4B ,
  XBMCVK_L = 0x4C , XBMCVK_M = 0x4D , XBMCVK_N = 0x4E , XBMCVK_O = 0x4F ,
  XBMCVK_P = 0x50 , XBMCVK_Q = 0x51 , XBMCVK_R = 0x52 , XBMCVK_S = 0x53 ,
  XBMCVK_T = 0x54 , XBMCVK_U = 0x55 , XBMCVK_V = 0x56 , XBMCVK_W = 0x57 ,
  XBMCVK_X = 0x58 , XBMCVK_Y = 0x59 , XBMCVK_Z = 0x5A , XBMCVK_LEFTBRACKET = 0x5B ,
  XBMCVK_BACKSLASH = 0x5C , XBMCVK_RIGHTBRACKET = 0x5D , XBMCVK_CARET = 0x5E , XBMCVK_UNDERSCORE = 0x5F ,
  XBMCVK_BACKQUOTE = 0x60 , XBMCVK_NUMPADDIVIDE = 0x61 , XBMCVK_NUMPADTIMES = 0x62 , XBMCVK_NUMPADMINUS = 0x63 ,
  XBMCVK_NUMPADPLUS = 0x64 , XBMCVK_NUMPADENTER = 0x65 , XBMCVK_NUMPADPERIOD = 0x66 , XBMCVK_NUMPAD0 = 0x70 ,
  XBMCVK_NUMPAD1 = 0x71 , XBMCVK_NUMPAD2 = 0x72 , XBMCVK_NUMPAD3 = 0x73 , XBMCVK_NUMPAD4 = 0x74 ,
  XBMCVK_NUMPAD5 = 0x75 , XBMCVK_NUMPAD6 = 0x76 , XBMCVK_NUMPAD7 = 0x77 , XBMCVK_NUMPAD8 = 0x78 ,
  XBMCVK_NUMPAD9 = 0x79 , XBMCVK_LEFTBRACE = 0x7B , XBMCVK_PIPE = 0x7C , XBMCVK_RIGHTBRACE = 0x7D ,
  XBMCVK_TILDE = 0x7E , XBMCVK_UP = 0x80 , XBMCVK_DOWN = 0x81 , XBMCVK_LEFT = 0x82 ,
  XBMCVK_RIGHT = 0x83 , XBMCVK_PAGEUP = 0x84 , XBMCVK_PAGEDOWN = 0x85 , XBMCVK_INSERT = 0x86 ,
  XBMCVK_DELETE = 0x87 , XBMCVK_HOME = 0x88 , XBMCVK_END = 0x89 , XBMCVK_F1 = 0x90 ,
  XBMCVK_F2 = 0x91 , XBMCVK_F3 = 0x92 , XBMCVK_F4 = 0x93 , XBMCVK_F5 = 0x94 ,
  XBMCVK_F6 = 0x95 , XBMCVK_F7 = 0x96 , XBMCVK_F8 = 0x97 , XBMCVK_F9 = 0x98 ,
  XBMCVK_F10 = 0x99 , XBMCVK_F11 = 0x9A , XBMCVK_F12 = 0x9B , XBMCVK_F13 = 0x9C ,
  XBMCVK_F14 = 0x9D , XBMCVK_F15 = 0x9E , XBMCVK_F16 = 0x9F , XBMCVK_F17 = 0xA0 ,
  XBMCVK_F18 = 0xA1 , XBMCVK_F19 = 0xA2 , XBMCVK_F20 = 0xA3 , XBMCVK_F21 = 0xA4 ,
  XBMCVK_F22 = 0xA5 , XBMCVK_F23 = 0xA6 , XBMCVK_F24 = 0xA7 , XBMCVK_BROWSER_BACK = 0xB0 ,
  XBMCVK_BROWSER_FORWARD = 0xB1 , XBMCVK_BROWSER_REFRESH = 0xB2 , XBMCVK_BROWSER_STOP = 0xB3 , XBMCVK_BROWSER_SEARCH = 0xB4 ,
  XBMCVK_BROWSER_FAVORITES = 0xB5 , XBMCVK_BROWSER_HOME = 0xB6 , XBMCVK_VOLUME_MUTE = 0xB7 , XBMCVK_VOLUME_DOWN = 0xB8 ,
  XBMCVK_VOLUME_UP = 0xB9 , XBMCVK_MEDIA_NEXT_TRACK = 0xBA , XBMCVK_MEDIA_PREV_TRACK = 0xBB , XBMCVK_MEDIA_STOP = 0xBC ,
  XBMCVK_MEDIA_PLAY_PAUSE = 0xBD , XBMCVK_LAUNCH_MAIL = 0xBE , XBMCVK_LAUNCH_MEDIA_SELECT = 0xBF , XBMCVK_LAUNCH_APP1 = 0xC0 ,
  XBMCVK_LAUNCH_APP2 = 0xC1 , XBMCVK_LAUNCH_FILE_BROWSER = 0xC2 , XBMCVK_LAUNCH_MEDIA_CENTER = 0xC3 , XBMCVK_MEDIA_REWIND = 0xC4 ,
  XBMCVK_MEDIA_FASTFORWARD = 0xC5 , XBMCVK_MEDIA_RECORD = 0xC6 , XBMCVK_LCONTROL = 0xD0 , XBMCVK_RCONTROL = 0xD1 ,
  XBMCVK_LSHIFT = 0xD2 , XBMCVK_RSHIFT = 0xD3 , XBMCVK_LMENU = 0xD4 , XBMCVK_RMENU = 0xD5 ,
  XBMCVK_LWIN = 0xD6 , XBMCVK_RWIN = 0xD7 , XBMCVK_MENU = 0xD8 , XBMCVK_CAPSLOCK = 0xD9 ,
  XBMCVK_NUMLOCK = 0xDA , XBMCVK_PRINTSCREEN = 0xDB , XBMCVK_SCROLLLOCK = 0xDC , XBMCVK_PAUSE = 0XDD ,
  XBMCVK_POWER = 0XDE , XBMCVK_SLEEP = 0XDF , XBMCVK_GUIDE = 0xE0 , XBMCVK_SETTINGS = 0xE1 ,
  XBMCVK_INFO = 0xE2 , XBMCVK_RED = 0xE3 , XBMCVK_GREEN = 0xE4 , XBMCVK_YELLOW = 0xE5 ,
  XBMCVK_BLUE = 0xE6 , XBMCVK_ZOOM = 0xE7 , XBMCVK_TEXT = 0xE8 , XBMCVK_FAVORITES = 0xE9 ,
  XBMCVK_HOMEPAGE = 0xEA , XBMCVK_CONFIG = 0xEB , XBMCVK_EPG = 0xEC , XBMCVK_LAST = 0xFF
}
 
using KODI::KEYBOARD::XBMCKey = XBMCKey
 Symbol of a hardware-independent key.
 
using KODI::KEYBOARD::KeyName = std::string
 Name of a hardware-indendent symbol representing a key.
 
using KODI::KEYBOARD::Modifier = CKey::Modifier
 Modifier keys on a keyboard that can be held when sending a key press.
 
const unsigned int KODI::KEYBOARD::KEY_HOLD_TRESHOLD = 250
 Duration for which a keyboard key is considered held.
 
#define KEY_BUTTON_A   256
 
#define KEY_BUTTON_B   257
 
#define KEY_BUTTON_X   258
 
#define KEY_BUTTON_Y   259
 
#define KEY_BUTTON_BLACK   260
 
#define KEY_BUTTON_WHITE   261
 
#define KEY_BUTTON_LEFT_TRIGGER   262
 
#define KEY_BUTTON_RIGHT_TRIGGER   263
 
#define KEY_BUTTON_LEFT_THUMB_STICK   264
 
#define KEY_BUTTON_RIGHT_THUMB_STICK   265
 
#define KEY_BUTTON_RIGHT_THUMB_STICK_UP   266
 
#define KEY_BUTTON_RIGHT_THUMB_STICK_DOWN   267
 
#define KEY_BUTTON_RIGHT_THUMB_STICK_LEFT   268
 
#define KEY_BUTTON_RIGHT_THUMB_STICK_RIGHT   269
 
#define KEY_BUTTON_DPAD_UP   270
 
#define KEY_BUTTON_DPAD_DOWN   271
 
#define KEY_BUTTON_DPAD_LEFT   272
 
#define KEY_BUTTON_DPAD_RIGHT   273
 
#define KEY_BUTTON_START   274
 
#define KEY_BUTTON_BACK   275
 
#define KEY_BUTTON_LEFT_THUMB_BUTTON   276
 
#define KEY_BUTTON_RIGHT_THUMB_BUTTON   277
 
#define KEY_BUTTON_LEFT_ANALOG_TRIGGER   278
 
#define KEY_BUTTON_RIGHT_ANALOG_TRIGGER   279
 
#define KEY_BUTTON_LEFT_THUMB_STICK_UP   280
 
#define KEY_BUTTON_LEFT_THUMB_STICK_DOWN   281
 
#define KEY_BUTTON_LEFT_THUMB_STICK_LEFT   282
 
#define KEY_BUTTON_LEFT_THUMB_STICK_RIGHT   283
 
#define KEY_VKEY   0xF000
 
#define KEY_UNICODE   0xF200
 
#define KEY_VMOUSE   0xEFFF
 
#define KEY_MOUSE_START   0xE000
 
#define KEY_MOUSE_CLICK   0xE000
 
#define KEY_MOUSE_RIGHTCLICK   0xE001
 
#define KEY_MOUSE_MIDDLECLICK   0xE002
 
#define KEY_MOUSE_DOUBLE_CLICK   0xE010
 
#define KEY_MOUSE_LONG_CLICK   0xE020
 
#define KEY_MOUSE_WHEEL_UP   0xE101
 
#define KEY_MOUSE_WHEEL_DOWN   0xE102
 
#define KEY_MOUSE_MOVE   0xE103
 
#define KEY_MOUSE_DRAG   0xE104
 
#define KEY_MOUSE_DRAG_START   0xE105
 
#define KEY_MOUSE_DRAG_END   0xE106
 
#define KEY_MOUSE_RDRAG   0xE107
 
#define KEY_MOUSE_RDRAG_START   0xE108
 
#define KEY_MOUSE_RDRAG_END   0xE109
 
#define KEY_MOUSE_NOOP   0xEFFF
 
#define KEY_MOUSE_END   0xEFFF
 
#define KEY_APPCOMMAND   0xD000
 
#define KEY_INVALID   0xFFFF
 

Detailed Description

Keyboard input is processed by CInputManager and forwarded to registered keyboard handlers (e.g. game clients) or as actions to the UI:

Macro Definition Documentation

◆ KEY_APPCOMMAND

#define KEY_APPCOMMAND   0xD000

◆ KEY_BUTTON_A

#define KEY_BUTTON_A   256

◆ KEY_BUTTON_B

#define KEY_BUTTON_B   257

◆ KEY_BUTTON_BACK

#define KEY_BUTTON_BACK   275

◆ KEY_BUTTON_BLACK

#define KEY_BUTTON_BLACK   260

◆ KEY_BUTTON_DPAD_DOWN

#define KEY_BUTTON_DPAD_DOWN   271

◆ KEY_BUTTON_DPAD_LEFT

#define KEY_BUTTON_DPAD_LEFT   272

◆ KEY_BUTTON_DPAD_RIGHT

#define KEY_BUTTON_DPAD_RIGHT   273

◆ KEY_BUTTON_DPAD_UP

#define KEY_BUTTON_DPAD_UP   270

◆ KEY_BUTTON_LEFT_ANALOG_TRIGGER

#define KEY_BUTTON_LEFT_ANALOG_TRIGGER   278

◆ KEY_BUTTON_LEFT_THUMB_BUTTON

#define KEY_BUTTON_LEFT_THUMB_BUTTON   276

◆ KEY_BUTTON_LEFT_THUMB_STICK

#define KEY_BUTTON_LEFT_THUMB_STICK   264

◆ KEY_BUTTON_LEFT_THUMB_STICK_DOWN

#define KEY_BUTTON_LEFT_THUMB_STICK_DOWN   281

◆ KEY_BUTTON_LEFT_THUMB_STICK_LEFT

#define KEY_BUTTON_LEFT_THUMB_STICK_LEFT   282

◆ KEY_BUTTON_LEFT_THUMB_STICK_RIGHT

#define KEY_BUTTON_LEFT_THUMB_STICK_RIGHT   283

◆ KEY_BUTTON_LEFT_THUMB_STICK_UP

#define KEY_BUTTON_LEFT_THUMB_STICK_UP   280

◆ KEY_BUTTON_LEFT_TRIGGER

#define KEY_BUTTON_LEFT_TRIGGER   262

◆ KEY_BUTTON_RIGHT_ANALOG_TRIGGER

#define KEY_BUTTON_RIGHT_ANALOG_TRIGGER   279

◆ KEY_BUTTON_RIGHT_THUMB_BUTTON

#define KEY_BUTTON_RIGHT_THUMB_BUTTON   277

◆ KEY_BUTTON_RIGHT_THUMB_STICK

#define KEY_BUTTON_RIGHT_THUMB_STICK   265

◆ KEY_BUTTON_RIGHT_THUMB_STICK_DOWN

#define KEY_BUTTON_RIGHT_THUMB_STICK_DOWN   267

◆ KEY_BUTTON_RIGHT_THUMB_STICK_LEFT

#define KEY_BUTTON_RIGHT_THUMB_STICK_LEFT   268

◆ KEY_BUTTON_RIGHT_THUMB_STICK_RIGHT

#define KEY_BUTTON_RIGHT_THUMB_STICK_RIGHT   269

◆ KEY_BUTTON_RIGHT_THUMB_STICK_UP

#define KEY_BUTTON_RIGHT_THUMB_STICK_UP   266

◆ KEY_BUTTON_RIGHT_TRIGGER

#define KEY_BUTTON_RIGHT_TRIGGER   263

◆ KEY_BUTTON_START

#define KEY_BUTTON_START   274

◆ KEY_BUTTON_WHITE

#define KEY_BUTTON_WHITE   261

◆ KEY_BUTTON_X

#define KEY_BUTTON_X   258

◆ KEY_BUTTON_Y

#define KEY_BUTTON_Y   259

◆ KEY_INVALID

#define KEY_INVALID   0xFFFF

◆ KEY_MOUSE_CLICK

#define KEY_MOUSE_CLICK   0xE000

◆ KEY_MOUSE_DOUBLE_CLICK

#define KEY_MOUSE_DOUBLE_CLICK   0xE010

◆ KEY_MOUSE_DRAG

#define KEY_MOUSE_DRAG   0xE104

◆ KEY_MOUSE_DRAG_END

#define KEY_MOUSE_DRAG_END   0xE106

◆ KEY_MOUSE_DRAG_START

#define KEY_MOUSE_DRAG_START   0xE105

◆ KEY_MOUSE_END

#define KEY_MOUSE_END   0xEFFF

◆ KEY_MOUSE_LONG_CLICK

#define KEY_MOUSE_LONG_CLICK   0xE020

◆ KEY_MOUSE_MIDDLECLICK

#define KEY_MOUSE_MIDDLECLICK   0xE002

◆ KEY_MOUSE_MOVE

#define KEY_MOUSE_MOVE   0xE103

◆ KEY_MOUSE_NOOP

#define KEY_MOUSE_NOOP   0xEFFF

◆ KEY_MOUSE_RDRAG

#define KEY_MOUSE_RDRAG   0xE107

◆ KEY_MOUSE_RDRAG_END

#define KEY_MOUSE_RDRAG_END   0xE109

◆ KEY_MOUSE_RDRAG_START

#define KEY_MOUSE_RDRAG_START   0xE108

◆ KEY_MOUSE_RIGHTCLICK

#define KEY_MOUSE_RIGHTCLICK   0xE001

◆ KEY_MOUSE_START

#define KEY_MOUSE_START   0xE000

◆ KEY_MOUSE_WHEEL_DOWN

#define KEY_MOUSE_WHEEL_DOWN   0xE102

◆ KEY_MOUSE_WHEEL_UP

#define KEY_MOUSE_WHEEL_UP   0xE101

◆ KEY_UNICODE

#define KEY_UNICODE   0xF200

◆ KEY_VKEY

#define KEY_VKEY   0xF000

◆ KEY_VMOUSE

#define KEY_VMOUSE   0xEFFF

Typedef Documentation

◆ KeyboardLayouts

using KODI::KEYBOARD::KeyboardLayouts = std::map<std::string, CKeyboardLayout>

◆ KeyName

using KODI::KEYBOARD::KeyName = std::string

Name of a hardware-indendent symbol representing a key.

Names are defined in the keyboard's controller profile.

◆ Modifier

Modifier keys on a keyboard that can be held when sending a key press.

Todo
Move CKey enum to this file

◆ XBMCKey

Symbol of a hardware-independent key.

Enumeration Type Documentation

◆ XBMCKey

enum XBMCKey
Enumerator
XBMCK_UNKNOWN 
XBMCK_FIRST 
XBMCK_CTRLF 
XBMCK_BACKSPACE 
XBMCK_TAB 
XBMCK_CLEAR 
XBMCK_RETURN 
XBMCK_PAUSE 
XBMCK_ESCAPE 
XBMCK_SPACE 
XBMCK_EXCLAIM 
XBMCK_QUOTEDBL 
XBMCK_HASH 
XBMCK_DOLLAR 
XBMCK_PERCENT 
XBMCK_AMPERSAND 
XBMCK_QUOTE 
XBMCK_LEFTPAREN 
XBMCK_RIGHTPAREN 
XBMCK_ASTERISK 
XBMCK_PLUS 
XBMCK_COMMA 
XBMCK_MINUS 
XBMCK_PERIOD 
XBMCK_SLASH 
XBMCK_0 
XBMCK_1 
XBMCK_2 
XBMCK_3 
XBMCK_4 
XBMCK_5 
XBMCK_6 
XBMCK_7 
XBMCK_8 
XBMCK_9 
XBMCK_COLON 
XBMCK_SEMICOLON 
XBMCK_LESS 
XBMCK_EQUALS 
XBMCK_GREATER 
XBMCK_QUESTION 
XBMCK_AT 
XBMCK_LEFTBRACKET 
XBMCK_BACKSLASH 
XBMCK_RIGHTBRACKET 
XBMCK_CARET 
XBMCK_UNDERSCORE 
XBMCK_BACKQUOTE 
XBMCK_a 
XBMCK_b 
XBMCK_c 
XBMCK_d 
XBMCK_e 
XBMCK_f 
XBMCK_g 
XBMCK_h 
XBMCK_i 
XBMCK_j 
XBMCK_k 
XBMCK_l 
XBMCK_m 
XBMCK_n 
XBMCK_o 
XBMCK_p 
XBMCK_q 
XBMCK_r 
XBMCK_s 
XBMCK_t 
XBMCK_u 
XBMCK_v 
XBMCK_w 
XBMCK_x 
XBMCK_y 
XBMCK_z 
XBMCK_LEFTBRACE 
XBMCK_PIPE 
XBMCK_RIGHTBRACE 
XBMCK_TILDE 
XBMCK_DELETE 
XBMCK_BROWSER_BACK 
XBMCK_BROWSER_FORWARD 
XBMCK_BROWSER_REFRESH 
XBMCK_BROWSER_STOP 
XBMCK_BROWSER_SEARCH 
XBMCK_BROWSER_FAVORITES 
XBMCK_BROWSER_HOME 
XBMCK_VOLUME_MUTE 
XBMCK_VOLUME_DOWN 
XBMCK_VOLUME_UP 
XBMCK_MEDIA_NEXT_TRACK 
XBMCK_MEDIA_PREV_TRACK 
XBMCK_MEDIA_STOP 
XBMCK_MEDIA_PLAY_PAUSE 
XBMCK_LAUNCH_MAIL 
XBMCK_LAUNCH_MEDIA_SELECT 
XBMCK_LAUNCH_APP1 
XBMCK_LAUNCH_APP2 
XBMCK_LAUNCH_FILE_BROWSER 
XBMCK_LAUNCH_MEDIA_CENTER 
XBMCK_MEDIA_REWIND 
XBMCK_MEDIA_FASTFORWARD 
XBMCK_OEM_102 
XBMCK_KP0 
XBMCK_KP1 
XBMCK_KP2 
XBMCK_KP3 
XBMCK_KP4 
XBMCK_KP5 
XBMCK_KP6 
XBMCK_KP7 
XBMCK_KP8 
XBMCK_KP9 
XBMCK_KP_PERIOD 
XBMCK_KP_DIVIDE 
XBMCK_KP_MULTIPLY 
XBMCK_KP_MINUS 
XBMCK_KP_PLUS 
XBMCK_KP_ENTER 
XBMCK_KP_EQUALS 
XBMCK_UP 
XBMCK_DOWN 
XBMCK_RIGHT 
XBMCK_LEFT 
XBMCK_INSERT 
XBMCK_HOME 
XBMCK_END 
XBMCK_PAGEUP 
XBMCK_PAGEDOWN 
XBMCK_F1 
XBMCK_F2 
XBMCK_F3 
XBMCK_F4 
XBMCK_F5 
XBMCK_F6 
XBMCK_F7 
XBMCK_F8 
XBMCK_F9 
XBMCK_F10 
XBMCK_F11 
XBMCK_F12 
XBMCK_F13 
XBMCK_F14 
XBMCK_F15 
XBMCK_NUMLOCK 
XBMCK_CAPSLOCK 
XBMCK_SCROLLOCK 
XBMCK_RSHIFT 
XBMCK_LSHIFT 
XBMCK_RCTRL 
XBMCK_LCTRL 
XBMCK_RALT 
XBMCK_LALT 
XBMCK_RMETA 
XBMCK_LMETA 
XBMCK_LSUPER 
XBMCK_RSUPER 
XBMCK_MODE 
XBMCK_COMPOSE 
XBMCK_HELP 
XBMCK_PRINT 
XBMCK_SYSREQ 
XBMCK_BREAK 
XBMCK_MENU 
XBMCK_POWER 
XBMCK_EURO 
XBMCK_UNDO 
XBMCK_SLEEP 
XBMCK_GUIDE 
XBMCK_SETTINGS 
XBMCK_INFO 
XBMCK_RED 
XBMCK_GREEN 
XBMCK_YELLOW 
XBMCK_BLUE 
XBMCK_ZOOM 
XBMCK_TEXT 
XBMCK_FAVORITES 
XBMCK_HOMEPAGE 
XBMCK_CONFIG 
XBMCK_EPG 
XBMCK_GRAVE 
XBMCK_ACUTE 
XBMCK_CIRCUMFLEX 
XBMCK_PERISPOMENI 
XBMCK_MACRON 
XBMCK_BREVE 
XBMCK_ABOVEDOT 
XBMCK_DIAERESIS 
XBMCK_ABOVERING 
XBMCK_DOUBLEACUTE 
XBMCK_CARON 
XBMCK_CEDILLA 
XBMCK_OGONEK 
XBMCK_IOTA 
XBMCK_VOICESOUND 
XBMCK_SEMIVOICESOUND 
XBMCK_BELOWDOT 
XBMCK_HOOK 
XBMCK_HORN 
XBMCK_STROKE 
XBMCK_ABOVECOMMA 
XBMCK_ABOVEREVERSEDCOMMA 
XBMCK_DOUBLEGRAVE 
XBMCK_BELOWRING 
XBMCK_BELOWMACRON 
XBMCK_BELOWCIRCUMFLEX 
XBMCK_BELOWTILDE 
XBMCK_BELOWBREVE 
XBMCK_BELOWDIAERESIS 
XBMCK_INVERTEDBREVE 
XBMCK_BELOWCOMMA 
XBMCK_LOWLINE 
XBMCK_ABOVEVERTICALLINE 
XBMCK_BELOWVERTICALLINE 
XBMCK_LONGSOLIDUSOVERLAY 
XBMCK_DEAD_A 
XBMCK_DEAD_E 
XBMCK_DEAD_I 
XBMCK_DEAD_O 
XBMCK_DEAD_U 
XBMCK_SCHWA 
XBMCK_STOP 
XBMCK_RECORD 
XBMCK_REWIND 
XBMCK_PHONE 
XBMCK_PLAY 
XBMCK_SHUFFLE 
XBMCK_FASTFORWARD 
XBMCK_EJECT 
XBMCK_XKB_KP_HOME 
XBMCK_XKB_KP_LEFT 
XBMCK_XKB_KP_UP 
XBMCK_XKB_KP_RIGHT 
XBMCK_XKB_KP_DOWN 
XBMCK_XKB_KP_PAGE_UP 
XBMCK_XKB_KP_PAGE_DOWN 
XBMCK_XKB_KP_END 
XBMCK_XKB_KP_BEGIN 
XBMCK_XKB_KP_INSERT 
XBMCK_XKB_KP_DELETE 
XBMCK_XKB_KP_DECIMAL 
XBMCK_XKB_KP0 
XBMCK_XKB_KP1 
XBMCK_XKB_KP2 
XBMCK_XKB_KP3 
XBMCK_XKB_KP4 
XBMCK_XKB_KP5 
XBMCK_XKB_KP6 
XBMCK_XKB_KP7 
XBMCK_XKB_KP8 
XBMCK_XKB_KP9 
XBMCK_XKB_KP_SPACE 
XBMCK_XKB_KP_TAB 
XBMCK_XKB_KP_ENTER 
XBMCK_XKB_KP_F1 
XBMCK_XKB_KP_F2 
XBMCK_XKB_KP_F3 
XBMCK_XKB_KP_F4 
XBMCK_XKB_KP_EQUALS 
XBMCK_XKB_KP_MULTIPLY 
XBMCK_XKB_KP_ADD 
XBMCK_XKB_KP_SEPARATOR 
XBMCK_XKB_KP_SUBTRACT 
XBMCK_XKB_KP_DIVIDE 
XBMCK_LAST 

◆ XBMCVKey

enum XBMCVKey
Enumerator
XBMCVK_BACK 
XBMCVK_TAB 
XBMCVK_RETURN 
XBMCVK_ESCAPE 
XBMCVK_SPACE 
XBMCVK_EXCLAIM 
XBMCVK_QUOTEDBL 
XBMCVK_HASH 
XBMCVK_DOLLAR 
XBMCVK_PERCENT 
XBMCVK_AMPERSAND 
XBMCVK_QUOTE 
XBMCVK_LEFTPAREN 
XBMCVK_RIGHTPAREN 
XBMCVK_ASTERISK 
XBMCVK_PLUS 
XBMCVK_COMMA 
XBMCVK_MINUS 
XBMCVK_PERIOD 
XBMCVK_SLASH 
XBMCVK_0 
XBMCVK_1 
XBMCVK_2 
XBMCVK_3 
XBMCVK_4 
XBMCVK_5 
XBMCVK_6 
XBMCVK_7 
XBMCVK_8 
XBMCVK_9 
XBMCVK_COLON 
XBMCVK_SEMICOLON 
XBMCVK_LESS 
XBMCVK_EQUALS 
XBMCVK_GREATER 
XBMCVK_QUESTION 
XBMCVK_AT 
XBMCVK_A 
XBMCVK_B 
XBMCVK_C 
XBMCVK_D 
XBMCVK_E 
XBMCVK_F 
XBMCVK_G 
XBMCVK_H 
XBMCVK_I 
XBMCVK_J 
XBMCVK_K 
XBMCVK_L 
XBMCVK_M 
XBMCVK_N 
XBMCVK_O 
XBMCVK_P 
XBMCVK_Q 
XBMCVK_R 
XBMCVK_S 
XBMCVK_T 
XBMCVK_U 
XBMCVK_V 
XBMCVK_W 
XBMCVK_X 
XBMCVK_Y 
XBMCVK_Z 
XBMCVK_LEFTBRACKET 
XBMCVK_BACKSLASH 
XBMCVK_RIGHTBRACKET 
XBMCVK_CARET 
XBMCVK_UNDERSCORE 
XBMCVK_BACKQUOTE 
XBMCVK_NUMPADDIVIDE 
XBMCVK_NUMPADTIMES 
XBMCVK_NUMPADMINUS 
XBMCVK_NUMPADPLUS 
XBMCVK_NUMPADENTER 
XBMCVK_NUMPADPERIOD 
XBMCVK_NUMPAD0 
XBMCVK_NUMPAD1 
XBMCVK_NUMPAD2 
XBMCVK_NUMPAD3 
XBMCVK_NUMPAD4 
XBMCVK_NUMPAD5 
XBMCVK_NUMPAD6 
XBMCVK_NUMPAD7 
XBMCVK_NUMPAD8 
XBMCVK_NUMPAD9 
XBMCVK_LEFTBRACE 
XBMCVK_PIPE 
XBMCVK_RIGHTBRACE 
XBMCVK_TILDE 
XBMCVK_UP 
XBMCVK_DOWN 
XBMCVK_LEFT 
XBMCVK_RIGHT 
XBMCVK_PAGEUP 
XBMCVK_PAGEDOWN 
XBMCVK_INSERT 
XBMCVK_DELETE 
XBMCVK_HOME 
XBMCVK_END 
XBMCVK_F1 
XBMCVK_F2 
XBMCVK_F3 
XBMCVK_F4 
XBMCVK_F5 
XBMCVK_F6 
XBMCVK_F7 
XBMCVK_F8 
XBMCVK_F9 
XBMCVK_F10 
XBMCVK_F11 
XBMCVK_F12 
XBMCVK_F13 
XBMCVK_F14 
XBMCVK_F15 
XBMCVK_F16 
XBMCVK_F17 
XBMCVK_F18 
XBMCVK_F19 
XBMCVK_F20 
XBMCVK_F21 
XBMCVK_F22 
XBMCVK_F23 
XBMCVK_F24 
XBMCVK_BROWSER_BACK 
XBMCVK_BROWSER_FORWARD 
XBMCVK_BROWSER_REFRESH 
XBMCVK_BROWSER_STOP 
XBMCVK_BROWSER_SEARCH 
XBMCVK_BROWSER_FAVORITES 
XBMCVK_BROWSER_HOME 
XBMCVK_VOLUME_MUTE 
XBMCVK_VOLUME_DOWN 
XBMCVK_VOLUME_UP 
XBMCVK_MEDIA_NEXT_TRACK 
XBMCVK_MEDIA_PREV_TRACK 
XBMCVK_MEDIA_STOP 
XBMCVK_MEDIA_PLAY_PAUSE 
XBMCVK_LAUNCH_MAIL 
XBMCVK_LAUNCH_MEDIA_SELECT 
XBMCVK_LAUNCH_APP1 
XBMCVK_LAUNCH_APP2 
XBMCVK_LAUNCH_FILE_BROWSER 
XBMCVK_LAUNCH_MEDIA_CENTER 
XBMCVK_MEDIA_REWIND 
XBMCVK_MEDIA_FASTFORWARD 
XBMCVK_MEDIA_RECORD 
XBMCVK_LCONTROL 
XBMCVK_RCONTROL 
XBMCVK_LSHIFT 
XBMCVK_RSHIFT 
XBMCVK_LMENU 
XBMCVK_RMENU 
XBMCVK_LWIN 
XBMCVK_RWIN 
XBMCVK_MENU 
XBMCVK_CAPSLOCK 
XBMCVK_NUMLOCK 
XBMCVK_PRINTSCREEN 
XBMCVK_SCROLLLOCK 
XBMCVK_PAUSE 
XBMCVK_POWER 
XBMCVK_SLEEP 
XBMCVK_GUIDE 
XBMCVK_SETTINGS 
XBMCVK_INFO 
XBMCVK_RED 
XBMCVK_GREEN 
XBMCVK_YELLOW 
XBMCVK_BLUE 
XBMCVK_ZOOM 
XBMCVK_TEXT 
XBMCVK_FAVORITES 
XBMCVK_HOMEPAGE 
XBMCVK_CONFIG 
XBMCVK_EPG 
XBMCVK_LAST 

Variable Documentation

◆ KEY_HOLD_TRESHOLD

const unsigned int KODI::KEYBOARD::KEY_HOLD_TRESHOLD = 250

Duration for which a keyboard key is considered held.