diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/command.c | 38 | ||||
-rw-r--r-- | common/host.c | 2 | ||||
-rw-r--r-- | common/keyboard.c | 44 | ||||
-rw-r--r-- | common/keycode.h | 441 | ||||
-rw-r--r-- | common/mousekey.c | 54 | ||||
-rw-r--r-- | common/usb_keycodes.h | 436 |
6 files changed, 510 insertions, 505 deletions
diff --git a/common/command.c b/common/command.c index 0020d8a17c..f9cdaf57de 100644 --- a/common/command.c +++ b/common/command.c @@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include <stdint.h> #include <stdbool.h> #include <util/delay.h> -#include "usb_keycodes.h" +#include "keycode.h" #include "host.h" #include "print.h" #include "debug.h" @@ -74,10 +74,10 @@ uint8_t command_extra(void) static uint8_t command_common(void) { switch (host_get_first_key()) { - case KB_H: + case KC_H: help(); break; - case KB_B: + case KC_B: host_clear_keyboard_report(); host_send_keyboard_report(); print("jump to bootloader... "); @@ -85,7 +85,7 @@ static uint8_t command_common(void) bootloader_jump(); // not return print("not supported.\n"); break; - case KB_D: + case KC_D: debug_enable = !debug_enable; if (debug_enable) { last_print_enable = true; @@ -101,34 +101,34 @@ static uint8_t command_common(void) debug_mouse = false; } break; - case KB_X: // debug matrix toggle + case KC_X: // debug matrix toggle debug_matrix = !debug_matrix; if (debug_matrix) print("debug matrix enabled.\n"); else print("debug matrix disabled.\n"); break; - case KB_K: // debug keyboard toggle + case KC_K: // debug keyboard toggle debug_keyboard = !debug_keyboard; if (debug_keyboard) print("debug keyboard enabled.\n"); else print("debug keyboard disabled.\n"); break; - case KB_M: // debug mouse toggle + case KC_M: // debug mouse toggle debug_mouse = !debug_mouse; if (debug_mouse) print("debug mouse enabled.\n"); else print("debug mouse disabled.\n"); break; - case KB_V: // print version & information + case KC_V: // print version & information print(STR(DESCRIPTION) "\n"); break; - case KB_T: // print timer + case KC_T: // print timer print("timer: "); phex16(timer_count); print("\n"); break; - case KB_P: // print toggle + case KC_P: // print toggle if (last_print_enable) { print("print disabled.\n"); last_print_enable = false; @@ -137,7 +137,7 @@ static uint8_t command_common(void) print("print enabled.\n"); } break; - case KB_S: + case KC_S: print("host_keyboard_leds:"); phex(host_keyboard_leds()); print("\n"); #ifdef HOST_PJRC print("UDCON: "); phex(UDCON); print("\n"); @@ -156,7 +156,7 @@ static uint8_t command_common(void) #endif break; #ifdef NKRO_ENABLE - case KB_N: + case KC_N: // send empty report before change host_clear_keyboard_report(); host_send_keyboard_report(); @@ -168,7 +168,7 @@ static uint8_t command_common(void) break; #endif #ifdef EXTRAKEY_ENABLE - case KB_ESC: + case KC_ESC: host_clear_keyboard_report(); host_send_keyboard_report(); #ifdef HOST_PJRC @@ -186,23 +186,23 @@ static uint8_t command_common(void) #endif break; #endif - case KB_BSPC: + case KC_BSPC: matrix_init(); print("clear matrix\n"); break; - case KB_0: + case KC_0: switch_layer(0); break; - case KB_1: + case KC_1: switch_layer(1); break; - case KB_2: + case KC_2: switch_layer(2); break; - case KB_3: + case KC_3: switch_layer(3); break; - case KB_4: + case KC_4: switch_layer(4); break; default: diff --git a/common/host.c b/common/host.c index 0a03807f73..37f707d0b3 100644 --- a/common/host.c +++ b/common/host.c @@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include <stdint.h> #include <avr/interrupt.h> -#include "usb_keycodes.h" +#include "keycode.h" #include "host.h" #include "util.h" #include "debug.h" diff --git a/common/keyboard.c b/common/keyboard.c index 328941df3f..6adad88824 100644 --- a/common/keyboard.c +++ b/common/keyboard.c @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "keymap.h" #include "host.h" #include "led.h" -#include "usb_keycodes.h" +#include "keycode.h" #include "timer.h" #include "print.h" #include "debug.h" @@ -157,58 +157,58 @@ debug("register_code\n"); debug("consumer\n"); uint16_t usage = 0; switch (code) { - case KB_AUDIO_MUTE: + case KC_AUDIO_MUTE: usage = AUDIO_MUTE; break; - case KB_AUDIO_VOL_UP: + case KC_AUDIO_VOL_UP: usage = AUDIO_VOL_UP; break; - case KB_AUDIO_VOL_DOWN: + case KC_AUDIO_VOL_DOWN: usage = AUDIO_VOL_DOWN; break; - case KB_MEDIA_NEXT_TRACK: + case KC_MEDIA_NEXT_TRACK: usage = TRANSPORT_NEXT_TRACK; break; - case KB_MEDIA_PREV_TRACK: + case KC_MEDIA_PREV_TRACK: usage = TRANSPORT_PREV_TRACK; break; - case KB_MEDIA_STOP: + case KC_MEDIA_STOP: usage = TRANSPORT_STOP; break; - case KB_MEDIA_PLAY_PAUSE: + case KC_MEDIA_PLAY_PAUSE: usage = TRANSPORT_PLAY_PAUSE; break; - case KB_MEDIA_SELECT: + case KC_MEDIA_SELECT: usage = AL_CC_CONFIG; break; - case KB_MAIL: + case KC_MAIL: usage = AL_EMAIL; break; - case KB_CALCULATOR: + case KC_CALCULATOR: usage = AL_CALCULATOR; break; - case KB_MY_COMPUTER: + case KC_MY_COMPUTER: usage = AL_LOCAL_BROWSER; break; - case KB_WWW_SEARCH: + case KC_WWW_SEARCH: usage = AC_SEARCH; break; - case KB_WWW_HOME: + case KC_WWW_HOME: usage = AC_HOME; break; - case KB_WWW_BACK: + case KC_WWW_BACK: usage = AC_BACK; break; - case KB_WWW_FORWARD: + case KC_WWW_FORWARD: usage = AC_FORWARD; break; - case KB_WWW_STOP: + case KC_WWW_STOP: usage = AC_STOP; break; - case KB_WWW_REFRESH: + case KC_WWW_REFRESH: usage = AC_REFRESH; break; - case KB_WWW_FAVORITES: + case KC_WWW_FAVORITES: usage = AC_BOOKMARKS; break; } @@ -218,13 +218,13 @@ debug("usage: "); phex16(usage); debug("\n"); else if IS_SYSTEM(code) { uint16_t usage = 0; switch (code) { - case KB_SYSTEM_POWER: + case KC_SYSTEM_POWER: usage = SYSTEM_POWER_DOWN; break; - case KB_SYSTEM_SLEEP: + case KC_SYSTEM_SLEEP: usage = SYSTEM_SLEEP; break; - case KB_SYSTEM_WAKE: + case KC_SYSTEM_WAKE: usage = SYSTEM_WAKE_UP; break; } diff --git a/common/keycode.h b/common/keycode.h new file mode 100644 index 0000000000..4ed78a46a6 --- /dev/null +++ b/common/keycode.h @@ -0,0 +1,441 @@ +/* +Copyright 2011,2012 Jun Wako <wakojun@gmail.com> + +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 <http://www.gnu.org/licenses/>. +*/ + +/* + * Keycodes based on HID Usage Keyboard/Keypad Page(0x07) plus special codes + * http://www.usb.org/developers/devclass_docs/Hut1_12.pdf + */ +#ifndef KEYCODE_H +#define KEYCODE_H + + +#define IS_ERROR(code) (KC_ROLL_OVER <= (code) && (code) <= KC_UNDEFINED) +#define IS_ANY(code) (KC_A <= (code) && (code) <= 0xFF) +#define IS_KEY(code) (KC_A <= (code) && (code) <= KC_EXSEL) +#define IS_MOD(code) (KC_LCTRL <= (code) && (code) <= KC_RGUI) + +#define IS_FN(code) (KC_FN0 <= (code) && (code) <= KC_FN7) +#define IS_MOUSEKEY(code) (KC_MS_UP <= (code) && (code) <= KC_MS_WH_RIGHT) +#define IS_MOUSEKEY_MOVE(code) (KC_MS_UP <= (code) && (code) <= KC_MS_RIGHT) +#define IS_MOUSEKEY_BUTTON(code) (KC_MS_BTN1 <= (code) && (code) <= KC_MS_BTN5) +#define IS_MOUSEKEY_WHEEL(code) (KC_MS_WH_UP <= (code) && (code) <= KC_MS_WH_RIGHT) + +#define IS_SPECIAL(code) ((0xB0 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) +#define IS_CONSUMER(code) (KC_MUTE <= (code) && (code) <= KC_WFAV) +#define IS_SYSTEM(code) (KC_POWER <= (code) && (code) <= KC_WAKE) + +#define MOD_BIT(code) (1<<MOD_INDEX(code)) +#define MOD_INDEX(code) ((code) & 0x07) +#define FN_BIT(code) (1<<FN_INDEX(code)) +#define FN_INDEX(code) ((code) - KC_FN0) + + +/* + * Short names for ease of definition of keymap + */ +#define KC_LCTL KC_LCTRL +#define KC_RCTL KC_RCTRL +#define KC_LSFT KC_LSHIFT +#define KC_RSFT KC_RSHIFT +#define KC_ESC KC_ESCAPE +#define KC_BSPC KC_BSPACE +#define KC_ENT KC_ENTER +#define KC_DEL KC_DELETE +#define KC_INS KC_INSERT +#define KC_CAPS KC_CAPSLOCK +#define KC_RGHT KC_RIGHT +#define KC_PGDN KC_PGDOWN +#define KC_PSCR KC_PSCREEN +#define KC_SLCK KC_SCKLOCK +#define KC_PAUS KC_PAUSE +#define KC_BRK KC_PAUSE +#define KC_NLCK KC_NUMLOCK +#define KC_SPC KC_SPACE +#define KC_MINS KC_MINUS +#define KC_EQL KC_EQUAL +#define KC_GRV KC_GRAVE +#define KC_RBRC KC_RBRACKET +#define KC_LBRC KC_LBRACKET +#define KC_COMM KC_COMMA +#define KC_BSLS KC_BSLASH +#define KC_SLSH KC_SLASH +#define KC_SCLN KC_SCOLON +#define KC_QUOT KC_QUOTE +#define KC_APP KC_APPLICATION +#define KC_NUHS KC_NONUS_HASH +#define KC_NUBS KC_NONUS_BSLASH +#define KC_ERAS KC_ALT_ERASE, +#define KC_CLR KC_CLEAR +/* Japanese specific */ +#define KC_ZKHK KC_GRAVE +#define KC_RO KC_INT1 +#define KC_KANA KC_INT2 +#define KC_JYEN KC_INT3 +#define KC_HENK KC_INT4 +#define KC_MHEN KC_INT5 +/* Keypad */ +#define KC_P1 KC_KP_1 +#define KC_P2 KC_KP_2 +#define KC_P3 KC_KP_3 +#define KC_P4 KC_KP_4 +#define KC_P5 KC_KP_5 +#define KC_P6 KC_KP_6 +#define KC_P7 KC_KP_7 +#define KC_P8 KC_KP_8 +#define KC_P9 KC_KP_9 +#define KC_P0 KC_KP_0 +#define KC_PDOT KC_KP_DOT +#define KC_PCMM KC_KP_COMMA +#define KC_PSLS KC_KP_SLASH +#define KC_PAST KC_KP_ASTERISK +#define KC_PMNS KC_KP_MINUS +#define KC_PPLS KC_KP_PLUS +#define KC_PEQL KC_KP_EQUAL +#define KC_PENT KC_KP_ENTER +/* Mousekey */ +#define KC_MS_U KC_MS_UP +#define KC_MS_D KC_MS_DOWN +#define KC_MS_L KC_MS_LEFT +#define KC_MS_R KC_MS_RIGHT +#define KC_BTN1 KC_MS_BTN1 +#define KC_BTN2 KC_MS_BTN2 +#define KC_BTN3 KC_MS_BTN3 +#define KC_BTN4 KC_MS_BTN4 +#define KC_BTN5 KC_MS_BTN5 +#define KC_WH_U KC_MS_WH_UP +#define KC_WH_D KC_MS_WH_DOWN +#define KC_WH_L KC_MS_WH_LEFT +#define KC_WH_R KC_MS_WH_RIGHT +/* Sytem Control */ +#define KC_PWR KC_SYSTEM_POWER +#define KC_SLEP KC_SYSTEM_SLEEP +#define KC_WAKE KC_SYSTEM_WAKE +/* Consumer Page */ +#define KC_MUTE KC_AUDIO_MUTE +#define KC_VOLU KC_AUDIO_VOL_UP +#define KC_VOLD KC_AUDIO_VOL_DOWN +#define KC_MNXT KC_MEDIA_NEXT_TRACK +#define KC_MPRV KC_MEDIA_PREV_TRACK +#define KC_MSTP KC_MEDIA_STOP +#define KC_MPLY KC_MEDIA_PLAY_PAUSE +#define KC_MSEL KC_MEDIA_SELECT +#define KC_MAIL KC_MAIL +#define KC_CALC KC_CALCULATOR +#define KC_MYCM KC_MY_COMPUTER +#define KC_WSCH KC_WWW_SEARCH +#define KC_WHOM KC_WWW_HOME +#define KC_WBAK KC_WWW_BACK +#define KC_WFWD KC_WWW_FORWARD +#define KC_WSTP KC_WWW_STOP +#define KC_WREF KC_WWW_REFRESH +#define KC_WFAV KC_WWW_FAVORITES + + +/* USB HID Keyboard/Keypad Usage(0x07) */ +enum hid_keyboard_keypad_usage { + KC_NO = 0x00, + KC_ROLL_OVER, + KC_POST_FAIL, + KC_UNDEFINED, + KC_A, + KC_B, + KC_C, + KC_D, + KC_E, + KC_F, + KC_G, + KC_H, + KC_I, + KC_J, + KC_K, + KC_L, + KC_M, /* 0x10 */ + KC_N, + KC_O, + KC_P, + KC_Q, + KC_R, + KC_S, + KC_T, + KC_U, + KC_V, + KC_W, + KC_X, + KC_Y, + KC_Z, + KC_1, + KC_2, + KC_3, /* 0x20 */ + KC_4, + KC_5, + KC_6, + KC_7, + KC_8, + KC_9, + KC_0, + KC_ENTER, + KC_ESCAPE, + KC_BSPACE, + KC_TAB, + KC_SPACE, + KC_MINUS, + KC_EQUAL, + KC_LBRACKET, + KC_RBRACKET, /* 0x30 */ + KC_BSLASH, /* \ (and |) */ + KC_NONUS_HASH, /* Non-US # and ~ */ + KC_SCOLON, /* ; (and :) */ + KC_QUOTE, /* ' and " */ + KC_GRAVE, /* Grave accent and tilde */ + KC_COMMA, /* , and < */ + KC_DOT, /* . and > */ + KC_SLASH, /* / and ? */ + KC_CAPSLOCK, + KC_F1, + KC_F2, + KC_F3, + KC_F4, + KC_F5, + KC_F6, + KC_F7, /* 0x40 */ + KC_F8, + KC_F9, + KC_F10, + KC_F11, + KC_F12, + KC_PSCREEN, + KC_SCKLOCK, + KC_PAUSE, + KC_INSERT, + KC_HOME, + KC_PGUP, + KC_DELETE, + KC_END, + KC_PGDOWN, + KC_RIGHT, + KC_LEFT, /* 0x50 */ + KC_DOWN, + KC_UP, + KC_NUMLOCK, + KC_KP_SLASH, + KC_KP_ASTERISK, + KC_KP_MINUS, + KC_KP_PLUS, + KC_KP_ENTER, + KC_KP_1, + KC_KP_2, + KC_KP_3, + KC_KP_4, + KC_KP_5, + KC_KP_6, + KC_KP_7, + KC_KP_8, /* 0x60 */ + KC_KP_9, + KC_KP_0, + KC_KP_DOT, + KC_NONUS_BSLASH, /* Non-US \ and | */ + KC_APPLICATION, + KC_POWER, + KC_KP_EQUAL, + KC_F13, + KC_F14, + KC_F15, + KC_F16, + KC_F17, + KC_F18, + KC_F19, + KC_F20, + KC_F21, /* 0x70 */ + KC_F22, + KC_F23, + KC_F24, + KC_EXECUTE, + KC_HELP, + KC_MENU, + KC_SELECT, + KC_STOP, + KC_AGAIN, + KC_UNDO, + KC_CUT, + KC_COPY, + KC_PASTE, + KC_FIND, + KC__MUTE, + KC__VOLUP, /* 0x80 */ + KC__VOLDOWN, + KC_LOCKING_CAPS, /* locking Caps Lock */ + KC_LOCKING_NUM, /* locking Num Lock */ + KC_LOCKING_SCROLL, /* locking Scroll Lock */ + KC_KP_COMMA, + KC_KP_EQUAL_AS400, /* equal sign on AS/400 */ + KC_INT1, + KC_INT2, + KC_INT3, + KC_INT4, + KC_INT5, + KC_INT6, + KC_INT7, + KC_INT8, + KC_INT9, + KC_LANG1, /* 0x90 */ + KC_LANG2, + KC_LANG3, + KC_LANG4, + KC_LANG5, + KC_LANG6, + KC_LANG7, + KC_LANG8, + KC_LANG9, + KC_ALT_ERASE, + KC_SYSREQ, + KC_CANCEL, + KC_CLEAR, + KC_PRIOR, + KC_RETURN, + KC_SEPARATOR, + KC_OUT, /* 0xA0 */ + KC_OPER, + KC_CLEAR_AGAIN, + KC_CRSEL, + KC_EXSEL, /* 0xA4 */ + + /* NOTE: 0xA5-DF are used for internal special purpose */ + +#if 0 + /* NOTE: Following codes(0xB0-DD) are not used. Leave them for reference. */ + KC_KP_00 = 0xB0, + KC_KP_000, + KC_THOUSANDS_SEPARATOR, + KC_DECIMAL_SEPARATOR, + KC_CURRENCY_UNIT, + KC_CURRENCY_SUB_UNIT, + KC_KP_LPAREN, + KC_KP_RPAREN, + KC_KP_LCBRACKET, /* { */ + KC_KP_RCBRACKET, /* } */ + KC_KP_TAB, + KC_KP_BSPACE, + KC_KP_A, + KC_KP_B, + KC_KP_C, + KC_KP_D, + KC_KP_E, /* 0xC0 */ + KC_KP_F, + KC_KP_XOR, + KC_KP_HAT, + KC_KP_PERC, + KC_KP_LT, + KC_KP_GT, + KC_KP_AND, + KC_KP_LAZYAND, + KC_KP_OR, + KC_KP_LAZYOR, + KC_KP_COLON, + KC_KP_HASH, + KC_KP_SPACE, + KC_KP_ATMARK, + KC_KP_EXCLAMATION, + KC_KP_MEM_STORE, /* 0xD0 */ + KC_KP_MEM_RECALL, + KC_KP_MEM_CLEAR, + KC_KP_MEM_ADD, + KC_KP_MEM_SUB, + KC_KP_MEM_MUL, + KC_KP_MEM_DIV, + KC_KP_PLUS_MINUS, + KC_KP_CLEAR, + KC_KP_CLEAR_ENTRY, + KC_KP_BINARY, + KC_KP_OCTAL, + KC_KP_DECIMAL, + KC_KP_HEXADECIMAL, /* 0xDD */ +#endif + + /* Modifiers */ + KC_LCTRL = 0xE0, + KC_LSHIFT, + KC_LALT, + KC_LGUI, + KC_RCTRL, + KC_RSHIFT, + KC_RALT, + KC_RGUI, + + /* NOTE: 0xE8-FF are used for internal special purpose */ +}; + +/* Special keycodes */ +/* NOTE: 0xA5-DF and 0xE8-FF are used for internal special purpose */ +enum internal_special_keycodes { + /* System Control */ + KC_SYSTEM_POWER = 0xA5, + KC_SYSTEM_SLEEP, + KC_SYSTEM_WAKE, /* 0xA7 */ + /* 0xA8-AF */ + + /* Consumer Page */ + KC_AUDIO_MUTE = 0xB0, + KC_AUDIO_VOL_UP, + KC_AUDIO_VOL_DOWN, + KC_MEDIA_NEXT_TRACK, + KC_MEDIA_PREV_TRACK, + KC_MEDIA_STOP, + KC_MEDIA_PLAY_PAUSE, + KC_MEDIA_SELECT, + KC_MAIL, + KC_CALCULATOR, + KC_MY_COMPUTER, + KC_WWW_SEARCH, + KC_WWW_HOME, + KC_WWW_BACK, + KC_WWW_FORWARD, + KC_WWW_STOP, + KC_WWW_REFRESH, /* 0xC0 */ + KC_WWW_FAVORITES, /* 0xC1 */ + /* 0xC2-DF vacant for future use */ + + /* 0xE0-E7 for Modifiers. DO NOT USE. */ + + /* Layer Switching */ + KC_FN0 = 0xE8, + KC_FN1, + KC_FN2, + KC_FN3, + KC_FN4, + KC_FN5, + KC_FN6, + KC_FN7, /* 0xEF */ + + /* Mousekey */ + KC_MS_UP = 0xF0, + KC_MS_DOWN, + KC_MS_LEFT, + KC_MS_RIGHT, + KC_MS_BTN1, + KC_MS_BTN2, + KC_MS_BTN3, + KC_MS_BTN4, + KC_MS_BTN5, + /* Mousekey wheel */ + KC_MS_WH_UP, + KC_MS_WH_DOWN, + KC_MS_WH_LEFT, + KC_MS_WH_RIGHT, /* 0xFC */ + /* 0xFD-FF vacant for future use */ +}; + +#endif /* KEYCODE_H */ diff --git a/common/mousekey.c b/common/mousekey.c index 222d9e4455..58a6e35bb0 100644 --- a/common/mousekey.c +++ b/common/mousekey.c @@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include <stdint.h> #include <util/delay.h> -#include "usb_keycodes.h" +#include "keycode.h" #include "host.h" #include "timer.h" #include "print.h" @@ -90,36 +90,36 @@ void mousekey_task(void) void mousekey_on(uint8_t code) { - if (code == KB_MS_UP) report.y = MOUSEKEY_MOVE_INIT * -1; - else if (code == KB_MS_DOWN) report.y = MOUSEKEY_MOVE_INIT; - else if (code == KB_MS_LEFT) report.x = MOUSEKEY_MOVE_INIT * -1; - else if (code == KB_MS_RIGHT) report.x = MOUSEKEY_MOVE_INIT; - else if (code == KB_MS_WH_UP) report.v = MOUSEKEY_WHEEL_INIT; - else if (code == KB_MS_WH_DOWN) report.v = MOUSEKEY_WHEEL_INIT * -1; - else if (code == KB_MS_WH_LEFT) report.h = MOUSEKEY_WHEEL_INIT * -1; - else if (code == KB_MS_WH_RIGHT) report.h = MOUSEKEY_WHEEL_INIT; - else if (code == KB_MS_BTN1) report.buttons |= MOUSE_BTN1; - else if (code == KB_MS_BTN2) report.buttons |= MOUSE_BTN2; - else if (code == KB_MS_BTN3) report.buttons |= MOUSE_BTN3; - else if (code == KB_MS_BTN4) report.buttons |= MOUSE_BTN4; - else if (code == KB_MS_BTN5) report.buttons |= MOUSE_BTN5; + if (code == KC_MS_UP) report.y = MOUSEKEY_MOVE_INIT * -1; + else if (code == KC_MS_DOWN) report.y = MOUSEKEY_MOVE_INIT; + else if (code == KC_MS_LEFT) report.x = MOUSEKEY_MOVE_INIT * -1; + else if (code == KC_MS_RIGHT) report.x = MOUSEKEY_MOVE_INIT; + else if (code == KC_MS_WH_UP) report.v = MOUSEKEY_WHEEL_INIT; + else if (code == KC_MS_WH_DOWN) report.v = MOUSEKEY_WHEEL_INIT * -1; + else if (code == KC_MS_WH_LEFT) report.h = MOUSEKEY_WHEEL_INIT * -1; + else if (code == KC_MS_WH_RIGHT) report.h = MOUSEKEY_WHEEL_INIT; + else if (code == KC_MS_BTN1) report.buttons |= MOUSE_BTN1; + else if (code == KC_MS_BTN2) report.buttons |= MOUSE_BTN2; + else if (code == KC_MS_BTN3) report.buttons |= MOUSE_BTN3; + else if (code == KC_MS_BTN4) report.buttons |= MOUSE_BTN4; + else if (code == KC_MS_BTN5) report.buttons |= MOUSE_BTN5; } void mousekey_off(uint8_t code) { - if (code == KB_MS_UP && report.y < 0) report.y = 0; - else if (code == KB_MS_DOWN && report.y > 0) report.y = 0; - else if (code == KB_MS_LEFT && report.x < 0) report.x = 0; - else if (code == KB_MS_RIGHT && report.x > 0) report.x = 0; - else if (code == KB_MS_WH_UP && report.v > 0) report.v = 0; - else if (code == KB_MS_WH_DOWN && report.v < 0) report.v = 0; - else if (code == KB_MS_WH_LEFT && report.h < 0) report.h = 0; - else if (code == KB_MS_WH_RIGHT && report.h > 0) report.h = 0; - else if (code == KB_MS_BTN1) report.buttons &= ~MOUSE_BTN1; - else if (code == KB_MS_BTN2) report.buttons &= ~MOUSE_BTN2; - else if (code == KB_MS_BTN3) report.buttons &= ~MOUSE_BTN3; - else if (code == KB_MS_BTN4) report.buttons &= ~MOUSE_BTN4; - else if (code == KB_MS_BTN5) report.buttons &= ~MOUSE_BTN5; + if (code == KC_MS_UP && report.y < 0) report.y = 0; + else if (code == KC_MS_DOWN && report.y > 0) report.y = 0; + else if (code == KC_MS_LEFT && report.x < 0) report.x = 0; + else if (code == KC_MS_RIGHT && report.x > 0) report.x = 0; + else if (code == KC_MS_WH_UP && report.v > 0) report.v = 0; + else if (code == KC_MS_WH_DOWN && report.v < 0) report.v = 0; + else if (code == KC_MS_WH_LEFT && report.h < 0) report.h = 0; + else if (code == KC_MS_WH_RIGHT && report.h > 0) report.h = 0; + else if (code == KC_MS_BTN1) report.buttons &= ~MOUSE_BTN1; + else if (code == KC_MS_BTN2) report.buttons &= ~MOUSE_BTN2; + else if (code == KC_MS_BTN3) report.buttons &= ~MOUSE_BTN3; + else if (code == KC_MS_BTN4) report.buttons &= ~MOUSE_BTN4; + else if (code == KC_MS_BTN5) report.buttons &= ~MOUSE_BTN5; if (report.x == 0 && report.y == 0 && report.v == 0 && report.h == 0) mousekey_repeat = 0; diff --git a/common/usb_keycodes.h b/common/usb_keycodes.h deleted file mode 100644 index 6a44374189..0000000000 --- a/common/usb_keycodes.h +++ /dev/null @@ -1,436 +0,0 @@ -/* -Copyright 2011 Jun Wako <wakojun@gmail.com> - -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 <http://www.gnu.org/licenses/>. -*/ - -/* - * Key codes: HID Keyboard/Keypad Page(0x07) - * http://www.usb.org/developers/devclass_docs/Hut1_12.pdf - */ -#ifndef USB_KEYCODES_H -#define USB_KEYCODES_H - - -#define IS_ERROR(code) (KB_ROLL_OVER <= (code) && (code) <= KB_UNDEFINED) -#define IS_ANY(code) (KB_A <= (code) && (code) <= 0xFF) -#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 IS_SPECIAL(code) ((0xB0 <= (code) && (code) <= 0xDF) || (0xE8 <= (code) && (code) <= 0xFF)) -#define IS_CONSUMER(code) (KB_MUTE <= (code) && (code) <= KB_WFAV) -#define IS_SYSTEM(code) (KB_POWER <= (code) && (code) <= KB_WAKE) - -#define MOD_BIT(code) (1<<((code) & 0x07)) -#define FN_BIT(code) (1<<((code) - KB_FN0)) -#define FN_INDEX(code) ((code) - KB_FN0) - - -/* Short names */ -#define KB_LCTL KB_LCTRL -#define KB_RCTL KB_RCTRL -#define KB_LSFT KB_LSHIFT -#define KB_RSFT KB_RSHIFT -#define KB_ESC KB_ESCAPE -#define KB_BSPC KB_BSPACE -#define KB_ENT KB_ENTER -#define KB_DEL KB_DELETE -#define KB_INS KB_INSERT -#define KB_CAPS KB_CAPSLOCK -#define KB_RGHT KB_RIGHT -#define KB_PGDN KB_PGDOWN -#define KB_PSCR KB_PSCREEN -#define KB_SLCK KB_SCKLOCK -#define KB_PAUS KB_PAUSE -#define KB_BRK KB_PAUSE -#define KB_NLCK KB_NUMLOCK -#define KB_SPC KB_SPACE -#define KB_MINS KB_MINUS -#define KB_EQL KB_EQUAL -#define KB_GRV KB_GRAVE -#define KB_RBRC KB_RBRACKET -#define KB_LBRC KB_LBRACKET -#define KB_COMM KB_COMMA -#define KB_BSLS KB_BSLASH -#define KB_SLSH KB_SLASH -#define KB_SCLN KB_SCOLON -#define KB_QUOT KB_QUOTE -#define KB_APP KB_APPLICATION -#define KB_NUHS KB_NONUS_HASH -#define KB_NUBS KB_NONUS_BSLASH -#define KB_ERAS KB_ALT_ERASE, -#define KB_CLR KB_CLEAR -/* 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_PCMM KB_KP_COMMA -#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 */ -/* NOTE: 0xA5-DF and 0xE8-FF can be used for internal special purpose */ -enum special_keycodes { - /* System Control */ - KB_SYSTEM_POWER = 0xA5, - KB_SYSTEM_SLEEP, - KB_SYSTEM_WAKE, /* 0xA7 */ - /* 0xA8-AF */ - - /* Consumer Page */ - KB_AUDIO_MUTE = 0xB0, - 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, - KB_WWW_FORWARD, - KB_WWW_STOP, - KB_WWW_REFRESH, /* 0xC0 */ - KB_WWW_FAVORITES, /* 0xC1 */ - /* 0xC2-DF vacant for future use */ - - /* 0xE0-E7 for Modifiers. DO NOT USE. */ - - /* Layer Switching */ - KB_FN0 = 0xE8, - KB_FN1, - KB_FN2, - KB_FN3, - KB_FN4, - KB_FN5, - KB_FN6, - KB_FN7, /* 0xEF */ - - /* 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, /* 0xFC */ - /* 0xFD-FF vacant for future use */ -}; - -/* USB HID Keyboard/Keypad Usage(0x07) */ -enum keycodes { - KB_NO = 0x00, - KB_ROLL_OVER, - KB_POST_FAIL, - KB_UNDEFINED, - KB_A, - KB_B, - KB_C, - KB_D, - KB_E, - KB_F, - KB_G, - KB_H, - KB_I, - KB_J, - KB_K, - KB_L, - KB_M, /* 0x10 */ - KB_N, - KB_O, - KB_P, - KB_Q, - KB_R, - KB_S, - KB_T, - KB_U, - KB_V, - KB_W, - KB_X, - KB_Y, - KB_Z, - KB_1, - KB_2, - KB_3, /* 0x20 */ - KB_4, - KB_5, - KB_6, - KB_7, - KB_8, - KB_9, - KB_0, - KB_ENTER, - KB_ESCAPE, - KB_BSPACE, - KB_TAB, - KB_SPACE, - KB_MINUS, - KB_EQUAL, - 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, - KB_F3, - KB_F4, - KB_F5, - KB_F6, - KB_F7, /* 0x40 */ - KB_F8, - KB_F9, - KB_F10, - KB_F11, - KB_F12, - KB_PSCREEN, - KB_SCKLOCK, - KB_PAUSE, - KB_INSERT, - KB_HOME, - KB_PGUP, - KB_DELETE, - KB_END, - KB_PGDOWN, - KB_RIGHT, - KB_LEFT, /* 0x50 */ - KB_DOWN, - KB_UP, - KB_NUMLOCK, - 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, - KB_KP_EQUAL, - KB_F13, - KB_F14, - KB_F15, - KB_F16, - KB_F17, - KB_F18, - KB_F19, - KB_F20, - KB_F21, /* 0x70 */ - KB_F22, - KB_F23, - KB_F24, - KB_EXECUTE, - KB_HELP, - KB_MENU, - KB_SELECT, - KB_STOP, - KB_AGAIN, - KB_UNDO, - KB_CUT, - 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_KP_COMMA, - KB_KP_EQUAL_AS400, /* equal sign on AS/400 */ - KB_INT1, - KB_INT2, - KB_INT3, - KB_INT4, - KB_INT5, - KB_INT6, - KB_INT7, - KB_INT8, - KB_INT9, - KB_LANG1, /* 0x90 */ - KB_LANG2, - KB_LANG3, - KB_LANG4, - KB_LANG5, - KB_LANG6, - KB_LANG7, - KB_LANG8, - KB_LANG9, - KB_ALT_ERASE, - KB_SYSREQ, - KB_CANCEL, - |