Michael Richters
ba65bf46d2
Update testcases for TopsyTurvy plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
836e4af8ae
Update testcases for Macros plugin
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
78ec964b09
Update testcases: events/keyboard-state/macros
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
c1e64d0a60
Update testcases: examples/basic-keypress
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f13e08c77a
Update testcases: events/keyboard-state/release-cleared
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
a2f720e365
Add testcases for rollover conditions on Keyboard HID keys
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
2073c4f855
Adapt miscellaneous LED mode plugins to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
889b664a4a
Adapt LED-ActiveModColor plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
a734d6d8b4
Adapt IdleLEDs plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
352fa3fb70
Adapt Kaleidoscope-Hardware-EZ-ErgoDox to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3ddd12ea04
Adapt FocusSerial plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
1ff9bb81c2
Adapt Escape-OneShot plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
48e1130dce
Adapt EEPROM-Keymap-Programmer plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
d7a71f92ba
Adapt Cycle plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
a890b3ccf1
Adapt Steno(GeminiPR) plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b4ec77d6e1
Adapt WinKeyToggle plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
8d8a9f7f44
Adapt TypingBreaks plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b535d203a6
Adapt Turbo plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f91d2a30a3
Adapt MouseKeys plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
5db82fd7c8
Adapt DynamicMacros plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f619f1bc78
Deprecate MACRODOWN preprocessor macro
...
Its utility is very limited now that `macroAction()` only gets called when a
Macros key toggles on or off, and it uses a symbol that breaks an abstraction
barrier (a local variable of the `macroAction()` function).
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
619edaa299
Adapt Macros plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
ba383a18ad
Adapt DynamicTapDance plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
aa6d4acf25
Adapt GhostInTheFirmware plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3a78581bc2
Adapt Syster plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
4e445817fc
Adapt MagicCombo plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3e304a2a3f
Adapt OneShot plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f931a59efc
Adapt TapDance plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
0bf128be09
Adapt TopsyTurvy plugin to KeyEvent handlers
...
fixes #990
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
abba881257
Adapt ShapeShifter plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
9352117e74
Adapt Redial plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
b5a006c228
Adapt SpaceCadet plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
2842b377e9
Adapt Qukeys plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
8d4967db8d
Adapt Leader plugin to KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
6e2f3e8843
Include `stdint.h` in Kaleidoscope-Ranges.h
...
This makes it unnecessary to include `Arduino.h` (or `stdint.h`, or some other
header that includes it) before including Kaleidoscope-Ranges.h.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
0498a88a24
Replace AppSwitcher Macros example with custom plugin
...
This example sketch is now a fairly good demonstration of the power and
simplicity of the new KeyEvent handlers, and an example of a custom plugin
written directly in the sketch file.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
328edcfc64
Add `KeyAddrBitField::clear()` method
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
73c9fa7e96
Standardize private variable names in LEDControl
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
26f1972976
Deprecate public `LEDControl.syncDelay` variable
...
It is now replaced with `LEDControl.setSyncInterval()` to set the LED refresh
rate.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
f6e9896697
Remove some unnecessary namespace qualifiers from LEDControl
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
e4b6499070
Adapt LEDControl to new KeyEvent handlers
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
7756be1a6d
Add `beforeSyncingLeds()` event handler hook function
...
This allows plugins to override the current LED mode just before the LED sync is
done (i.e. after the mode sets the LED colors, but before those changes are
pushed to the hardware.)
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
015b8e3140
Add KeyEventTracker helper class
...
This class should help plugins that implement `onKeyswitchEvent()` to ensure
that they won't process the same event more than once.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
1946e1de0b
Compile deprecated Layer code conditionally
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
4c47ce1185
Terminate event handling after calling `Layer.handleLayerKeyEvent()`
...
There's no need to trigger a keyboard HID report after processing a layer
change, so stop processing before calling `prepareKeyboardReport()` if
`event.key` is a layer change `Key`.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
7d16958a7a
Replace `handleKeymapKeyswitchEvent()` with `handleLayerKeyEvent()`
...
The new version of the layer change `Key` handler is more consistent with the
other `KeyEvent` handling functions, and properly checks for a second layer
shift key being held when releasing the first one.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
236281fa75
Rewrite top-level event handling functions
...
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
d5a8a6e201
Add new `KeyEvent` event handler functions
...
This defines four new event handlers for plugins to use with the forthcoming
redesigned main event loop:
- `onKeyEvent(KeyEvent &event)`
- `onPhysicalKeyEvent(KeyEvent &event)`
- `beforeReportingState(const KeyEvent &event)`
- `onAddToReport(Key key)`
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3be5c0fce4
Generalize KeyAddrEventQueue type to store EventId values
...
This allows it to return correct `KeyEvent` values when used by plugins that
need to track that information for delaying events.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago
Michael Richters
3be1ea6531
Add KeyEvent data type
...
The `KeyEvent` type will encapsulate all of the data that will be passed to the
new generation of event handler functions.
Signed-off-by: Michael Richters <gedankenexperimenter@gmail.com>
4 years ago