| /** |
| * \file firmware/keycodes.h |
| * \brief This file contains modifier- and keycode definitions according to the |
| * USB-specifications for human interface devices. |
| * |
| * See usb.org's HID-usage-tables document, chapter 10 Keyboard/Keypad Page for |
| * more codes: http://www.usb.org/developers/devclass_docs/Hut1_12.pdf |
| * \author Ronald Schaten <ronald@schatenseite.de> |
| * \version $Id: keycodes.h,v 1.1 2008-07-09 20:47:12 rschaten Exp $ |
| * |
| * License: GNU GPL v2 (see License.txt) |
| */ |
| |
| #ifndef __keycodes_h_included__ |
| #define __keycodes_h_included__ |
| |
| /// Codes for modifier-keys. |
| enum modifiers { |
| MOD_NONE = 0, |
| MOD_CONTROL_LEFT = (1 << 0), |
| MOD_SHIFT_LEFT = (1 << 1), |
| MOD_ALT_LEFT = (1 << 2), |
| MOD_GUI_LEFT = (1 << 3), |
| MOD_CONTROL_RIGHT = (1 << 4), |
| MOD_SHIFT_RIGHT = (1 << 5), |
| MOD_ALT_RIGHT = (1 << 6), |
| MOD_GUI_RIGHT = (1 << 7), |
| }; |
| |
| /// Codes for non-modifier-keys. |
| enum keycodes { |
| KEY_Reserved = 0, // unused |
| KEY_ErrorRollOver, |
| KEY_POSTFail, |
| KEY_ErrorUndefined, |
| KEY_A, // 0x04 |
| KEY_B, |
| KEY_C, |
| KEY_D, |
| KEY_E, |
| KEY_F, |
| KEY_G, |
| KEY_H, |
| KEY_I, |
| KEY_J, |
| KEY_K, |
| KEY_L, |
| KEY_M, // 0x10 |
| KEY_N, |
| KEY_O, |
| KEY_P, |
| KEY_Q, |
| KEY_R, |
| KEY_S, |
| KEY_T, |
| KEY_U, |
| KEY_V, |
| KEY_W, |
| KEY_X, |
| KEY_Y, |
| KEY_Z, |
| KEY_1, // 1 and ! |
| KEY_2, // 2 and @ |
| KEY_3, // 0x20 3 and # |
| KEY_4, // 4 and $ |
| KEY_5, // 5 and % |
| KEY_6, // 6 and ^ |
| KEY_7, // 7 and & |
| KEY_8, // 8 and * |
| KEY_9, // 9 and ( |
| KEY_0, // 0x27 0 and ) |
| KEY_Return, // 0x28 enter |
| KEY_ESCAPE, // 0x29 |
| KEY_DELETE, // 0x2A backspace |
| KEY_Tab, // 0x2B |
| KEY_Spacebar, // 0x2C |
| KEY_minus, // 0x2D - and _ |
| KEY_equals, // 0x2E = and + |
| KEY_lbracket, // 0x2F [ and { |
| KEY_rbracket, // 0x30 ] and } |
| KEY_backslash, // 0x31 \ and | |
| KEY_hash, // 0x32 non-US # and ~ |
| KEY_semicolon, // 0x33 ; and : |
| KEY_apostroph, // 0x34 ' and " |
| KEY_grave, // 0x35 grave accent and tilde |
| KEY_comma, // 0x36 , and < |
| KEY_dot, // 0x37 . and > |
| KEY_slash, // 0x38 / and ? |
| KEY_capslock, // 0x39 |
| KEY_F1, |
| KEY_F2, |
| KEY_F3, |
| KEY_F4, |
| KEY_F5, |
| KEY_F6, |
| KEY_F7, // 0x40 |
| KEY_F8, |
| KEY_F9, |
| KEY_F10, |
| KEY_F11, |
| KEY_F12, |
| KEY_PrintScreen, |
| KEY_ScrollLock, |
| KEY_Pause, // Break |
| KEY_Insert, |
| KEY_Home, |
| KEY_PageUp, |
| KEY_DeleteForward, |
| KEY_End, |
| KEY_PageDown, |
| KEY_RightArrow, |
| KEY_LeftArrow, // 0x50 |
| KEY_DownArrow, |
| KEY_UpArrow, |
| KEY_NumLock, // Clear |
| KEY_KPslash, |
| KEY_KPasterisk, |
| KEY_KPminus, |
| KEY_KPplus, |
| KEY_KPenter, |
| KEY_KP1, // End |
| KEY_KP2, // Down Arrow |
| KEY_KP3, // Page Down |
| KEY_KP4, // Left Arrow |
| KEY_KP5, |
| KEY_KP6, // Right Arrow |
| KEY_KP7, // Home |
| KEY_KP8, // 0x60 Up Arrow |
| KEY_KP9, // Page Up |
| KEY_KP0, // Insert |
| KEY_KPcomma, // Delete |
| KEY_Euro, // non-US \ and | |
| KEY_Application, |
| |
| KEY_Help = 0x75, |
| KEY_KPLParen = 0x182, |
| KEY_KPRParen = 0x183, |
| }; |
| |
| #endif /* __keycodes_h_included__ */ |
| |