Merge pull request #6 from keyboardio/f/plugin-v2

Updated to use the new plugin APIs
pull/389/head
Gergely Nagy 7 years ago committed by GitHub
commit 2a5ba8f6b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active. * 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 * 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 * it under the terms of the GNU General Public License as published by
@ -20,6 +20,7 @@
#include <Kaleidoscope-OneShot.h> #include <Kaleidoscope-OneShot.h>
#include <Kaleidoscope-Escape-OneShot.h> #include <Kaleidoscope-Escape-OneShot.h>
// *INDENT-OFF*
const Key keymaps[][ROWS][COLS] PROGMEM = { const Key keymaps[][ROWS][COLS] PROGMEM = {
[0] = KEYMAP_STACKED [0] = KEYMAP_STACKED
( (
@ -58,11 +59,13 @@ const Key keymaps[][ROWS][COLS] PROGMEM = {
___, ___, ___, ___, ___, ___, ___, ___,
___ ___
), ),
}; };
// *INDENT-ON*
KALEIDOSCOPE_INIT_PLUGINS(OneShot,
EscapeOneShot);
void setup() { void setup() {
Kaleidoscope.use(&OneShot, &EscapeOneShot);
Kaleidoscope.setup(); Kaleidoscope.setup();
} }

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active. * 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 * 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 * it under the terms of the GNU General Public License as published by
@ -22,28 +22,35 @@
namespace kaleidoscope { namespace kaleidoscope {
EscapeOneShot::EscapeOneShot(void) { EventHandlerResult EscapeOneShot::onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t keyState) {
}
void EscapeOneShot::begin(void) {
Kaleidoscope.useEventHandlerHook(eventHandlerHook);
}
Key EscapeOneShot::eventHandlerHook(Key mapped_key, byte row, byte col, uint8_t key_state) {
if (mapped_key.raw != Key_Escape.raw || if (mapped_key.raw != Key_Escape.raw ||
(key_state & INJECTED) || (keyState & INJECTED) ||
!keyToggledOn(key_state)) !keyToggledOn(keyState))
return mapped_key; return EventHandlerResult::OK;
if (!::OneShot.isActive()) if (!::OneShot.isActive())
return mapped_key; return EventHandlerResult::OK;
KeyboardHardware.maskKey(row, col); KeyboardHardware.maskKey(row, col);
::OneShot.cancel(true); ::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; return Key_NoKey;
} }
#endif
} }

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-Escape-OneShot -- Turn ESC into a key that cancels OneShots, if active. * 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 * 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 * it under the terms of the GNU General Public License as published by
@ -21,14 +21,17 @@
#include <Kaleidoscope.h> #include <Kaleidoscope.h>
namespace kaleidoscope { namespace kaleidoscope {
class EscapeOneShot : public KaleidoscopePlugin { class EscapeOneShot : public kaleidoscope::Plugin {
public: public:
EscapeOneShot(void); EscapeOneShot(void) {}
void begin(void) final; EventHandlerResult onKeyswitchEvent(Key &mapped_key, byte row, byte col, uint8_t keyState);
private: #if KALEIDOSCOPE_ENABLE_V1_PLUGIN_API
static Key eventHandlerHook(Key mapped_key, byte row, byte col, uint8_t key_state); protected:
void begin();
static Key legacyEventHandler(Key mapped_key, byte row, byte col, uint8_t keyState);
#endif
}; };
} }

Loading…
Cancel
Save