From c4eb9c7ef2412247d1c2e1b928e02bf506b224da Mon Sep 17 00:00:00 2001 From: NicoHood Date: Fri, 23 Oct 2015 18:49:54 +0200 Subject: [PATCH] Added all keyboard keycodes --- Readme.md | 2 + src/HID-APIs/ImprovedKeylayouts.h | 152 ++++++++++++++++++++++++++++-- 2 files changed, 144 insertions(+), 10 deletions(-) diff --git a/Readme.md b/Readme.md index 71037aa..dfaa9b6 100644 --- a/Readme.md +++ b/Readme.md @@ -91,6 +91,8 @@ Version History * Added a few key definitions * Uses .alinkage custom IDE option * Added BootKeyboard support (BIOS compatibility) +* KEY_MENU switched to KEY_APPLICATION +* KEY_RETURN is not KEY_ENTER anymore! 2.3 Release (never released) * Updated Libraries diff --git a/src/HID-APIs/ImprovedKeylayouts.h b/src/HID-APIs/ImprovedKeylayouts.h index bb58b2d..894c379 100644 --- a/src/HID-APIs/ImprovedKeylayouts.h +++ b/src/HID-APIs/ImprovedKeylayouts.h @@ -28,21 +28,18 @@ THE SOFTWARE. #error This API does not support non US english layouts. #endif -// Key alias -#define KEY_RETURN KEY_ENTER -#define KEY_LEFT_WINDOWS KEY_LEFT_GUI -#define KEY_RIGHT_WINDOWS KEY_RIGHT_GUI -#define KEY_PRINTSCREEN KEY_PRINT - +// Hut1_12v2.pdf enum KeyboardModifier : uint8_t { KEY_LEFT_CTRL = (1 << 0), KEY_LEFT_SHIFT = (1 << 1), KEY_LEFT_ALT = (1 << 2), KEY_LEFT_GUI = (1 << 3), + KEY_LEFT_WINDOWS = (1 << 3), // Alias KEY_RIGHT_CTRL = (1 << 4), KEY_RIGHT_SHIFT = (1 << 5), KEY_RIGHT_ALT = (1 << 6), KEY_RIGHT_GUI = (1 << 7), + KEY_RIGHT_WINDOWS = (1 << 7), // Alias }; enum KeyboardKeycode : uint8_t { @@ -117,6 +114,7 @@ enum KeyboardKeycode : uint8_t { KEY_F11 = 0x44, KEY_F12 = 0x45, KEY_PRINT = 0x46, + KEY_PRINTSCREEN = 0x46, // Alias KEY_SCROLL_LOCK = 0x47, KEY_PAUSE = 0x48, KEY_INSERT = 0x49, @@ -130,14 +128,148 @@ enum KeyboardKeycode : uint8_t { KEY_DOWN_ARROW = 0x51, KEY_UP_ARROW = 0x52, KEY_NUM_LOCK = 0x53, - + KEYPAD_SLASH = 0x54, + KEYPAD_ASTERICS = 0x55, + KEYPAD_MINUS = 0x56, + KEYPAD_PLUS = 0x57, + KEYPAD_ENTER = 0x59, + KEYPAD_1 = 0x59, + KEYPAD_2 = 0x5A, + KEYPAD_3 = 0x5B, + KEYPAD_4 = 0x5C, + KEYPAD_5 = 0x5D, + KEYPAD_6 = 0x5E, + KEYPAD_7 = 0x5F, + KEYPAD_8 = 0x60, + KEYPAD_9 = 0x61, + KEYPAD_0 = 0x62, + KEYPAD_DOT = 0x63, KEY_NON_US = 0x64, - KEY_MENU = 0x65, - KEY_POWER = 0x66, + KEY_APPLICATION = 0x65, // Context menu/right click - KEY_VOLUME_MUTE = 0x7F, + // Most of the following keys will only work with Linux or not at all. + // F13+ keys are mostly used for laptop functions like ECO key. + KEY_POWER = 0x66, + KEY_PAD_EQUAL = 0x67, + KEY_F13 = 0x68, + KEY_F14 = 0x69, + KEY_F15 = 0x6A, + KEY_F16 = 0x6B, + KEY_F17 = 0x6C, + KEY_F18 = 0x6D, + KEY_F19 = 0x6E, + KEY_F20 = 0x6F, + KEY_F21 = 0x70, + KEY_F22 = 0x71, + KEY_F23 = 0x72, + KEY_F24 = 0x73, + KEY_EXECUTE = 0x74, + KEY_HELP = 0x75, + KEY_MENU = 0x76, + KEY_SELECT = 0x77, + KEY_STOP = 0x78, + KEY_AGAIN = 0x79, + KEY_UNDO = 0x7A, + KEY_CUT = 0x7B, + KEY_COPY = 0x7C, + KEY_PASTE = 0x7D, + KEY_FIND = 0x7E, + KEY_MUTE = 0x7F, + KEY_VOLUME_MUTE = 0x7F, // Alias KEY_VOLUME_UP = 0x80, KEY_VOLUME_DOWN = 0x81, + KEY_LOCKING_CAPS_LOCK = 0x82, + KEY_LOCKING_NUM_LOCK = 0x83, + KEY_LOCKING_SCROLL_LOCK = 0x84, + KEYPAD_COMMA = 0x85, + KEYPAD_EQUAL_SIGN = 0x86, // Dont confuse with KEYPAD_EQUAL + KEY_INTERNATIONAL1 = 0x87, + KEY_INTERNATIONAL2 = 0x88, + KEY_INTERNATIONAL3 = 0x89, + KEY_INTERNATIONAL4 = 0x8A, + KEY_INTERNATIONAL5 = 0x8B, + KEY_INTERNATIONAL6 = 0x8C, + KEY_INTERNATIONAL7 = 0x8D, + KEY_INTERNATIONAL8 = 0x8E, + KEY_INTERNATIONAL9 = 0x8F, + KEY_LANG1 = 0x90, + KEY_LANG2 = 0x91, + KEY_LANG3 = 0x92, + KEY_LANG4 = 0x93, + KEY_LANG5 = 0x94, + KEY_LANG6 = 0x95, + KEY_LANG7 = 0x96, + KEY_LANG8 = 0x97, + KEY_LANG9 = 0x98, + KEY_ALTERNATE_ERASE = 0x99, + KEY_SYSREQ_ATTENTION = 0x9A, + KEY_CANCEL = 0x9B, + KEY_CLEAR = 0x9C, + KEY_PRIOR = 0x9D, + KEY_RETURN = 0x9E, // Do not confuse this with KEY_ENTER + KEY_SEPARATOR = 0x9F, + KEY_OUT = 0xA0, + KEY_OPER = 0xA1, + KEY_CLEAR_AGAIN = 0xA2, + KEY_CRSEL_PROPS = 0xA3, + KEY_EXSEL = 0xA4, + + KEY_PAD_00 = 0xB0, + KEY_PAD_000 = 0xB1, + KEY_THOUSANDS_SEPARATOR = 0xB2, + KEY_DECIMAL_SEPARATOR = 0xB3, + KEY_CURRENCY_UNIT = 0xB4, + KEY_CURRENCY_SUB_UNIT = 0xB5, + KEYPAD_LEFT_BRACE = 0xB6, + KEYPAD_RIGHT_BRACE = 0xB7, + KEYPAD_LEFT_CURLY_BRACE = 0xB8, + KEYPAD_RIGHT_CURLY_BRACE = 0xB9, + KEYPAD_TAB = 0xBA, + KEYPAD_BACKSPACE = 0xBB, + KEYPAD_A = 0xBC, + KEYPAD_B = 0xBD, + KEYPAD_C = 0xBE, + KEYPAD_D = 0xBF, + KEYPAD_E = 0xC0, + KEYPAD_F = 0xC1, + KEYPAD_XOR = 0xC2, + KEYPAD_CARET = 0xC3, + KEYPAD_PERCENT = 0xC4, + KEYPAD_LEFT_ANGLE = 0xC5, + KEYPAD_RIGHT_ANGLE = 0xC6, + KEYPAD_AMPERSAND = 0xC7, + KEYPAD_DOUBLE_AMPERSAND = 0xC8, + KEYPAD_PIPE = 0xC9, + KEYPAD_DOUBLE_PIPE = 0xCA, + KEYPAD_COLON = 0xCB, + KEYPAD_POUND = 0xCC, + KEYPAD_SPACE = 0xCD, + KEYPAD_AT = 0xCE, + KEYPAD_EXCLAMATION = 0xCF, + KEYPAD_MEMORY_STORE = 0xD0, + KEYPAD_MEMORY_RECALL = 0xD1, + KEYPAD_MEMORY_CLEAR = 0xD2, + KEYPAD_MEMORY_ADD = 0xD3, + KEYPAD_MEMORY_SUBTRACT = 0xD4, + KEYPAD_MEMORY_MULTIPLY = 0xD5, + KEYPAD_MEMORY_DIVIDE = 0xD6, + KEYPAD_PLUS_MINUS = 0xD7, + KEYPAD_CLEAR = 0xD8, + KEYPAD_CLEAR_ENTRY = 0xD9, + KEYPAD_BINARY = 0xDA, + KEYPAD_OCTAL = 0xDB, + KEYPAD_DECIMAL = 0xDC, + KEYPAD_HEXADECIMAL = 0xDD, + + // Used in KeyboardModifier enum directly + //KEY_LEFT_CTRL = 0xE0, + //KEY_LEFT_SHIFT = 0xE1, + //KEY_LEFT_ALT = 0xE2, + //KEY_LEFT_GUI = 0xE3, + //KEY_RIGHT_CTRL = 0xE4, + //KEY_RIGHT_SHIFT = 0xE5, + //KEY_RIGHT_ALT = 0xE6, + //KEY_RIGHT_GUI = 0xE7, }; // Keyboard Leds