diff --git a/examples/ShapeShifter/ShapeShifter.ino b/examples/ShapeShifter/ShapeShifter.ino index 09953d42..32910e11 100644 --- a/examples/ShapeShifter/ShapeShifter.ino +++ b/examples/ShapeShifter/ShapeShifter.ino @@ -22,42 +22,42 @@ const Key keymaps[][ROWS][COLS] PROGMEM = { - [0] = KEYMAP_STACKED - ( - Key_skip, Key_1, Key_2, Key_3, Key_4, Key_5, Key_skip, - Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab, - Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G, - Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape, - - Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, - Key_NoKey, - - Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, - Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals, - Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, - Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, - - Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, - Key_NoKey - ), + [0] = KEYMAP_STACKED + ( + Key_skip, Key_1, Key_2, Key_3, Key_4, Key_5, Key_skip, + Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab, + Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G, + Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape, + + Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, + Key_NoKey, + + Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, + Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals, + Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, + Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, + + Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, + Key_NoKey + ), }; static const KaleidoscopePlugins::ShapeShifter::dictionary_t shapeShiftDictionary[] PROGMEM = { - {Key_1, Key_2}, - {Key_2, Key_1}, - {Key_NoKey, Key_NoKey}, + {Key_1, Key_2}, + {Key_2, Key_1}, + {Key_NoKey, Key_NoKey}, }; void setup () { - ShapeShifter.configure (shapeShiftDictionary); + ShapeShifter.configure (shapeShiftDictionary); - Kaleidoscope.setup (); - USE_PLUGINS (&ShapeShifter); + Kaleidoscope.setup (); + USE_PLUGINS (&ShapeShifter); } void loop () { - Kaleidoscope.loop (); + Kaleidoscope.loop (); } diff --git a/src/Kaleidoscope/ShapeShifter.cpp b/src/Kaleidoscope/ShapeShifter.cpp index 443ce748..ee76f8e3 100644 --- a/src/Kaleidoscope/ShapeShifter.cpp +++ b/src/Kaleidoscope/ShapeShifter.cpp @@ -20,61 +20,61 @@ namespace KaleidoscopePlugins { - const ShapeShifter::dictionary_t *ShapeShifter::dictionary = NULL; - bool ShapeShifter::modActive; +const ShapeShifter::dictionary_t *ShapeShifter::dictionary = NULL; +bool ShapeShifter::modActive; - ShapeShifter::ShapeShifter (void) { - } +ShapeShifter::ShapeShifter (void) { +} - void - ShapeShifter::begin (void) { +void +ShapeShifter::begin (void) { event_handler_hook_use (this->eventHandlerHook); loop_hook_use (this->loopHook); - } +} - void - ShapeShifter::configure (const dictionary_t dictionary_[]) { +void +ShapeShifter::configure (const dictionary_t dictionary_[]) { dictionary = (const dictionary_t *)dictionary_; - } +} - void - ShapeShifter::loopHook (bool postClear) { +void +ShapeShifter::loopHook (bool postClear) { if (postClear) - return; + return; modActive = Keyboard.isModifierActive (Key_LeftShift.keyCode) || - Keyboard.isModifierActive (Key_RightShift.keyCode); - } + Keyboard.isModifierActive (Key_RightShift.keyCode); +} - Key - ShapeShifter::eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState) { +Key +ShapeShifter::eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState) { if (!dictionary) - return mappedKey; + return mappedKey; // If Shift is not active, bail out early. if (!modActive) - return mappedKey; + return mappedKey; Key orig, repl; // Try to find the current key in the dictionary uint8_t i = 0; do { - orig.raw = pgm_read_word (&(dictionary[i].original.raw)); - i++; + orig.raw = pgm_read_word (&(dictionary[i].original.raw)); + i++; } while (orig.raw != Key_NoKey.raw && orig.raw != mappedKey.raw); i--; // If not found, bail out. if (orig.raw == Key_NoKey.raw) - return mappedKey; + return mappedKey; repl.raw = pgm_read_word (&(dictionary[i].replacement.raw)); // If found, handle the alternate key instead return repl; - } +} }; diff --git a/src/Kaleidoscope/ShapeShifter.h b/src/Kaleidoscope/ShapeShifter.h index 246ce252..457104a2 100644 --- a/src/Kaleidoscope/ShapeShifter.h +++ b/src/Kaleidoscope/ShapeShifter.h @@ -21,10 +21,10 @@ #include namespace KaleidoscopePlugins { - class ShapeShifter : public KaleidoscopePlugin { +class ShapeShifter : public KaleidoscopePlugin { public: typedef struct { - Key original, replacement; + Key original, replacement; } dictionary_t; ShapeShifter (void); @@ -39,7 +39,7 @@ namespace KaleidoscopePlugins { static Key eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState); static void loopHook (bool postClear); - }; +}; }; extern KaleidoscopePlugins::ShapeShifter ShapeShifter;