diff options
author | Brian Cully <bjc@kublai.com> | 2018-11-25 11:07:28 -0500 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2018-11-25 11:07:28 -0500 |
commit | 9d9d273d47c1c3beddabdd282e4cd0c2fd52509f (patch) | |
tree | 1b987775cda4aa01fe2912d180fcff12abd3f79a | |
parent | 9e3dc09041aa5ef952033301f304a962da198f62 (diff) | |
download | Kaleidoscope-LayerHighlighter-9d9d273d47c1c3beddabdd282e4cd0c2fd52509f.tar.gz Kaleidoscope-LayerHighlighter-9d9d273d47c1c3beddabdd282e4cd0c2fd52509f.zip |
Toggle LEDs only when layer key is pressed.
Fixes interactions with NumPad plugin when there are no other LED
effects present.
-rw-r--r-- | src/Kaleidoscope-LayerHighlighter.cpp | 17 | ||||
-rw-r--r-- | src/Kaleidoscope-LayerHighlighter.h | 2 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/Kaleidoscope-LayerHighlighter.cpp b/src/Kaleidoscope-LayerHighlighter.cpp index 3ed56cb..7c30761 100644 --- a/src/Kaleidoscope-LayerHighlighter.cpp +++ b/src/Kaleidoscope-LayerHighlighter.cpp @@ -8,14 +8,25 @@ kaleidoscope::EventHandlerResult LayerHighlighter::onSetup(void) { return kaleidoscope::EventHandlerResult::OK; } +kaleidoscope::EventHandlerResult LayerHighlighter::onKeyswitchEvent(Key &mappedKey, byte row, byte col, uint8_t keyState) { + if (mappedKey != LockLayer(layer)) { + return kaleidoscope::EventHandlerResult::OK; + } + + if (keyToggledOn(keyState)) { + savedLEDMode = LEDControl.get_mode_index(); + } else if (keyToggledOff(keyState)) { + LEDControl.set_mode(LEDControl.get_mode_index()); + } + + return kaleidoscope::EventHandlerResult::OK; +} + kaleidoscope::EventHandlerResult LayerHighlighter::afterEachCycle() { if (!Layer.isOn(layer)) { - LEDControl.set_mode(LEDControl.get_mode_index()); return kaleidoscope::EventHandlerResult::OK; } - LEDControl.set_mode(LEDControl.get_mode_index()); - for (uint8_t r = 0; r < ROWS; r++) { for (uint8_t c = 0; c < COLS; c++) { Key k = Layer.lookupOnActiveLayer(r, c); diff --git a/src/Kaleidoscope-LayerHighlighter.h b/src/Kaleidoscope-LayerHighlighter.h index 65ae483..ba67395 100644 --- a/src/Kaleidoscope-LayerHighlighter.h +++ b/src/Kaleidoscope-LayerHighlighter.h @@ -10,9 +10,11 @@ class LayerHighlighter : public kaleidoscope::Plugin { uint8_t lockHue; kaleidoscope::EventHandlerResult onSetup(void); + kaleidoscope::EventHandlerResult onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t key_state); kaleidoscope::EventHandlerResult afterEachCycle(); private: const uint8_t layer; static byte row, col; + uint8_t savedLEDMode; }; |