X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=usb_keycodes.h;h=6cc98682ba3d61832ea6706d7a7f2273d8c25f5a;hb=7386c761912530bbb53496002ab32d02c8a86833;hp=b49ecd5809ce671faf28f6917403d6642960d28a;hpb=8240e606d4571624c7967d6acfa562d70ff3ab97;p=tmk_firmware.git diff --git a/usb_keycodes.h b/usb_keycodes.h index b49ecd5..6cc9868 100644 --- a/usb_keycodes.h +++ b/usb_keycodes.h @@ -1,55 +1,42 @@ +/* +Copyright 2011 Jun Wako + +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 this program. If not, see . +*/ + /* - * Key codes from HID Keyboard/Keypad Page + * Key codes: HID Keyboard/Keypad Page(0x07) * 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) <= KP_HEXADECIMAL) -#define IS_MOD(code) (KB_LCTRL <= (code) && (code) <= KB_RGUI) -#define IS_FN(code) (FN_0 <= (code) && (code) <= FN_7) -#define IS_MOUSE(code) (MS_UP <= (code) && (code) <= MS_WH_RIGHT) -#define IS_MOUSE_MOVE(code) (MS_UP <= (code) && (code) <= MS_RIGHT) -#define IS_MOUSE_BUTTON(code) (MS_BTN1 <= (code) && (code) <= MS_BTN5) -#define IS_MOUSE_WHEEL(code) (MS_WH_UP <= (code) && (code) <= MS_WH_RIGHT) + +#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED) +#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) +#define IS_MOUSEKEY_MOVE(code) (KB_MS_UP <= (code) && (code) <= KB_MS_RIGHT) +#define IS_MOUSEKEY_BUTTON(code) (KB_MS_BTN1 <= (code) && (code) <= KB_MS_BTN5) +#define IS_MOUSEKEY_WHEEL(code) (KB_MS_WH_UP <= (code) && (code) <= KB_MS_WH_RIGHT) #define MOD_BIT(code) (1<<((code) & 0x07)) -#define FN_BIT(code) (1<<((code) - FN_0)) +#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 @@ -65,6 +52,7 @@ #define KB_PSCR KB_PSCREEN #define KB_SLCK KB_SCKLOCK #define KB_BRK KB_BREAK +#define KB_NLCK KB_NUMLOCK #define KB_SPC KB_SPACE #define KB_MINS KB_MINUS #define KB_EQL KB_EQUAL @@ -76,18 +64,127 @@ #define KB_SLSH KB_SLASH #define KB_SCLN KB_SCOLON #define KB_QUOT KB_QUOTE -#define KB_PWR KB_POWER -#define KB_VUP KB_VOLUP -#define KB_VDWN KB_VOLDOWN -#define KP_SLSH KP_SLASH -#define KP_ASTR KP_ASTERISK -#define KP_MINS KP_MINUS -#define MS_RGHT MS_RIGHT -#define MS_WH_U MS_WH_UP -#define MS_WH_D MS_WH_DOWN -#define MS_WH_L MS_WH_LEFT -#define MS_WH_R MS_WH_RIGHT +#define KB_APP KB_APPLICATION +#define KB_NUHS KB_NONUS_HASH +#define KB_NUBS KB_NONUS_BSLASH +/* for Japanese */ +#define KB_ZKHK KB_GRAVE +#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 +/* Keypad */ +#define KB_P1 KB_KP_1 +#define KB_P2 KB_KP_2 +#define KB_P3 KB_KP_3 +#define KB_P4 KB_KP_4 +#define KB_P5 KB_KP_5 +#define KB_P6 KB_KP_6 +#define KB_P7 KB_KP_7 +#define KB_P8 KB_KP_8 +#define KB_P9 KB_KP_9 +#define KB_P0 KB_KP_0 +#define KB_PDOT KB_KP_DOT +#define KB_PSLS KB_KP_SLASH +#define KB_PAST KB_KP_ASTERISK +#define KB_PMNS KB_KP_MINUS +#define KB_PPLS KB_KP_PLUS +#define KB_PEQL KB_KP_EQUAL +#define KB_PENT KB_KP_ENTER +/* Mousekey */ +#define KB_MS_U KB_MS_UP +#define KB_MS_D KB_MS_DOWN +#define KB_MS_L KB_MS_LEFT +#define KB_MS_R KB_MS_RIGHT +#define KB_BTN1 KB_MS_BTN1 +#define KB_BTN2 KB_MS_BTN2 +#define KB_BTN3 KB_MS_BTN3 +#define KB_BTN4 KB_MS_BTN4 +#define KB_BTN5 KB_MS_BTN5 +#define KB_WH_U KB_MS_WH_UP +#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_SLEP KB_SYSTEM_SLEEP +#define KB_WAKE KB_SYSTEM_WAKE +#define KB_MUTE KB_AUDIO_MUTE +#define KB_VOLU KB_AUDIO_VOL_UP +#define KB_VOLD KB_AUDIO_VOL_DOWN +#define KB_MNXT KB_MEDIA_NEXT_TRACK +#define KB_MPRV KB_MEDIA_PREV_TRACK +#define KB_MSTP KB_MEDIA_STOP +#define KB_MPLY KB_MEDIA_PLAY_PAUSE +#define KB_MSEL KB_MEDIA_SELECT +#define KB_MAIL KB_MAIL +#define KB_CALC KB_CALCULATOR +#define KB_MYCM KB_MY_COMPUTER +#define KB_WSCH KB_WWW_SEARCH +#define KB_WHOM KB_WWW_HOME +#define KB_WBAK KB_WWW_BACK +#define KB_WFWD KB_WWW_FORWARD +#define KB_WSTP KB_WWW_STOP +#define KB_WREF KB_WWW_REFRESH +#define KB_WFAV KB_WWW_FAVORITES + + +/* 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, @@ -106,7 +203,7 @@ enum keycodes { KB_J, KB_K, KB_L, - KB_M, /* 0x10 */ + KB_M, /* 0x10 */ KB_N, KB_O, KB_P, @@ -122,7 +219,7 @@ enum keycodes { KB_Z, KB_1, KB_2, - KB_3, /* 0x20 */ + KB_3, /* 0x20 */ KB_4, KB_5, KB_6, @@ -137,16 +234,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, @@ -154,7 +251,7 @@ enum keycodes { KB_F4, KB_F5, KB_F6, - KB_F7, /* 0x40 */ + KB_F7, /* 0x40 */ KB_F8, KB_F9, KB_F10, @@ -170,30 +267,30 @@ enum keycodes { KB_END, KB_PGDOWN, KB_RIGHT, - KB_LEFT, /* 0x50 */ + KB_LEFT, /* 0x50 */ KB_DOWN, KB_UP, KB_NUMLOCK, - KP_SLASH, - KP_ASTERISK, - KP_MINUS, - KP_PLUS, - KP_ENTER, - KP_1, - KP_2, - KP_3, - KP_4, - KP_5, - KP_6, - KP_7, - KP_8, /* 0x60 */ - KP_9, - KP_0, - KP_DOT, - KB_NONUS_BSLASH, /* Non-US \ and | */ + KB_KP_SLASH, + KB_KP_ASTERISK, + KB_KP_MINUS, + KB_KP_PLUS, + KB_KP_ENTER, + KB_KP_1, + KB_KP_2, + KB_KP_3, + KB_KP_4, + KB_KP_5, + KB_KP_6, + KB_KP_7, + KB_KP_8, /* 0x60 */ + KB_KP_9, + KB_KP_0, + KB_KP_DOT, + KB_NONUS_BSLASH, /* Non-US \ and | */ KB_APPLICATION, KB_POWER, - KP_EQUAL, + KB_KP_EQUAL, KB_F13, KB_F14, KB_F15, @@ -202,7 +299,7 @@ enum keycodes { KB_F18, KB_F19, KB_F20, - KB_F21, /* 0x70 */ + KB_F21, /* 0x70 */ KB_F22, KB_F23, KB_F24, @@ -217,14 +314,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 */ - KP_COMMA, - KP_EQUAL_AS400, /* equal sign on AS/400 */ + 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_INT1, KB_INT2, KB_INT3, @@ -234,7 +331,7 @@ enum keycodes { KB_INT7, KB_INT8, KB_INT9, - KB_LANG1, /* 0x90 */ + KB_LANG1, /* 0x90 */ KB_LANG2, KB_LANG3, KB_LANG4, @@ -250,91 +347,73 @@ enum keycodes { KB_PRIOR, KB_RETURN, KB_SEPARATOR, - KB_OUT, + KB_OUT, /* 0xA0 */ KB_OPER, KB_CLEAR_AGAIN, KB_CRSEL, KB_EXSEL, - KP_00 = 0xB0, - KP_000, + /* NOTE: 0xB0-DF are used as special_keycodes */ +#if 0 + KB_KP_00 = 0xB0, + KB_KP_000, KB_THOUSANDS_SEPARATOR, KB_DECIMAL_SEPARATOR, - CURRENCY_UNIT, - CURRENCY_SUB_UNIT, - KP_LPAREN, - KP_RPAREN, - KP_LCBRACKET, /* { */ - KP_RCBRACKET, /* } */ - KP_TAB, - KP_BSPACE, - KP_A, - KP_B, - KP_C, - KP_D, - KP_E, - KP_F, - KP_XOR, - KP_HAT, - KP_PERC, - KP_LT, - KP_GT, - KP_AND, - KP_LAZYAND, - KP_OR, - KP_LAZYOR, - KP_COLON, - KP_HASH, - KP_SPACE, - KP_ATMARK, - KP_EXCLAMATION, - KP_MEM_STORE, - KP_MEM_RECALL, - KP_MEM_CLEAR, - KP_MEM_ADD, - KP_MEM_SUB, - KP_MEM_MUL, - KP_MEM_DIV, - KP_PLUS_MINUS, - KP_CLEAR, - KP_CLEAR_ENTRY, - KP_BINARY, - KP_OCTAL, - KP_DECIMAL, - KP_HEXADECIMAL, + KB_CURRENCY_UNIT, + KB_CURRENCY_SUB_UNIT, + KB_KP_LPAREN, + KB_KP_RPAREN, + 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, /* 0xC0 */ + KB_KP_F, + KB_KP_XOR, + KB_KP_HAT, + KB_KP_PERC, + KB_KP_LT, + KB_KP_GT, + KB_KP_AND, + KB_KP_LAZYAND, + KB_KP_OR, + KB_KP_LAZYOR, + KB_KP_COLON, + KB_KP_HASH, + KB_KP_SPACE, + KB_KP_ATMARK, + KB_KP_EXCLAMATION, + KB_KP_MEM_STORE, /* 0xD0 */ + KB_KP_MEM_RECALL, + KB_KP_MEM_CLEAR, + KB_KP_MEM_ADD, + KB_KP_MEM_SUB, + KB_KP_MEM_MUL, + KB_KP_MEM_DIV, + KB_KP_PLUS_MINUS, + KB_KP_CLEAR, + KB_KP_CLEAR_ENTRY, + KB_KP_BINARY, + KB_KP_OCTAL, + KB_KP_DECIMAL, + KB_KP_HEXADECIMAL, +#endif - /* 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 */ - FN_0 = 0xE8, - FN_1, - FN_2, - FN_3, - FN_4, - FN_5, - FN_6, - FN_7, - MS_UP = 0xF0, - MS_DOWN, - MS_LEFT, - MS_RIGHT, - MS_BTN1 = 0xF4, - MS_BTN2, - MS_BTN3, - MS_BTN4, - MS_BTN5, - MS_WH_UP, - MS_WH_DOWN, - MS_WH_LEFT, - MS_WH_RIGHT, + /* NOTE: 0xE8-FF are used as special_keycodes */ }; #endif /* USB_KEYCODES_H */