Updated to use the new plugin APIs

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
pull/365/head
Gergely Nagy 7 years ago
parent 50c92bddf7
commit 94b7d13990

@ -36,11 +36,9 @@ static struct {
bool someSettingFlag; bool someSettingFlag;
} testSettings; } testSettings;
void setup () { KALEIDOSCOPE_INIT_PLUGINS(EEPROMSettings, /* Other plugins that use EEPROM... */);
Kaleidoscope.use(&EEPROMSettings);
/* Use other plugins that make use of the EEPROM */
void setup () {
Kaleidoscope.setup(); Kaleidoscope.setup();
settingsBase = EEPROMSettings.requestSlice(sizeof(testSettings)); settingsBase = EEPROMSettings.requestSlice(sizeof(testSettings));

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope. * Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope.
* Copyright (C) 2017 Gergely Nagy * Copyright (C) 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
@ -19,6 +19,7 @@
#include <Kaleidoscope.h> #include <Kaleidoscope.h>
#include <Kaleidoscope-EEPROM-Settings.h> #include <Kaleidoscope-EEPROM-Settings.h>
// *INDENT-OFF*
const Key keymaps[][ROWS][COLS] PROGMEM = { const Key keymaps[][ROWS][COLS] PROGMEM = {
[0] = KEYMAP_STACKED [0] = KEYMAP_STACKED
(Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey, (Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey,
@ -31,20 +32,21 @@ const Key keymaps[][ROWS][COLS] PROGMEM = {
Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, 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_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_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_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl,
Key_skip), Key_skip),
}; };
// *INDENT-ON*
KALEIDOSCOPE_INIT_PLUGINS(EEPROMSettings);
void setup() { void setup() {
Serial.begin(9600); Serial.begin(9600);
Kaleidoscope.setup(); Kaleidoscope.setup();
Kaleidoscope.use(&EEPROMSettings);
while (!Serial) { while (!Serial) {
} }

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope. * Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope.
* Copyright (C) 2017 Gergely Nagy * Copyright (C) 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
@ -26,11 +26,9 @@ bool EEPROMSettings::is_valid_;
bool EEPROMSettings::sealed_; bool EEPROMSettings::sealed_;
uint16_t EEPROMSettings::next_start_ = sizeof(EEPROMSettings::settings); uint16_t EEPROMSettings::next_start_ = sizeof(EEPROMSettings::settings);
EEPROMSettings::EEPROMSettings(void) { EventHandlerResult EEPROMSettings::onSetup() {
}
void EEPROMSettings::begin(void) {
EEPROM.get(0, settings_); EEPROM.get(0, settings_);
return EventHandlerResult::OK;
} }
bool EEPROMSettings::isValid(void) { bool EEPROMSettings::isValid(void) {
@ -65,6 +63,9 @@ uint16_t EEPROMSettings::requestSlice(uint16_t size) {
if (sealed_) if (sealed_)
return 0; return 0;
Serial.print("requestSlice; size=");
Serial.println(size);
uint16_t start = next_start_; uint16_t start = next_start_;
next_start_ += size; next_start_ += size;
@ -97,6 +98,13 @@ void EEPROMSettings::version(uint8_t ver) {
update(); update();
} }
// Legacy V1 API
#if KALEIDOSCOPE_ENABLE_V1_PLUGIN_API
void EEPROMSettings::begin() {
::EEPROMSettings.onSetup();
}
#endif
} }
kaleidoscope::EEPROMSettings EEPROMSettings; kaleidoscope::EEPROMSettings EEPROMSettings;

@ -1,6 +1,6 @@
/* -*- mode: c++ -*- /* -*- mode: c++ -*-
* Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope. * Kaleidoscope-EEPROM-Settings -- Basic EEPROM settings plugin for Kaleidoscope.
* Copyright (C) 2017 Gergely Nagy * Copyright (C) 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,11 +22,11 @@
#include <EEPROM.h> #include <EEPROM.h>
namespace kaleidoscope { namespace kaleidoscope {
class EEPROMSettings : public KaleidoscopePlugin { class EEPROMSettings : public kaleidoscope::Plugin {
public: public:
EEPROMSettings(void); EEPROMSettings(void) {}
void begin(void) final; EventHandlerResult onSetup();
static void update(void); static void update(void);
static bool isValid(void); static bool isValid(void);
@ -39,6 +39,11 @@ class EEPROMSettings : public KaleidoscopePlugin {
static uint16_t crc(void); static uint16_t crc(void);
static uint16_t used(void); static uint16_t used(void);
#if KALEIDOSCOPE_ENABLE_V1_PLUGIN_API
protected:
void begin();
#endif
private: private:
static uint16_t next_start_; static uint16_t next_start_;
static bool is_valid_; static bool is_valid_;

Loading…
Cancel
Save