make astyle

pull/135/head
Jesse Vincent 8 years ago
parent 9825e4057a
commit d75939d456
No known key found for this signature in database
GPG Key ID: 122F5DF7108E4046

@ -57,13 +57,13 @@
Key_KeymapNext_Momentary, Key_KeymapNext_Momentary \
)
const Key keymaps[][ROWS][COLS] PROGMEM = {
QWERTY,
GENERIC_FN2,
NUMPAD
const Key keymaps[][ROWS][COLS] PROGMEM = {
QWERTY,
GENERIC_FN2,
NUMPAD
};
};
static LEDSolidColor solidRed (60, 0, 0);
static LEDSolidColor solidOrange (60, 20, 0);

@ -49,93 +49,91 @@ Kaleidoscope_::use(KaleidoscopePlugin *plugin, ...) {
void
Kaleidoscope_::replaceEventHandlerHook(eventHandlerHook oldHook, eventHandlerHook newHook) {
for (byte i = 0; i < HOOK_MAX; i++) {
if (eventHandlers[i] == oldHook) {
eventHandlers[i] = newHook;
return;
for (byte i = 0; i < HOOK_MAX; i++) {
if (eventHandlers[i] == oldHook) {
eventHandlers[i] = newHook;
return;
}
}
}
}
void
Kaleidoscope_::appendEventHandlerHook (eventHandlerHook hook) {
replaceEventHandlerHook((eventHandlerHook)NULL, hook);
replaceEventHandlerHook((eventHandlerHook)NULL, hook);
}
void
Kaleidoscope_::useEventHandlerHook (eventHandlerHook hook) {
for (byte i = 0; i < HOOK_MAX; i++) {
if (eventHandlers[i] == hook)
return;
}
appendEventHandlerHook(hook);
for (byte i = 0; i < HOOK_MAX; i++) {
if (eventHandlers[i] == hook)
return;
}
appendEventHandlerHook(hook);
}
void
Kaleidoscope_::replaceLoopHook(loopHook oldHook, loopHook newHook) {
for (byte i = 0; i < HOOK_MAX; i++) {
if (loopHooks[i] == oldHook) {
loopHooks[i] = newHook;
return;
for (byte i = 0; i < HOOK_MAX; i++) {
if (loopHooks[i] == oldHook) {
loopHooks[i] = newHook;
return;
}
}
}
}
void
Kaleidoscope_::appendLoopHook(loopHook hook) {
replaceLoopHook((loopHook)NULL, hook);
replaceLoopHook((loopHook)NULL, hook);
}
void
Kaleidoscope_::useLoopHook(loopHook hook) {
for (byte i = 0; i < HOOK_MAX; i++) {
if (loopHooks[i] == hook)
return;
}
appendLoopHook (hook);
for (byte i = 0; i < HOOK_MAX; i++) {
if (loopHooks[i] == hook)
return;
}
appendLoopHook (hook);
}
bool
Kaleidoscope_::focusHook(const char *command) {
enum {
ON,
OFF,
GETSTATE,
} subCommand;
if (strncmp_P(command, PSTR("layer."), 6) != 0)
return false;
if (strcmp_P (command + 6, PSTR("on")) == 0)
subCommand = ON;
else if (strcmp_P(command + 6, PSTR("off")) == 0)
subCommand = OFF;
else if (strcmp_P(command + 6, PSTR("getState")) == 0)
subCommand = GETSTATE;
else
return false;
switch (subCommand) {
case ON:
{
uint8_t layer = Serial.parseInt();
Layer.on(layer);
break;
enum {
ON,
OFF,
GETSTATE,
} subCommand;
if (strncmp_P(command, PSTR("layer."), 6) != 0)
return false;
if (strcmp_P (command + 6, PSTR("on")) == 0)
subCommand = ON;
else if (strcmp_P(command + 6, PSTR("off")) == 0)
subCommand = OFF;
else if (strcmp_P(command + 6, PSTR("getState")) == 0)
subCommand = GETSTATE;
else
return false;
switch (subCommand) {
case ON: {
uint8_t layer = Serial.parseInt();
Layer.on(layer);
break;
}
case OFF:
{
uint8_t layer = Serial.parseInt();
Layer.off(layer);
break;
case OFF: {
uint8_t layer = Serial.parseInt();
Layer.off(layer);
break;
}
case GETSTATE:
Serial.println(Layer.getLayerState(), BIN);
break;
}
case GETSTATE:
Serial.println(Layer.getLayerState(), BIN);
break;
}
return true;
return true;
}
Kaleidoscope_ Kaleidoscope;

@ -52,15 +52,17 @@ extern HARDWARE_IMPLEMENTATION KeyboardHardware;
})
class KaleidoscopePlugin {
public:
virtual void begin(void) = 0;
public:
virtual void begin(void) = 0;
};
class Kaleidoscope_ {
public:
Kaleidoscope_(void);
void setup(const byte keymap_count) { setup(); };
void setup(const byte keymap_count) {
setup();
};
void setup(void);
void loop(void);
void use(KaleidoscopePlugin *plugin, ...) __attribute__((sentinel));

@ -87,7 +87,7 @@ typedef union Key_ {
*/
#define HID_TYPE_CL B00000000
#define HID_TYPE_LC B00000100
#define HID_TYPE_LC B00000100
#define HID_TYPE_NARY B00001000
#define HID_TYPE_OOC B00001100
#define HID_TYPE_OSC B00010000

@ -1,4 +1,4 @@
#pragma once
#pragma once
#define Consumer_NumericKeyPad (Key) { HID_CONSUMER_NUMERIC_KEY_PAD, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_NARY }
@ -86,7 +86,7 @@
#define Consumer_Eject (Key) { HID_CONSUMER_EJECT, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_OSC }
#define Consumer_RandomPlay (Key) { HID_CONSUMER_RANDOM_PLAY, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_OOC }
#define Consumer_SelectDisc (Key) { HID_CONSUMER_SELECT_DISC, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_NARY }
#define Consumer_EnterDiscMc (Key) { HID_CONSUMER_ENTER_DISC_MC, KEY_FLAGS | SYNTHETIC|IS_CONSUMER }
#define Consumer_EnterDiscMc (Key) { HID_CONSUMER_ENTER_DISC_MC, KEY_FLAGS | SYNTHETIC|IS_CONSUMER }
#define Consumer_Repeat (Key) { HID_CONSUMER_REPEAT, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_OSC }
#define Consumer_Tracking (Key) { HID_CONSUMER_TRACKING, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_LC }
#define Consumer_Track_Normal (Key) { HID_CONSUMER_TRACK_NORMAL, KEY_FLAGS | SYNTHETIC|IS_CONSUMER | HID_TYPE_OSC }

@ -2,227 +2,227 @@
// Keyboard HID mappings
// Reserved (no_event_indicated)
#define Key_NoEvent (Key) { HID_KEYBOARD_NO_EVENT, KEY_FLAGS }
#define Key_ErrorRollover (Key) { HID_KEYBOARD_ERROR_ROLLOVER, KEY_FLAGS }
#define Key_PostFail (Key) { HID_KEYBOARD_POST_FAIL, KEY_FLAGS }
#define Key_ErrorUndefined (Key) { HID_KEYBOARD_ERROR_UNDEFINED, KEY_FLAGS }
#define Key_A (Key) { HID_KEYBOARD_A_AND_A, KEY_FLAGS }
#define Key_B (Key) { HID_KEYBOARD_B_AND_B, KEY_FLAGS }
#define Key_C (Key) { HID_KEYBOARD_C_AND_C, KEY_FLAGS }
#define Key_D (Key) { HID_KEYBOARD_D_AND_D, KEY_FLAGS }
#define Key_E (Key) { HID_KEYBOARD_E_AND_E, KEY_FLAGS }
#define Key_F (Key) { HID_KEYBOARD_F_AND_F, KEY_FLAGS }
#define Key_G (Key) { HID_KEYBOARD_G_AND_G, KEY_FLAGS }
#define Key_H (Key) { HID_KEYBOARD_H_AND_H, KEY_FLAGS }
#define Key_I (Key) { HID_KEYBOARD_I_AND_I, KEY_FLAGS }
#define Key_J (Key) { HID_KEYBOARD_J_AND_J, KEY_FLAGS }
#define Key_K (Key) { HID_KEYBOARD_K_AND_K, KEY_FLAGS }
#define Key_L (Key) { HID_KEYBOARD_L_AND_L, KEY_FLAGS }
#define Key_M (Key) { HID_KEYBOARD_M_AND_M, KEY_FLAGS }
#define Key_N (Key) { HID_KEYBOARD_N_AND_N, KEY_FLAGS }
#define Key_O (Key) { HID_KEYBOARD_O_AND_O, KEY_FLAGS }
#define Key_P (Key) { HID_KEYBOARD_P_AND_P, KEY_FLAGS }
#define Key_Q (Key) { HID_KEYBOARD_Q_AND_Q, KEY_FLAGS }
#define Key_R (Key) { HID_KEYBOARD_R_AND_R, KEY_FLAGS }
#define Key_S (Key) { HID_KEYBOARD_S_AND_S, KEY_FLAGS }
#define Key_T (Key) { HID_KEYBOARD_T_AND_T, KEY_FLAGS }
#define Key_U (Key) { HID_KEYBOARD_U_AND_U, KEY_FLAGS }
#define Key_V (Key) { HID_KEYBOARD_V_AND_V, KEY_FLAGS }
#define Key_W (Key) { HID_KEYBOARD_W_AND_W, KEY_FLAGS }
#define Key_X (Key) { HID_KEYBOARD_X_AND_X, KEY_FLAGS }
#define Key_Y (Key) { HID_KEYBOARD_Y_AND_Y, KEY_FLAGS }
#define Key_Z (Key) { HID_KEYBOARD_Z_AND_Z, KEY_FLAGS }
#define Key_1 (Key) { HID_KEYBOARD_1_AND_EXCLAMATION_POINT, KEY_FLAGS }
#define Key_2 (Key) { HID_KEYBOARD_2_AND_AT, KEY_FLAGS }
#define Key_3 (Key) { HID_KEYBOARD_3_AND_POUND, KEY_FLAGS }
#define Key_4 (Key) { HID_KEYBOARD_4_AND_DOLLAR, KEY_FLAGS }
#define Key_5 (Key) { HID_KEYBOARD_5_AND_PERCENT, KEY_FLAGS }
#define Key_6 (Key) { HID_KEYBOARD_6_AND_CARAT, KEY_FLAGS }
#define Key_7 (Key) { HID_KEYBOARD_7_AND_AMPERSAND, KEY_FLAGS }
#define Key_8 (Key) { HID_KEYBOARD_8_AND_ASTERISK, KEY_FLAGS }
#define Key_9 (Key) { HID_KEYBOARD_9_AND_LEFT_PAREN, KEY_FLAGS }
#define Key_0 (Key) { HID_KEYBOARD_0_AND_RIGHT_PAREN, KEY_FLAGS }
// Reserved (no_event_indicated)
#define Key_NoEvent (Key) { HID_KEYBOARD_NO_EVENT, KEY_FLAGS }
#define Key_ErrorRollover (Key) { HID_KEYBOARD_ERROR_ROLLOVER, KEY_FLAGS }
#define Key_PostFail (Key) { HID_KEYBOARD_POST_FAIL, KEY_FLAGS }
#define Key_ErrorUndefined (Key) { HID_KEYBOARD_ERROR_UNDEFINED, KEY_FLAGS }
#define Key_A (Key) { HID_KEYBOARD_A_AND_A, KEY_FLAGS }
#define Key_B (Key) { HID_KEYBOARD_B_AND_B, KEY_FLAGS }
#define Key_C (Key) { HID_KEYBOARD_C_AND_C, KEY_FLAGS }
#define Key_D (Key) { HID_KEYBOARD_D_AND_D, KEY_FLAGS }
#define Key_E (Key) { HID_KEYBOARD_E_AND_E, KEY_FLAGS }
#define Key_F (Key) { HID_KEYBOARD_F_AND_F, KEY_FLAGS }
#define Key_G (Key) { HID_KEYBOARD_G_AND_G, KEY_FLAGS }
#define Key_H (Key) { HID_KEYBOARD_H_AND_H, KEY_FLAGS }
#define Key_I (Key) { HID_KEYBOARD_I_AND_I, KEY_FLAGS }
#define Key_J (Key) { HID_KEYBOARD_J_AND_J, KEY_FLAGS }
#define Key_K (Key) { HID_KEYBOARD_K_AND_K, KEY_FLAGS }
#define Key_L (Key) { HID_KEYBOARD_L_AND_L, KEY_FLAGS }
#define Key_M (Key) { HID_KEYBOARD_M_AND_M, KEY_FLAGS }
#define Key_N (Key) { HID_KEYBOARD_N_AND_N, KEY_FLAGS }
#define Key_O (Key) { HID_KEYBOARD_O_AND_O, KEY_FLAGS }
#define Key_P (Key) { HID_KEYBOARD_P_AND_P, KEY_FLAGS }
#define Key_Q (Key) { HID_KEYBOARD_Q_AND_Q, KEY_FLAGS }
#define Key_R (Key) { HID_KEYBOARD_R_AND_R, KEY_FLAGS }
#define Key_S (Key) { HID_KEYBOARD_S_AND_S, KEY_FLAGS }
#define Key_T (Key) { HID_KEYBOARD_T_AND_T, KEY_FLAGS }
#define Key_U (Key) { HID_KEYBOARD_U_AND_U, KEY_FLAGS }
#define Key_V (Key) { HID_KEYBOARD_V_AND_V, KEY_FLAGS }
#define Key_W (Key) { HID_KEYBOARD_W_AND_W, KEY_FLAGS }
#define Key_X (Key) { HID_KEYBOARD_X_AND_X, KEY_FLAGS }
#define Key_Y (Key) { HID_KEYBOARD_Y_AND_Y, KEY_FLAGS }
#define Key_Z (Key) { HID_KEYBOARD_Z_AND_Z, KEY_FLAGS }
#define Key_1 (Key) { HID_KEYBOARD_1_AND_EXCLAMATION_POINT, KEY_FLAGS }
#define Key_2 (Key) { HID_KEYBOARD_2_AND_AT, KEY_FLAGS }
#define Key_3 (Key) { HID_KEYBOARD_3_AND_POUND, KEY_FLAGS }
#define Key_4 (Key) { HID_KEYBOARD_4_AND_DOLLAR, KEY_FLAGS }
#define Key_5 (Key) { HID_KEYBOARD_5_AND_PERCENT, KEY_FLAGS }
#define Key_6 (Key) { HID_KEYBOARD_6_AND_CARAT, KEY_FLAGS }
#define Key_7 (Key) { HID_KEYBOARD_7_AND_AMPERSAND, KEY_FLAGS }
#define Key_8 (Key) { HID_KEYBOARD_8_AND_ASTERISK, KEY_FLAGS }
#define Key_9 (Key) { HID_KEYBOARD_9_AND_LEFT_PAREN, KEY_FLAGS }
#define Key_0 (Key) { HID_KEYBOARD_0_AND_RIGHT_PAREN, KEY_FLAGS }
#define Key_Enter (Key) { HID_KEYBOARD_ENTER, KEY_FLAGS } // (MARKED AS ENTER_SLASH_RETURN)
#define Key_Escape (Key) { HID_KEYBOARD_ESCAPE, KEY_FLAGS }
#define Key_Escape (Key) { HID_KEYBOARD_ESCAPE, KEY_FLAGS }
#define Key_Backspace (Key) { HID_KEYBOARD_DELETE, KEY_FLAGS } // (BACKSPACE)
#define Key_Tab (Key) { HID_KEYBOARD_TAB, KEY_FLAGS }
#define Key_Spacebar (Key) { HID_KEYBOARD_SPACEBAR, KEY_FLAGS }
#define Key_Tab (Key) { HID_KEYBOARD_TAB, KEY_FLAGS }
#define Key_Spacebar (Key) { HID_KEYBOARD_SPACEBAR, KEY_FLAGS }
#define Key_Minus (Key) { HID_KEYBOARD_MINUS_AND_UNDERSCORE, KEY_FLAGS } // (UNDERSCORE)
#define Key_Equals (Key) { HID_KEYBOARD_EQUALS_AND_PLUS, KEY_FLAGS }
#define Key_LeftBracket (Key) { HID_KEYBOARD_LEFT_BRACKET_AND_LEFT_CURLY_BRACE, KEY_FLAGS }
#define Key_RightBracket (Key) { HID_KEYBOARD_RIGHT_BRACKET_AND_RIGHT_CURLY_BRACE, KEY_FLAGS }
#define Key_Backslash (Key) { HID_KEYBOARD_BACKSLASH_AND_PIPE, KEY_FLAGS }
#define Key_NonUsPound (Key) { HID_KEYBOARD_NON_US_POUND_AND_TILDE, KEY_FLAGS }
#define Key_Semicolon (Key) { HID_KEYBOARD_SEMICOLON_AND_COLON, KEY_FLAGS }
#define Key_Quote (Key) { HID_KEYBOARD_QUOTE_AND_DOUBLEQUOTE, KEY_FLAGS }
#define Key_Backtick (Key) { HID_KEYBOARD_GRAVE_ACCENT_AND_TILDE, KEY_FLAGS }
#define Key_Comma (Key) { HID_KEYBOARD_COMMA_AND_LESS_THAN, KEY_FLAGS }
#define Key_Period (Key) { HID_KEYBOARD_PERIOD_AND_GREATER_THAN, KEY_FLAGS }
#define Key_Slash (Key) { HID_KEYBOARD_SLASH_AND_QUESTION_MARK, KEY_FLAGS }
#define Key_CapsLock (Key) { HID_KEYBOARD_CAPS_LOCK, KEY_FLAGS }
#define Key_F1 (Key) { HID_KEYBOARD_F1, KEY_FLAGS }
#define Key_F2 (Key) { HID_KEYBOARD_F2, KEY_FLAGS }
#define Key_F3 (Key) { HID_KEYBOARD_F3, KEY_FLAGS }
#define Key_F4 (Key) { HID_KEYBOARD_F4, KEY_FLAGS }
#define Key_F5 (Key) { HID_KEYBOARD_F5, KEY_FLAGS }
#define Key_F6 (Key) { HID_KEYBOARD_F6, KEY_FLAGS }
#define Key_F7 (Key) { HID_KEYBOARD_F7, KEY_FLAGS }
#define Key_F8 (Key) { HID_KEYBOARD_F8, KEY_FLAGS }
#define Key_F9 (Key) { HID_KEYBOARD_F9, KEY_FLAGS }
#define Key_F10 (Key) { HID_KEYBOARD_F10, KEY_FLAGS }
#define Key_F11 (Key) { HID_KEYBOARD_F11, KEY_FLAGS }
#define Key_F12 (Key) { HID_KEYBOARD_F12, KEY_FLAGS }
#define Key_PrintScreen (Key) { HID_KEYBOARD_PRINTSCREEN, KEY_FLAGS }
#define Key_ScrollLock (Key) { HID_KEYBOARD_SCROLL_LOCK, KEY_FLAGS }
#define Key_Pause (Key) { HID_KEYBOARD_PAUSE, KEY_FLAGS }
#define Key_Insert (Key) { HID_KEYBOARD_INSERT, KEY_FLAGS }
#define Key_Home (Key) { HID_KEYBOARD_HOME, KEY_FLAGS }
#define Key_PageUp (Key) { HID_KEYBOARD_PAGE_UP, KEY_FLAGS }
#define Key_Delete (Key) { HID_KEYBOARD_DELETE_FORWARD, KEY_FLAGS }
#define Key_End (Key) { HID_KEYBOARD_END, KEY_FLAGS }
#define Key_PageDown (Key) { HID_KEYBOARD_PAGE_DOWN, KEY_FLAGS }
#define Key_RightArrow (Key) { HID_KEYBOARD_RIGHT_ARROW, KEY_FLAGS }
#define Key_LeftArrow (Key) { HID_KEYBOARD_LEFT_ARROW, KEY_FLAGS }
#define Key_DownArrow (Key) { HID_KEYBOARD_DOWN_ARROW, KEY_FLAGS }
#define Key_UpArrow (Key) { HID_KEYBOARD_UP_ARROW, KEY_FLAGS }
#define Key_KeypadNumLock (Key) { HID_KEYPAD_NUM_LOCK_AND_CLEAR, KEY_FLAGS }
#define Key_KeypadDivide (Key) { HID_KEYPAD_DIVIDE, KEY_FLAGS }
#define Key_KeypadMultiply (Key) { HID_KEYPAD_MULTIPLY, KEY_FLAGS }
#define Key_KeypadSubtract (Key) { HID_KEYPAD_SUBTRACT, KEY_FLAGS }
#define Key_KeypadAdd (Key) { HID_KEYPAD_ADD, KEY_FLAGS }
#define Key_KeypadEnter (Key) { HID_KEYPAD_ENTER, KEY_FLAGS }
#define Key_Keypad1 (Key) { HID_KEYPAD_1_AND_END, KEY_FLAGS }
#define Key_Keypad2 (Key) { HID_KEYPAD_2_AND_DOWN_ARROW, KEY_FLAGS }
#define Key_Keypad3 (Key) { HID_KEYPAD_3_AND_PAGE_DOWN, KEY_FLAGS }
#define Key_Keypad4 (Key) { HID_KEYPAD_4_AND_LEFT_ARROW, KEY_FLAGS }
#define Key_Keypad5 (Key) { HID_KEYPAD_5, KEY_FLAGS }
#define Key_Keypad6 (Key) { HID_KEYPAD_6_AND_RIGHT_ARROW, KEY_FLAGS }
#define Key_Keypad7 (Key) { HID_KEYPAD_7_AND_HOME, KEY_FLAGS }
#define Key_Keypad8 (Key) { HID_KEYPAD_8_AND_UP_ARROW, KEY_FLAGS }
#define Key_Keypad9 (Key) { HID_KEYPAD_9_AND_PAGE_UP, KEY_FLAGS }
#define Key_Keypad0 (Key) { HID_KEYPAD_0_AND_INSERT, KEY_FLAGS }
#define Key_KeypadDot (Key) { HID_KEYPAD_PERIOD_AND_DELETE, KEY_FLAGS }
#define Key_NonUsBackslashAndPipe (Key) { HID_KEYBOARD_NON_US_BACKSLASH_AND_PIPE, KEY_FLAGS }
#define Key_PcApplication (Key) { HID_KEYBOARD_APPLICATION, KEY_FLAGS }
#define Key_Power (Key) { HID_KEYBOARD_POWER, KEY_FLAGS }
#define Key_KeypadEquals (Key) { HID_KEYPAD_EQUALS, KEY_FLAGS }
#define Key_F13 (Key) { HID_KEYBOARD_F13, KEY_FLAGS }
#define Key_F14 (Key) { HID_KEYBOARD_F14, KEY_FLAGS }
#define Key_F15 (Key) { HID_KEYBOARD_F15, KEY_FLAGS }
#define Key_F16 (Key) { HID_KEYBOARD_F16, KEY_FLAGS }
#define Key_F17 (Key) { HID_KEYBOARD_F17, KEY_FLAGS }
#define Key_F18 (Key) { HID_KEYBOARD_F18, KEY_FLAGS }
#define Key_F19 (Key) { HID_KEYBOARD_F19, KEY_FLAGS }
#define Key_F20 (Key) { HID_KEYBOARD_F20, KEY_FLAGS }
#define Key_F21 (Key) { HID_KEYBOARD_F21, KEY_FLAGS }
#define Key_F22 (Key) { HID_KEYBOARD_F22, KEY_FLAGS }
#define Key_F23 (Key) { HID_KEYBOARD_F23, KEY_FLAGS }
#define Key_F24 (Key) { HID_KEYBOARD_F24, KEY_FLAGS }
#define Key_Execute (Key) { HID_KEYBOARD_EXECUTE, KEY_FLAGS }
#define Key_Help (Key) { HID_KEYBOARD_HELP, KEY_FLAGS }
#define Key_Menu (Key) { HID_KEYBOARD_MENU, KEY_FLAGS }
#define Key_Select (Key) { HID_KEYBOARD_SELECT, KEY_FLAGS }
#define Key_Stop (Key) { HID_KEYBOARD_STOP, KEY_FLAGS }
#define Key_Again (Key) { HID_KEYBOARD_AGAIN, KEY_FLAGS }
#define Key_Undo (Key) { HID_KEYBOARD_UNDO, KEY_FLAGS }
#define Key_Cut (Key) { HID_KEYBOARD_CUT, KEY_FLAGS }
#define Key_Copy (Key) { HID_KEYBOARD_COPY, KEY_FLAGS }
#define Key_Paste (Key) { HID_KEYBOARD_PASTE, KEY_FLAGS }
#define Key_Find (Key) { HID_KEYBOARD_FIND, KEY_FLAGS }
#define Key_Mute (Key) { HID_KEYBOARD_MUTE, KEY_FLAGS }
#define Key_VolumeUp (Key) { HID_KEYBOARD_VOLUME_UP, KEY_FLAGS }
#define Key_VolumeDown (Key) { HID_KEYBOARD_VOLUME_DOWN, KEY_FLAGS }
#define Key_LockingCapsLock (Key) { HID_KEYBOARD_LOCKING_CAPS_LOCK, KEY_FLAGS }
#define Key_LockingNumLock (Key) { HID_KEYBOARD_LOCKING_NUM_LOCK, KEY_FLAGS }
#define Key_LockingScrollLock (Key) { HID_KEYBOARD_LOCKING_SCROLL_LOCK, KEY_FLAGS }
#define Key_KeypadComma (Key) { HID_KEYPAD_COMMA, KEY_FLAGS }
#define Key_KeypadEqualSign (Key) { HID_KEYPAD_EQUAL_SIGN, KEY_FLAGS }
#define Key_International1 (Key) { HID_KEYBOARD_INTERNATIONAL1, KEY_FLAGS }
#define Key_International2 (Key) { HID_KEYBOARD_INTERNATIONAL2, KEY_FLAGS }
#define Key_International3 (Key) { HID_KEYBOARD_INTERNATIONAL3, KEY_FLAGS }
#define Key_International4 (Key) { HID_KEYBOARD_INTERNATIONAL4, KEY_FLAGS }
#define Key_International5 (Key) { HID_KEYBOARD_INTERNATIONAL5, KEY_FLAGS }
#define Key_International6 (Key) { HID_KEYBOARD_INTERNATIONAL6, KEY_FLAGS }
#define Key_International7 (Key) { HID_KEYBOARD_INTERNATIONAL7, KEY_FLAGS }
#define Key_International8 (Key) { HID_KEYBOARD_INTERNATIONAL8, KEY_FLAGS }
#define Key_International9 (Key) { HID_KEYBOARD_INTERNATIONAL9, KEY_FLAGS }
#define Key_Lang1 (Key) { HID_KEYBOARD_LANG1, KEY_FLAGS }
#define Key_Lang2 (Key) { HID_KEYBOARD_LANG2, KEY_FLAGS }
#define Key_Lang3 (Key) { HID_KEYBOARD_LANG3, KEY_FLAGS }
#define Key_Lang4 (Key) { HID_KEYBOARD_LANG4, KEY_FLAGS }
#define Key_Lang5 (Key) { HID_KEYBOARD_LANG5, KEY_FLAGS }
#define Key_Lang6 (Key) { HID_KEYBOARD_LANG6, KEY_FLAGS }
#define Key_Lang7 (Key) { HID_KEYBOARD_LANG7, KEY_FLAGS }
#define Key_Lang8 (Key) { HID_KEYBOARD_LANG8, KEY_FLAGS }
#define Key_Lang9 (Key) { HID_KEYBOARD_LANG9, KEY_FLAGS }
#define Key_AlternateErase (Key) { HID_KEYBOARD_ALTERNATE_ERASE, KEY_FLAGS }
#define Key_Sysreq (Key) { HID_KEYBOARD_SYSREQ_SLASH_ATTENTION, KEY_FLAGS }
#define Key_Cancel (Key) { HID_KEYBOARD_CANCEL, KEY_FLAGS }
#define Key_Clear (Key) { HID_KEYBOARD_CLEAR, KEY_FLAGS }
#define Key_Prior (Key) { HID_KEYBOARD_PRIOR, KEY_FLAGS }
#define Key_Return (Key) { HID_KEYBOARD_RETURN, KEY_FLAGS }
#define Key_Separator (Key) { HID_KEYBOARD_SEPARATOR, KEY_FLAGS }
#define Key_Out (Key) { HID_KEYBOARD_OUT, KEY_FLAGS }
#define Key_Oper (Key) { HID_KEYBOARD_OPER, KEY_FLAGS }
#define Key_ClearSlashAgain (Key) { HID_KEYBOARD_CLEAR_SLASH_AGAIN, KEY_FLAGS }
#define Key_CrselSlashProps (Key) { HID_KEYBOARD_CRSEL_SLASH_PROPS, KEY_FLAGS }
#define Key_Exsel (Key) { HID_KEYBOARD_EXSEL, KEY_FLAGS }
#define Key_Equals (Key) { HID_KEYBOARD_EQUALS_AND_PLUS, KEY_FLAGS }
#define Key_LeftBracket (Key) { HID_KEYBOARD_LEFT_BRACKET_AND_LEFT_CURLY_BRACE, KEY_FLAGS }
#define Key_RightBracket (Key) { HID_KEYBOARD_RIGHT_BRACKET_AND_RIGHT_CURLY_BRACE, KEY_FLAGS }
#define Key_Backslash (Key) { HID_KEYBOARD_BACKSLASH_AND_PIPE, KEY_FLAGS }
#define Key_NonUsPound (Key) { HID_KEYBOARD_NON_US_POUND_AND_TILDE, KEY_FLAGS }
#define Key_Semicolon (Key) { HID_KEYBOARD_SEMICOLON_AND_COLON, KEY_FLAGS }
#define Key_Quote (Key) { HID_KEYBOARD_QUOTE_AND_DOUBLEQUOTE, KEY_FLAGS }
#define Key_Backtick (Key) { HID_KEYBOARD_GRAVE_ACCENT_AND_TILDE, KEY_FLAGS }
#define Key_Comma (Key) { HID_KEYBOARD_COMMA_AND_LESS_THAN, KEY_FLAGS }
#define Key_Period (Key) { HID_KEYBOARD_PERIOD_AND_GREATER_THAN, KEY_FLAGS }
#define Key_Slash (Key) { HID_KEYBOARD_SLASH_AND_QUESTION_MARK, KEY_FLAGS }
#define Key_CapsLock (Key) { HID_KEYBOARD_CAPS_LOCK, KEY_FLAGS }
#define Key_F1 (Key) { HID_KEYBOARD_F1, KEY_FLAGS }
#define Key_F2 (Key) { HID_KEYBOARD_F2, KEY_FLAGS }
#define Key_F3 (Key) { HID_KEYBOARD_F3, KEY_FLAGS }
#define Key_F4 (Key) { HID_KEYBOARD_F4, KEY_FLAGS }
#define Key_F5 (Key) { HID_KEYBOARD_F5, KEY_FLAGS }
#define Key_F6 (Key) { HID_KEYBOARD_F6, KEY_FLAGS }
#define Key_F7 (Key) { HID_KEYBOARD_F7, KEY_FLAGS }
#define Key_F8 (Key) { HID_KEYBOARD_F8, KEY_FLAGS }
#define Key_F9 (Key) { HID_KEYBOARD_F9, KEY_FLAGS }
#define Key_F10 (Key) { HID_KEYBOARD_F10, KEY_FLAGS }
#define Key_F11 (Key) { HID_KEYBOARD_F11, KEY_FLAGS }
#define Key_F12 (Key) { HID_KEYBOARD_F12, KEY_FLAGS }
#define Key_PrintScreen (Key) { HID_KEYBOARD_PRINTSCREEN, KEY_FLAGS }
#define Key_ScrollLock (Key) { HID_KEYBOARD_SCROLL_LOCK, KEY_FLAGS }
#define Key_Pause (Key) { HID_KEYBOARD_PAUSE, KEY_FLAGS }
#define Key_Insert (Key) { HID_KEYBOARD_INSERT, KEY_FLAGS }
#define Key_Home (Key) { HID_KEYBOARD_HOME, KEY_FLAGS }
#define Key_PageUp (Key) { HID_KEYBOARD_PAGE_UP, KEY_FLAGS }
#define Key_Delete (Key) { HID_KEYBOARD_DELETE_FORWARD, KEY_FLAGS }
#define Key_End (Key) { HID_KEYBOARD_END, KEY_FLAGS }
#define Key_PageDown (Key) { HID_KEYBOARD_PAGE_DOWN, KEY_FLAGS }
#define Key_RightArrow (Key) { HID_KEYBOARD_RIGHT_ARROW, KEY_FLAGS }
#define Key_LeftArrow (Key) { HID_KEYBOARD_LEFT_ARROW, KEY_FLAGS }
#define Key_DownArrow (Key) { HID_KEYBOARD_DOWN_ARROW, KEY_FLAGS }
#define Key_UpArrow (Key) { HID_KEYBOARD_UP_ARROW, KEY_FLAGS }
#define Key_KeypadNumLock (Key) { HID_KEYPAD_NUM_LOCK_AND_CLEAR, KEY_FLAGS }
#define Key_KeypadDivide (Key) { HID_KEYPAD_DIVIDE, KEY_FLAGS }
#define Key_KeypadMultiply (Key) { HID_KEYPAD_MULTIPLY, KEY_FLAGS }
#define Key_KeypadSubtract (Key) { HID_KEYPAD_SUBTRACT, KEY_FLAGS }
#define Key_KeypadAdd (Key) { HID_KEYPAD_ADD, KEY_FLAGS }
#define Key_KeypadEnter (Key) { HID_KEYPAD_ENTER, KEY_FLAGS }
#define Key_Keypad1 (Key) { HID_KEYPAD_1_AND_END, KEY_FLAGS }
#define Key_Keypad2 (Key) { HID_KEYPAD_2_AND_DOWN_ARROW, KEY_FLAGS }
#define Key_Keypad3 (Key) { HID_KEYPAD_3_AND_PAGE_DOWN, KEY_FLAGS }
#define Key_Keypad4 (Key) { HID_KEYPAD_4_AND_LEFT_ARROW, KEY_FLAGS }
#define Key_Keypad5 (Key) { HID_KEYPAD_5, KEY_FLAGS }
#define Key_Keypad6 (Key) { HID_KEYPAD_6_AND_RIGHT_ARROW, KEY_FLAGS }
#define Key_Keypad7 (Key) { HID_KEYPAD_7_AND_HOME, KEY_FLAGS }
#define Key_Keypad8 (Key) { HID_KEYPAD_8_AND_UP_ARROW, KEY_FLAGS }
#define Key_Keypad9 (Key) { HID_KEYPAD_9_AND_PAGE_UP, KEY_FLAGS }
#define Key_Keypad0 (Key) { HID_KEYPAD_0_AND_INSERT, KEY_FLAGS }
#define Key_KeypadDot (Key) { HID_KEYPAD_PERIOD_AND_DELETE, KEY_FLAGS }
#define Key_NonUsBackslashAndPipe (Key) { HID_KEYBOARD_NON_US_BACKSLASH_AND_PIPE, KEY_FLAGS }
#define Key_PcApplication (Key) { HID_KEYBOARD_APPLICATION, KEY_FLAGS }
#define Key_Power (Key) { HID_KEYBOARD_POWER, KEY_FLAGS }
#define Key_KeypadEquals (Key) { HID_KEYPAD_EQUALS, KEY_FLAGS }
#define Key_F13 (Key) { HID_KEYBOARD_F13, KEY_FLAGS }
#define Key_F14 (Key) { HID_KEYBOARD_F14, KEY_FLAGS }
#define Key_F15 (Key) { HID_KEYBOARD_F15, KEY_FLAGS }
#define Key_F16 (Key) { HID_KEYBOARD_F16, KEY_FLAGS }
#define Key_F17 (Key) { HID_KEYBOARD_F17, KEY_FLAGS }
#define Key_F18 (Key) { HID_KEYBOARD_F18, KEY_FLAGS }
#define Key_F19 (Key) { HID_KEYBOARD_F19, KEY_FLAGS }
#define Key_F20 (Key) { HID_KEYBOARD_F20, KEY_FLAGS }
#define Key_F21 (Key) { HID_KEYBOARD_F21, KEY_FLAGS }
#define Key_F22 (Key) { HID_KEYBOARD_F22, KEY_FLAGS }
#define Key_F23 (Key) { HID_KEYBOARD_F23, KEY_FLAGS }
#define Key_F24 (Key) { HID_KEYBOARD_F24, KEY_FLAGS }
#define Key_Execute (Key) { HID_KEYBOARD_EXECUTE, KEY_FLAGS }
#define Key_Help (Key) { HID_KEYBOARD_HELP, KEY_FLAGS }
#define Key_Menu (Key) { HID_KEYBOARD_MENU, KEY_FLAGS }
#define Key_Select (Key) { HID_KEYBOARD_SELECT, KEY_FLAGS }
#define Key_Stop (Key) { HID_KEYBOARD_STOP, KEY_FLAGS }
#define Key_Again (Key) { HID_KEYBOARD_AGAIN, KEY_FLAGS }
#define Key_Undo (Key) { HID_KEYBOARD_UNDO, KEY_FLAGS }
#define Key_Cut (Key) { HID_KEYBOARD_CUT, KEY_FLAGS }
#define Key_Copy (Key) { HID_KEYBOARD_COPY, KEY_FLAGS }
#define Key_Paste (Key) { HID_KEYBOARD_PASTE, KEY_FLAGS }
#define Key_Find (Key) { HID_KEYBOARD_FIND, KEY_FLAGS }
#define Key_Mute (Key) { HID_KEYBOARD_MUTE, KEY_FLAGS }
#define Key_VolumeUp (Key) { HID_KEYBOARD_VOLUME_UP, KEY_FLAGS }
#define Key_VolumeDown (Key) { HID_KEYBOARD_VOLUME_DOWN, KEY_FLAGS }
#define Key_LockingCapsLock (Key) { HID_KEYBOARD_LOCKING_CAPS_LOCK, KEY_FLAGS }
#define Key_LockingNumLock (Key) { HID_KEYBOARD_LOCKING_NUM_LOCK, KEY_FLAGS }
#define Key_LockingScrollLock (Key) { HID_KEYBOARD_LOCKING_SCROLL_LOCK, KEY_FLAGS }
#define Key_KeypadComma (Key) { HID_KEYPAD_COMMA, KEY_FLAGS }
#define Key_KeypadEqualSign (Key) { HID_KEYPAD_EQUAL_SIGN, KEY_FLAGS }
#define Key_International1 (Key) { HID_KEYBOARD_INTERNATIONAL1, KEY_FLAGS }
#define Key_International2 (Key) { HID_KEYBOARD_INTERNATIONAL2, KEY_FLAGS }
#define Key_International3 (Key) { HID_KEYBOARD_INTERNATIONAL3, KEY_FLAGS }
#define Key_International4 (Key) { HID_KEYBOARD_INTERNATIONAL4, KEY_FLAGS }
#define Key_International5 (Key) { HID_KEYBOARD_INTERNATIONAL5, KEY_FLAGS }
#define Key_International6 (Key) { HID_KEYBOARD_INTERNATIONAL6, KEY_FLAGS }
#define Key_International7 (Key) { HID_KEYBOARD_INTERNATIONAL7, KEY_FLAGS }
#define Key_International8 (Key) { HID_KEYBOARD_INTERNATIONAL8, KEY_FLAGS }
#define Key_International9 (Key) { HID_KEYBOARD_INTERNATIONAL9, KEY_FLAGS }
#define Key_Lang1 (Key) { HID_KEYBOARD_LANG1, KEY_FLAGS }
#define Key_Lang2 (Key) { HID_KEYBOARD_LANG2, KEY_FLAGS }
#define Key_Lang3 (Key) { HID_KEYBOARD_LANG3, KEY_FLAGS }
#define Key_Lang4 (Key) { HID_KEYBOARD_LANG4, KEY_FLAGS }
#define Key_Lang5 (Key) { HID_KEYBOARD_LANG5, KEY_FLAGS }
#define Key_Lang6 (Key) { HID_KEYBOARD_LANG6, KEY_FLAGS }
#define Key_Lang7 (Key) { HID_KEYBOARD_LANG7, KEY_FLAGS }
#define Key_Lang8 (Key) { HID_KEYBOARD_LANG8, KEY_FLAGS }
#define Key_Lang9 (Key) { HID_KEYBOARD_LANG9, KEY_FLAGS }
#define Key_AlternateErase (Key) { HID_KEYBOARD_ALTERNATE_ERASE, KEY_FLAGS }
#define Key_Sysreq (Key) { HID_KEYBOARD_SYSREQ_SLASH_ATTENTION, KEY_FLAGS }
#define Key_Cancel (Key) { HID_KEYBOARD_CANCEL, KEY_FLAGS }
#define Key_Clear (Key) { HID_KEYBOARD_CLEAR, KEY_FLAGS }
#define Key_Prior (Key) { HID_KEYBOARD_PRIOR, KEY_FLAGS }
#define Key_Return (Key) { HID_KEYBOARD_RETURN, KEY_FLAGS }
#define Key_Separator (Key) { HID_KEYBOARD_SEPARATOR, KEY_FLAGS }
#define Key_Out (Key) { HID_KEYBOARD_OUT, KEY_FLAGS }
#define Key_Oper (Key) { HID_KEYBOARD_OPER, KEY_FLAGS }
#define Key_ClearSlashAgain (Key) { HID_KEYBOARD_CLEAR_SLASH_AGAIN, KEY_FLAGS }
#define Key_CrselSlashProps (Key) { HID_KEYBOARD_CRSEL_SLASH_PROPS, KEY_FLAGS }
#define Key_Exsel (Key) { HID_KEYBOARD_EXSEL, KEY_FLAGS }
// Reserved 0xA5-AF
#define Key_Keypad00 (Key) { HID_KEYPAD_00, KEY_FLAGS }
#define Key_Keypad000 (Key) { HID_KEYPAD_000, KEY_FLAGS }
#define Key_Keypad00 (Key) { HID_KEYPAD_00, KEY_FLAGS }
#define Key_Keypad000 (Key) { HID_KEYPAD_000, KEY_FLAGS }
#define Key_ThousandsSeparator (Key) { HID_THOUSANDS_SEPARATOR, KEY_FLAGS }
#define Key_DecimalSeparator (Key) { HID_DECIMAL_SEPARATOR, KEY_FLAGS }
#define Key_DecimalSeparator (Key) { HID_DECIMAL_SEPARATOR, KEY_FLAGS }
#define Key_CurrencyUnit (Key) { HID_CURRENCY_UNIT, KEY_FLAGS }
#define Key_CurrencySubunit (Key) { HID_CURRENCY_SUBUNIT, KEY_FLAGS }
#define Key_KeypadLeftParen (Key) { HID_KEYPAD_LEFT_PAREN, KEY_FLAGS }
#define Key_KeypadRightParen (Key) { HID_KEYPAD_RIGHT_PAREN, KEY_FLAGS }
#define Key_KeypadLeftCurlyBrace (Key) { HID_KEYPAD_LEFT_CURLY_BRACE, KEY_FLAGS }
#define Key_KeypadRightCurlyBrace (Key) { HID_KEYPAD_RIGHT_CURLY_BRACE, KEY_FLAGS }
#define Key_KeypadTab (Key) { HID_KEYPAD_TAB, KEY_FLAGS }
#define Key_KeypadBackspace (Key) { HID_KEYPAD_BACKSPACE, KEY_FLAGS }
#define Key_KeypadA (Key) { HID_KEYPAD_A, KEY_FLAGS }
#define Key_KeypadB (Key) { HID_KEYPAD_B, KEY_FLAGS }
#define Key_KeypadC (Key) { HID_KEYPAD_C, KEY_FLAGS }
#define Key_KeypadD (Key) { HID_KEYPAD_D, KEY_FLAGS }
#define Key_KeypadE (Key) { HID_KEYPAD_E, KEY_FLAGS }
#define Key_KeypadF (Key) { HID_KEYPAD_F, KEY_FLAGS }
#define Key_KeypadXor (Key) { HID_KEYPAD_XOR, KEY_FLAGS }
#define Key_KeypadCarat (Key) { HID_KEYPAD_CARAT, KEY_FLAGS }
#define Key_KeypadPercent (Key) { HID_KEYPAD_PERCENT, KEY_FLAGS }
#define Key_KeypadLessThan (Key) { HID_KEYPAD_LESS_THAN, KEY_FLAGS }
#define Key_KeypadGreaterThan (Key) { HID_KEYPAD_GREATER_THAN, KEY_FLAGS }
#define Key_KeypadAmpersand (Key) { HID_KEYPAD_AMPERSAND, KEY_FLAGS }
#define Key_KeypadDoubleampersand (Key) { HID_KEYPAD_DOUBLEAMPERSAND, KEY_FLAGS }
#define Key_KeypadPipe (Key) { HID_KEYPAD_PIPE, KEY_FLAGS }
#define Key_KeypadDoublepipe (Key) { HID_KEYPAD_DOUBLEPIPE, KEY_FLAGS }
#define Key_KeypadColon (Key) { HID_KEYPAD_COLON, KEY_FLAGS }
#define Key_KeypadPoundSign (Key) { HID_KEYPAD_POUND_SIGN, KEY_FLAGS }
#define Key_KeypadSpace (Key) { HID_KEYPAD_SPACE, KEY_FLAGS }
#define Key_KeypadAtSign (Key) { HID_KEYPAD_AT_SIGN, KEY_FLAGS }
#define Key_KeypadExclamationPoint (Key) { HID_KEYPAD_EXCLAMATION_POINT, KEY_FLAGS }
#define Key_KeypadMemoryStore (Key) { HID_KEYPAD_MEMORY_STORE, KEY_FLAGS }
#define Key_KeypadMemoryRecall (Key) { HID_KEYPAD_MEMORY_RECALL, KEY_FLAGS }
#define Key_KeypadMemoryClear (Key) { HID_KEYPAD_MEMORY_CLEAR, KEY_FLAGS }
#define Key_KeypadMemoryAdd (Key) { HID_KEYPAD_MEMORY_ADD, KEY_FLAGS }
#define Key_KeypadMemorySubtract (Key) { HID_KEYPAD_MEMORY_SUBTRACT, KEY_FLAGS }
#define Key_KeypadMemoryMultiply (Key) { HID_KEYPAD_MEMORY_MULTIPLY, KEY_FLAGS }
#define Key_KeypadMemoryDivide (Key) { HID_KEYPAD_MEMORY_DIVIDE, KEY_FLAGS }
#define Key_KeypadPlusSlashMinus (Key) { HID_KEYPAD_PLUS_SLASH_MINUS, KEY_FLAGS }
#define Key_KeypadClear (Key) { HID_KEYPAD_CLEAR, KEY_FLAGS }
#define Key_KeypadClearEntry (Key) { HID_KEYPAD_CLEAR_ENTRY, KEY_FLAGS }
#define Key_KeypadBinary (Key) { HID_KEYPAD_BINARY, KEY_FLAGS }
#define Key_KeypadOctal (Key) { HID_KEYPAD_OCTAL, KEY_FLAGS }
#define Key_KeypadDecimal (Key) { HID_KEYPAD_DECIMAL, KEY_FLAGS }
#define Key_KeypadHexadecimal (Key) { HID_KEYPAD_HEXADECIMAL, KEY_FLAGS }
#define Key_KeypadLeftParen (Key) { HID_KEYPAD_LEFT_PAREN, KEY_FLAGS }
#define Key_KeypadRightParen (Key) { HID_KEYPAD_RIGHT_PAREN, KEY_FLAGS }
#define Key_KeypadLeftCurlyBrace (Key) { HID_KEYPAD_LEFT_CURLY_BRACE, KEY_FLAGS }
#define Key_KeypadRightCurlyBrace (Key) { HID_KEYPAD_RIGHT_CURLY_BRACE, KEY_FLAGS }
#define Key_KeypadTab (Key) { HID_KEYPAD_TAB, KEY_FLAGS }
#define Key_KeypadBackspace (Key) { HID_KEYPAD_BACKSPACE, KEY_FLAGS }
#define Key_KeypadA (Key) { HID_KEYPAD_A, KEY_FLAGS }
#define Key_KeypadB (Key) { HID_KEYPAD_B, KEY_FLAGS }
#define Key_KeypadC (Key) { HID_KEYPAD_C, KEY_FLAGS }
#define Key_KeypadD (Key) { HID_KEYPAD_D, KEY_FLAGS }
#define Key_KeypadE (Key) { HID_KEYPAD_E, KEY_FLAGS }
#define Key_KeypadF (Key) { HID_KEYPAD_F, KEY_FLAGS }
#define Key_KeypadXor (Key) { HID_KEYPAD_XOR, KEY_FLAGS }
#define Key_KeypadCarat (Key) { HID_KEYPAD_CARAT, KEY_FLAGS }
#define Key_KeypadPercent (Key) { HID_KEYPAD_PERCENT, KEY_FLAGS }
#define Key_KeypadLessThan (Key) { HID_KEYPAD_LESS_THAN, KEY_FLAGS }
#define Key_KeypadGreaterThan (Key) { HID_KEYPAD_GREATER_THAN, KEY_FLAGS }
#define Key_KeypadAmpersand (Key) { HID_KEYPAD_AMPERSAND, KEY_FLAGS }
#define Key_KeypadDoubleampersand (Key) { HID_KEYPAD_DOUBLEAMPERSAND, KEY_FLAGS }
#define Key_KeypadPipe (Key) { HID_KEYPAD_PIPE, KEY_FLAGS }
#define Key_KeypadDoublepipe (Key) { HID_KEYPAD_DOUBLEPIPE, KEY_FLAGS }
#define Key_KeypadColon (Key) { HID_KEYPAD_COLON, KEY_FLAGS }
#define Key_KeypadPoundSign (Key) { HID_KEYPAD_POUND_SIGN, KEY_FLAGS }
#define Key_KeypadSpace (Key) { HID_KEYPAD_SPACE, KEY_FLAGS }
#define Key_KeypadAtSign (Key) { HID_KEYPAD_AT_SIGN, KEY_FLAGS }
#define Key_KeypadExclamationPoint (Key) { HID_KEYPAD_EXCLAMATION_POINT, KEY_FLAGS }
#define Key_KeypadMemoryStore (Key) { HID_KEYPAD_MEMORY_STORE, KEY_FLAGS }
#define Key_KeypadMemoryRecall (Key) { HID_KEYPAD_MEMORY_RECALL, KEY_FLAGS }
#define Key_KeypadMemoryClear (Key) { HID_KEYPAD_MEMORY_CLEAR, KEY_FLAGS }
#define Key_KeypadMemoryAdd (Key) { HID_KEYPAD_MEMORY_ADD, KEY_FLAGS }
#define Key_KeypadMemorySubtract (Key) { HID_KEYPAD_MEMORY_SUBTRACT, KEY_FLAGS }
#define Key_KeypadMemoryMultiply (Key) { HID_KEYPAD_MEMORY_MULTIPLY, KEY_FLAGS }
#define Key_KeypadMemoryDivide (Key) { HID_KEYPAD_MEMORY_DIVIDE, KEY_FLAGS }
#define Key_KeypadPlusSlashMinus (Key) { HID_KEYPAD_PLUS_SLASH_MINUS, KEY_FLAGS }
#define Key_KeypadClear (Key) { HID_KEYPAD_CLEAR, KEY_FLAGS }
#define Key_KeypadClearEntry (Key) { HID_KEYPAD_CLEAR_ENTRY, KEY_FLAGS }
#define Key_KeypadBinary (Key) { HID_KEYPAD_BINARY, KEY_FLAGS }
#define Key_KeypadOctal (Key) { HID_KEYPAD_OCTAL, KEY_FLAGS }
#define Key_KeypadDecimal (Key) { HID_KEYPAD_DECIMAL, KEY_FLAGS }
#define Key_KeypadHexadecimal (Key) { HID_KEYPAD_HEXADECIMAL, KEY_FLAGS }
#define Key_LeftControl (Key) { HID_KEYBOARD_LEFT_CONTROL, KEY_FLAGS }
#define Key_LeftShift (Key) { HID_KEYBOARD_LEFT_SHIFT, KEY_FLAGS }
#define Key_LeftAlt (Key) { HID_KEYBOARD_LEFT_ALT, KEY_FLAGS }
#define Key_LeftGui (Key) { HID_KEYBOARD_LEFT_GUI, KEY_FLAGS }
#define Key_RightControl (Key) { HID_KEYBOARD_RIGHT_CONTROL, KEY_FLAGS }
#define Key_RightShift (Key) { HID_KEYBOARD_RIGHT_SHIFT, KEY_FLAGS }
#define Key_RightAlt (Key) { HID_KEYBOARD_RIGHT_ALT, KEY_FLAGS }
#define Key_RightGui (Key) { HID_KEYBOARD_RIGHT_GUI, KEY_FLAGS }
#define Key_LeftControl (Key) { HID_KEYBOARD_LEFT_CONTROL, KEY_FLAGS }
#define Key_LeftShift (Key) { HID_KEYBOARD_LEFT_SHIFT, KEY_FLAGS }
#define Key_LeftAlt (Key) { HID_KEYBOARD_LEFT_ALT, KEY_FLAGS }
#define Key_LeftGui (Key) { HID_KEYBOARD_LEFT_GUI, KEY_FLAGS }
#define Key_RightControl (Key) { HID_KEYBOARD_RIGHT_CONTROL, KEY_FLAGS }
#define Key_RightShift (Key) { HID_KEYBOARD_RIGHT_SHIFT, KEY_FLAGS }
#define Key_RightAlt (Key) { HID_KEYBOARD_RIGHT_ALT, KEY_FLAGS }
#define Key_RightGui (Key) { HID_KEYBOARD_RIGHT_GUI, KEY_FLAGS }

@ -10,15 +10,15 @@ static bool handle_synthetic_keyswitch_event(Key mappedKey, uint8_t keyState) {
if (mappedKey.flags & IS_INTERNAL) {
return false;
} else if (mappedKey.flags & IS_CONSUMER) {
if (key_is_pressed(keyState))
ConsumerControl.press(mappedKey.keyCode);
else if (key_was_pressed(keyState))
ConsumerControl.release(mappedKey.keyCode);
if (key_is_pressed(keyState))
ConsumerControl.press(mappedKey.keyCode);
else if (key_was_pressed(keyState))
ConsumerControl.release(mappedKey.keyCode);
} else if (mappedKey.flags & IS_SYSCTL) {
if (key_is_pressed(keyState))
SystemControl.press(mappedKey.keyCode);
else if (key_was_pressed(keyState))
SystemControl.release();
if (key_is_pressed(keyState))
SystemControl.press(mappedKey.keyCode);
else if (key_was_pressed(keyState))
SystemControl.release();
} else if (mappedKey.flags & SWITCH_TO_KEYMAP) {
// Should not happen, handled elsewhere.
}

@ -30,7 +30,7 @@ class Layer_ {
static Key getKeyFromPROGMEM(uint8_t layer, byte row, byte col);
private:
private:
static uint8_t highestLayer;
static uint8_t keyMap[ROWS][COLS];

Loading…
Cancel
Save