summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/command.c38
-rw-r--r--common/host.c2
-rw-r--r--common/keyboard.c44
-rw-r--r--common/keycode.h441
-rw-r--r--common/mousekey.c54
-rw-r--r--common/usb_keycodes.h436
-rw-r--r--keyboard/hhkb/config.h2
-rw-r--r--keyboard/hhkb/keymap.c51
8 files changed, 536 insertions, 532 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,
-