blob: b199c7b9ea5d84a730eebfca490fab8ceaa5b72c [file] [log] [blame]
/**
* \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__ */