Updated to use the new plugin APIs

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
pull/389/head
Gergely Nagy 6 years ago
parent 62f619a5c4
commit 33eb5cae03

@ -23,9 +23,10 @@ configuration is necessary.
#include <Kaleidoscope-OneShot.h>
#include <Kaleidoscope-Escape-OneShot.h>
void setup () {
Kaleidoscope.use(&OneShot, &EscapeOneShot);
KALEIDOSCOPE_INIT_PLUGINS(OneShot,
EscapeOneShot);
void setup () {
Kaleidoscope.setup ();
}
```

@ -1,6 +1,6 @@
/* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active.
* Copyright (C) 2016, 2017 Gergely Nagy
* Copyright (C) 2016, 2017, 2018 Gergely Nagy
*
* 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
@ -20,6 +20,7 @@
#include <Kaleidoscope-OneShot.h>
#include <Kaleidoscope-Escape-OneShot.h>
// *INDENT-OFF*
const Key keymaps[][ROWS][COLS] PROGMEM = {
[0] = KEYMAP_STACKED
(
@ -58,11 +59,13 @@ const Key keymaps[][ROWS][COLS] PROGMEM = {
___, ___, ___, ___,
___
),
};
// *INDENT-ON*
KALEIDOSCOPE_INIT_PLUGINS(OneShot,
EscapeOneShot);
void setup() {
Kaleidoscope.use(&OneShot, &EscapeOneShot);
Kaleidoscope.setup();
}

@ -1,6 +1,6 @@
/* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active.
* Copyright (C) 2016, 2017 Gergely Nagy
* Copyright (C) 2016, 2017, 2018 Gergely Nagy
*
* 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
@ -22,28 +22,35 @@
namespace kaleidoscope {
EscapeOneShot::EscapeOneShot(void) {
}
void EscapeOneShot::begin(void) {
Kaleidoscope.useEventHandlerHook(eventHandlerHook);
}
Key EscapeOneShot::eventHandlerHook(Key mapped_key, byte row, byte col, uint8_t key_state) {
EventHandlerResult EscapeOneShot::onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t keyState) {
if (mapped_key.raw != Key_Escape.raw ||
(key_state & INJECTED) ||
!keyToggledOn(key_state))
return mapped_key;
(keyState & INJECTED) ||
!keyToggledOn(keyState))
return EventHandlerResult::OK;
if (!::OneShot.isActive())
return mapped_key;
return EventHandlerResult::OK;
KeyboardHardware.maskKey(row, col);
::OneShot.cancel(true);
return EventHandlerResult::EVENT_CONSUMED;
}
// Legacy V1 API
#if KALEIDOSCOPE_ENABLE_V1_PLUGIN_API
void EscapeOneShot::begin() {
Kaleidoscope.useEventHandlerHook(legacyEventHandler);
}
Key EscapeOneShot::legacyEventHandler(Key mapped_key, byte row, byte col, uint8_t keyState) {
EventHandlerResult r = ::EscapeOneShot.onKeyswitchEvent(mapped_key, row, col, keyState);
if (r == EventHandlerResult::OK)
return mapped_key;
return Key_NoKey;
}
#endif
}

@ -1,6 +1,6 @@
/* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active.
* Copyright (C) 2016, 2017 Gergely Nagy
* Copyright (C) 2016, 2017, 2018 Gergely Nagy
*
* 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
@ -21,14 +21,17 @@
#include <Kaleidoscope.h>
namespace kaleidoscope {
class EscapeOneShot : public KaleidoscopePlugin {
class EscapeOneShot : public kaleidoscope::Plugin {
public:
EscapeOneShot(void);
EscapeOneShot(void) {}
void begin(void) final;
EventHandlerResult onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t keyState);
private:
static Key eventHandlerHook(Key mapped_key, byte row, byte col, uint8_t key_state);
#if KALEIDOSCOPE_ENABLE_V1_PLUGIN_API
protected:
void begin();
static Key legacyEventHandler(Key mapped_key, byte row, byte col, uint8_t keyState);
#endif
};
}

Loading…
Cancel
Save