diff options
Diffstat (limited to 'xbmc/input/XBMC_keysym.h')
-rw-r--r-- | xbmc/input/XBMC_keysym.h | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/xbmc/input/XBMC_keysym.h b/xbmc/input/XBMC_keysym.h new file mode 100644 index 0000000..a417c0c --- /dev/null +++ b/xbmc/input/XBMC_keysym.h @@ -0,0 +1,263 @@ +/* + * SDL - Simple DirectMedia Layer + * Copyright (C) 1997-2009 Sam Lantinga + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * See LICENSES/README.md for more information. + * + * Sam Lantinga + * slouken@libsdl.org + */ + +#pragma once + +// The XBMC_keysym identifies a physical key on the keyboard i.e. it is +// analogous to a scan code but is hardware independent. +// These values are bazsed on the SDL_keysym standards, see: +// +// http://www.libsdl.org/tmp/SDL-1.3-docs/SDL__keysym_8h.html +// +// On SDL_KEYDOWN messages the keysym.sym will be one of these values. +// +// On OSs that don't support SDL (i.e. Windows) the OS dependant key +// handling code converts keypresses to an XBMC_keysym value. + +typedef enum +{ + // The keyboard syms have been cleverly chosen to map to ASCII + 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, + // Skip uppercase letters + 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, + // End of ASCII mapped keysyms + + // Multimedia keys + // These are the Windows VK_ codes. SDL doesn't define codes for + // these keys. + 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, + + // Numeric keypad + 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, + + // Arrows + Home/End pad + 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, + + // Function keys + 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, + + // Key state modifier keys + 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, // Left "Windows" key + XBMCK_RSUPER = 0x138, // Right "Windows" key + XBMCK_MODE = 0x139, // "Alt Gr" key + XBMCK_COMPOSE = 0x13A, // Multi-key compose key + + // Miscellaneous function keys + XBMCK_HELP = 0x13B, + XBMCK_PRINT = 0x13C, + XBMCK_SYSREQ = 0x13D, + XBMCK_BREAK = 0x13E, + XBMCK_MENU = 0x13F, + XBMCK_POWER = 0x140, // Power Macintosh power key + XBMCK_EURO = 0x141, // Some european keyboards + XBMCK_UNDO = 0x142, // Atari keyboard has Undo + XBMCK_SLEEP = 0x143, // Sleep button on Nyxboard remote (and others?) + 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, + + // Add any other keys here + + /* Media keys */ + 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_LAST +} XBMCKey; + +// Enumeration of valid key mods (possibly OR'd together) +typedef enum +{ + XBMCKMOD_NONE = 0x0000, + XBMCKMOD_LSHIFT = 0x0001, + XBMCKMOD_RSHIFT = 0x0002, + XBMCKMOD_LSUPER = 0x0010, + XBMCKMOD_RSUPER = 0x0020, + XBMCKMOD_LCTRL = 0x0040, + XBMCKMOD_RCTRL = 0x0080, + XBMCKMOD_LALT = 0x0100, + XBMCKMOD_RALT = 0x0200, + XBMCKMOD_LMETA = 0x0400, + XBMCKMOD_RMETA = 0x0800, + XBMCKMOD_NUM = 0x1000, + XBMCKMOD_CAPS = 0x2000, + XBMCKMOD_MODE = 0x4000, + XBMCKMOD_RESERVED = 0x8000 +} XBMCMod; + +#define XBMCKMOD_CTRL (XBMCKMOD_LCTRL | XBMCKMOD_RCTRL) +#define XBMCKMOD_SHIFT (XBMCKMOD_LSHIFT | XBMCKMOD_RSHIFT) +#define XBMCKMOD_ALT (XBMCKMOD_LALT | XBMCKMOD_RALT) +#define XBMCKMOD_META (XBMCKMOD_LMETA | XBMCKMOD_RMETA) +#define XBMCKMOD_SUPER (XBMCKMOD_LSUPER | XBMCKMOD_RSUPER) |