]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - usb_keycodes.h
Added PS/2 multimeda key support.
[max/tmk_keyboard.git] / usb_keycodes.h
index 827e74267fb6d9947a71dddfa0c127dd36508b51..bdec953910d769486effe59a07960cb842108de7 100644 (file)
@@ -1,43 +1,13 @@
 /* 
  * Key codes from HID Keyboard/Keypad Page
  * http://www.usb.org/developers/devclass_docs/Hut1_12.pdf
- *
- * Based on Keyboard Upgrade v0.3.0 http://github.com/rhomann/kbupgrade
- */
-/*
- * Keyboard Upgrade -- Firmware for homebrew computer keyboard controllers.
- * Copyright (C) 2009  Robert Homann
- *
- * Based on RUMP (http://mg8.org/rump/), Copyright (C) 2008  Chris Lee
- *
- * Based on c64key (http://symlink.dk/projects/c64key/),
- * Copyright (C) 2006-2007  Mikkel Holm Olsen
- *
- * Based on HID-Test by Christian Starkjohann, Objective Development
- *
- * This file is part of the Keyboard Upgrade package.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with the Keyboard Upgrade package; if not, write to the
- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301  USA
  */
 #ifndef USB_KEYCODES_H
 #define USB_KEYCODES_H
 
 
 #define IS_ERROR(code)           (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED)
-#define IS_KEY(code)             (KB_A         <= (code) && (code) <= KB_KP_HEXADECIMAL)
+#define IS_KEY(code)             (KB_A         <= (code) && (code) <= KB_EXSEL)
 #define IS_MOD(code)             (KB_LCTRL     <= (code) && (code) <= KB_RGUI)
 #define IS_FN(code)              (KB_FN0       <= (code) && (code) <= KB_FN7)
 #define IS_MOUSEKEY(code)        (KB_MS_UP     <= (code) && (code) <= KB_MS_WH_RIGHT)
@@ -49,9 +19,7 @@
 #define FN_BIT(code)  (1<<((code) - KB_FN0))
 
 
-//
-// Short names
-//
+/* Short names */
 #define KB_LCTL KB_LCTRL
 #define KB_RCTL KB_RCTRL
 #define KB_LSFT KB_LSHIFT
 #define KB_SLSH KB_SLASH
 #define KB_SCLN KB_SCOLON
 #define KB_QUOT KB_QUOTE
-#define KB_PWR  KB_POWER
-#define KB_VOLU KB_VOLUP
-#define KB_VOLD KB_VOLDOWN
-#define KB_APP  KB_APPLICATION,
-// Keypad
+#define KB_APP  KB_APPLICATION
+#define KB_NUHS KB_NONUS_HASH
+#define KB_NUBS KB_NONUS_BSLASH
+/* for Japanese */
+#define KB_RO   KB_INT1
+#define KB_KANA KB_INT2
+#define KB_JYEN KB_INT3
+#define KB_HENK KB_INT4
+#define KB_MHEN KB_INT5
+#define KB_ZEHA KB_GRAVE
+/* Keypad */
 #define KB_P1   KB_KP_1
 #define KB_P2   KB_KP_2
 #define KB_P3   KB_KP_3
 #define KB_PPLS KB_KP_PLUS
 #define KB_PEQL KB_KP_EQUAL
 #define KB_PENT KB_KP_ENTER
-// Mousekey
+/* Mousekey */
 #define KB_MS_U KB_MS_UP
 #define KB_MS_D KB_MS_DOWN
 #define KB_MS_L KB_MS_LEFT
 #define KB_WH_D KB_MS_WH_DOWN
 #define KB_WH_L KB_MS_WH_LEFT
 #define KB_WH_R KB_MS_WH_RIGHT
+/* Sytem Control & Consumer usage */
+#define KB_PWR  KB_SYSTEM_POWER
+#define KB_MUTE KB_AUDIO_MUTE
+#define KB_VOLU KB_AUDIO_VOL_UP
+#define KB_VOLD KB_AUDIO_VOL_DOWN
+
+
+/* Special keycode */
+enum special_keycodes {
+    /* System Control */
+    KB_SYSTEM_POWER = 0xB0,
+    KB_SYSTEM_SLEEP,
+    KB_SYSTEM_WAKE,
 
+    /* Consumer Page */
+    KB_AUDIO_MUTE,
+    KB_AUDIO_VOL_UP,
+    KB_AUDIO_VOL_DOWN,
+    KB_MEDIA_NEXT_TRACK,
+    KB_MEDIA_PREV_TRACK,
+    KB_MEDIA_STOP,
+    KB_MEDIA_PLAY_PAUSE,
+    KB_MEDIA_SELECT,
+    KB_MAIL,
+    KB_CALCULATOR,
+    KB_MY_COMPUTER,
+    KB_WWW_SEARCH,
+    KB_WWW_HOME,
+    KB_WWW_BACK,        /* 0xC0 */
+    KB_WWW_FORWARD,
+    KB_WWW_STOP,
+    KB_WWW_REFRESH,
+    KB_WWW_FAVORITES,
+
+    /* reserve 0xE0-E7 for Modifiers */
+
+    /* Layer Switching */
+    KB_FN0 = 0xE8,
+    KB_FN1,
+    KB_FN2,
+    KB_FN3,
+    KB_FN4,
+    KB_FN5,
+    KB_FN6,
+    KB_FN7,
+
+    /* Mousekey */
+    KB_MS_UP = 0xF0,
+    KB_MS_DOWN,
+    KB_MS_LEFT,
+    KB_MS_RIGHT,
+    KB_MS_BTN1,
+    KB_MS_BTN2,
+    KB_MS_BTN3,
+    KB_MS_BTN4,
+    KB_MS_BTN5,
+    /* Mousekey wheel */
+    KB_MS_WH_UP,
+    KB_MS_WH_DOWN,
+    KB_MS_WH_LEFT,
+    KB_MS_WH_RIGHT,
+};
 
 enum keycodes {
     KB_NO = 0,
@@ -134,7 +169,7 @@ enum keycodes {
     KB_J,
     KB_K,
     KB_L,
-    KB_M,       /* 0x10 */
+    KB_M,               /* 0x10 */
     KB_N,
     KB_O,
     KB_P,
@@ -150,7 +185,7 @@ enum keycodes {
     KB_Z,
     KB_1,
     KB_2,
-    KB_3,       /* 0x20 */
+    KB_3,               /* 0x20 */
     KB_4,
     KB_5,
     KB_6,
@@ -165,16 +200,16 @@ enum keycodes {
     KB_SPACE,
     KB_MINUS,
     KB_EQUAL,
-    KB_LBRACKET,          /* [ */
-    KB_RBRACKET,          /* ] */
-    KB_BSLASH,            /* \ (and |) */
-    KB_NONUS_HASH,        /* Non-US # and ~ */
-    KB_SCOLON,            /* ; (and :) */
-    KB_QUOTE,             /* ' and " */
-    KB_GRAVE,             /* Grave accent and tilde */
-    KB_COMMA,             /* , and < */
-    KB_DOT,               /* . and > */
-    KB_SLASH,             /* / and ? */
+    KB_LBRACKET,
+    KB_RBRACKET,        /* 0x30 */
+    KB_BSLASH,          /* \ (and |) */
+    KB_NONUS_HASH,      /* Non-US # and ~ */
+    KB_SCOLON,          /* ; (and :) */
+    KB_QUOTE,           /* ' and " */
+    KB_GRAVE,           /* Grave accent and tilde */
+    KB_COMMA,           /* , and < */
+    KB_DOT,             /* . and > */
+    KB_SLASH,           /* / and ? */
     KB_CAPSLOCK,
     KB_F1,
     KB_F2,
@@ -182,7 +217,7 @@ enum keycodes {
     KB_F4,
     KB_F5,
     KB_F6,
-    KB_F7,      /* 0x40 */
+    KB_F7,              /* 0x40 */
     KB_F8,
     KB_F9,
     KB_F10,
@@ -198,7 +233,7 @@ enum keycodes {
     KB_END,
     KB_PGDOWN,
     KB_RIGHT,
-    KB_LEFT,    /* 0x50 */
+    KB_LEFT,            /* 0x50 */
     KB_DOWN,
     KB_UP,
     KB_NUMLOCK,
@@ -214,11 +249,11 @@ enum keycodes {
     KB_KP_5,
     KB_KP_6,
     KB_KP_7,
-    KB_KP_8,       /* 0x60 */
+    KB_KP_8,            /* 0x60 */
     KB_KP_9,
     KB_KP_0,
     KB_KP_DOT,
-    KB_NONUS_BSLASH,      /* Non-US \ and | */
+    KB_NONUS_BSLASH,    /* Non-US \ and | */
     KB_APPLICATION,
     KB_POWER,
     KB_KP_EQUAL,
@@ -230,7 +265,7 @@ enum keycodes {
     KB_F18,
     KB_F19,
     KB_F20,
-    KB_F21,     /* 0x70 */
+    KB_F21,             /* 0x70 */
     KB_F22,
     KB_F23,
     KB_F24,
@@ -245,14 +280,14 @@ enum keycodes {
     KB_COPY,
     KB_PASTE,
     KB_FIND,
-    KB_MUTE,
-    KB_VOLUP,   /* 0x80 */
-    KB_VOLDOWN,
-    KB_LOCKING_CAPS,      /* locking Caps Lock */
-    KB_LOCKING_NUM,       /* locking Num Lock */
-    KB_LOCKING_SCROLL,    /* locking Scroll Lock */
+    KB__MUTE,
+    KB__VOLUP,          /* 0x80 */
+    KB__VOLDOWN,
+    KB_LOCKING_CAPS,    /* locking Caps Lock */
+    KB_LOCKING_NUM,     /* locking Num Lock */
+    KB_LOCKING_SCROLL,  /* locking Scroll Lock */
     KB_KP_COMMA,
-    KB_KP_EQUAL_AS400,       /* equal sign on AS/400 */
+    KB_KP_EQUAL_AS400,  /* equal sign on AS/400 */
     KB_INT1,
     KB_INT2,
     KB_INT3,
@@ -262,7 +297,7 @@ enum keycodes {
     KB_INT7,
     KB_INT8,
     KB_INT9,
-    KB_LANG1,    /* 0x90 */
+    KB_LANG1,           /* 0x90 */
     KB_LANG2,
     KB_LANG3,
     KB_LANG4,
@@ -278,12 +313,13 @@ enum keycodes {
     KB_PRIOR,
     KB_RETURN,
     KB_SEPARATOR,
-    KB_OUT,
+    KB_OUT,             /* 0xA0 */
     KB_OPER,
     KB_CLEAR_AGAIN,
     KB_CRSEL,
     KB_EXSEL,
 
+    /* NOTE: uses 0xB0-DF for special keycodes */
     KB_KP_00 = 0xB0,
     KB_KP_000,
     KB_THOUSANDS_SEPARATOR,
@@ -292,15 +328,15 @@ enum keycodes {
     KB_CURRENCY_SUB_UNIT,
     KB_KP_LPAREN,
     KB_KP_RPAREN,
-    KB_KP_LCBRACKET,         /* { */
-    KB_KP_RCBRACKET,         /* } */
+    KB_KP_LCBRACKET,    /* { */
+    KB_KP_RCBRACKET,    /* } */
     KB_KP_TAB,
     KB_KP_BSPACE,
     KB_KP_A,
     KB_KP_B,
     KB_KP_C,
     KB_KP_D,
-    KB_KP_E,
+    KB_KP_E,            /* 0xC0 */
     KB_KP_F,
     KB_KP_XOR,
     KB_KP_HAT,
@@ -316,7 +352,7 @@ enum keycodes {
     KB_KP_SPACE,
     KB_KP_ATMARK,
     KB_KP_EXCLAMATION,
-    KB_KP_MEM_STORE,
+    KB_KP_MEM_STORE,    /* 0xD0 */
     KB_KP_MEM_RECALL,
     KB_KP_MEM_CLEAR,
     KB_KP_MEM_ADD,
@@ -331,41 +367,17 @@ enum keycodes {
     KB_KP_DECIMAL,
     KB_KP_HEXADECIMAL,
 
-    /* modifiers */
-    KB_LCTRL = 0xE0,    /* 0x01 */
-    KB_LSHIFT,          /* 0x02 */
-    KB_LALT,            /* 0x04 */
-    KB_LGUI,            /* 0x08 */
-    KB_RCTRL,           /* 0x10 */
-    KB_RSHIFT,          /* 0x20 */
-    KB_RALT,            /* 0x40 */
-    KB_RGUI,            /* 0x80 */
+    /* Modifiers */
+    KB_LCTRL = 0xE0,
+    KB_LSHIFT,
+    KB_LALT,
+    KB_LGUI,
+    KB_RCTRL,
+    KB_RSHIFT,
+    KB_RALT,
+    KB_RGUI,
 
-    /* extensions for internal use */
-    KB_FN0 = 0xE8,
-    KB_FN1,
-    KB_FN2,
-    KB_FN3,
-    KB_FN4,
-    KB_FN5,
-    KB_FN6,
-    KB_FN7,
-    // Mousekey move
-    KB_MS_UP = 0xF0,
-    KB_MS_DOWN,
-    KB_MS_LEFT,
-    KB_MS_RIGHT,
-    // Mousekey buttons
-    KB_MS_BTN1 = 0xF4,
-    KB_MS_BTN2,
-    KB_MS_BTN3,
-    KB_MS_BTN4,
-    KB_MS_BTN5,
-    // Mousekey wheel
-    KB_MS_WH_UP,
-    KB_MS_WH_DOWN,
-    KB_MS_WH_LEFT,
-    KB_MS_WH_RIGHT,
+    /* NOTE: uses 0xE8-FF for special keycodes */
 };
 
 #endif /* USB_KEYCODES_H */