From 5666e55d0a6a474bf1c5f7e2d50a89785f4fbdd5 Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Mon, 6 Jun 2022 17:19:44 +0200 Subject: [PATCH] PersistentLEDMode: Revert back to auto-saving This basically reverts 07dcf1dc9be5845ffaab5f409b67f8ccf5e9b5a2, returning the plugin to its original behaviour of persisting the current led mode. We do this because we'll be using a new, different plugin to set the default led mode, to not conflate the two different functionalities. Signed-off-by: Gergely Nagy --- .../kaleidoscope/plugin/PersistentLEDMode.cpp | 62 +------------------ .../kaleidoscope/plugin/PersistentLEDMode.h | 9 +-- 2 files changed, 2 insertions(+), 69 deletions(-) diff --git a/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.cpp b/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.cpp index a093d2cc..13a2b077 100644 --- a/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.cpp +++ b/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.cpp @@ -40,9 +40,7 @@ EventHandlerResult PersistentLEDMode::onSetup() { Runtime.storage().get(settings_base_, settings_); // If our slice is uninitialized, then return early, without touching the - // current mode. We want auto_save by default, but because EEPROM is - // uninitialized (0xff), that'll be set anyway, so we don't need to. This - // saves us a storage commit. + // current mode. if (Runtime.storage().isSliceUninitialized(settings_base_, sizeof(settings_))) return EventHandlerResult::OK; @@ -52,9 +50,6 @@ EventHandlerResult PersistentLEDMode::onSetup() { } EventHandlerResult PersistentLEDMode::onLEDModeChange() { - if (!settings_.auto_save) - return EventHandlerResult::OK; - if (settings_.default_mode_index == ::LEDControl.get_mode_index()) return EventHandlerResult::OK; @@ -65,61 +60,6 @@ EventHandlerResult PersistentLEDMode::onLEDModeChange() { return EventHandlerResult::OK; } -EventHandlerResult PersistentLEDMode::onFocusEvent(const char *command) { - enum { - AUTO_SAVE, - DEFAULT_MODE, - } sub_command; - - if (::Focus.handleHelp(command, PSTR("led_mode.default\nled_mode.auto_save"))) - return EventHandlerResult::OK; - - if (strncmp_P(command, PSTR("led_mode."), 9) != 0) - return EventHandlerResult::OK; - - if (strcmp_P(command + 9, PSTR("default")) == 0) - sub_command = DEFAULT_MODE; - else if (strcmp_P(command + 9, PSTR("auto_save")) == 0) - sub_command = AUTO_SAVE; - else - return EventHandlerResult::OK; - - switch (sub_command) { - case DEFAULT_MODE: { - if (::Focus.isEOL()) { - ::Focus.send(settings_.default_mode_index); - } else { - uint8_t idx; - ::Focus.read(idx); - settings_.default_mode_index = idx; - ::LEDControl.set_mode(idx); - Runtime.storage().put(settings_base_, settings_); - Runtime.storage().commit(); - } - break; - } - - case AUTO_SAVE: { - if (::Focus.isEOL()) { - ::Focus.send(settings_.auto_save); - } else { - uint8_t v; - ::Focus.read(v); - setAutoSave(v != 0); - } - break; - } - } - - return EventHandlerResult::EVENT_CONSUMED; -} - -void PersistentLEDMode::setAutoSave(bool state) { - settings_.auto_save = state; - Runtime.storage().put(settings_base_, settings_); - Runtime.storage().commit(); -} - EventHandlerResult PersistentLEDMode::onNameQuery() { return ::Focus.sendName(F("PersistentLEDMode")); } diff --git a/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.h b/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.h index 85a70fa4..1375429e 100644 --- a/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.h +++ b/plugins/Kaleidoscope-PersistentLEDMode/src/kaleidoscope/plugin/PersistentLEDMode.h @@ -31,18 +31,11 @@ class PersistentLEDMode : public kaleidoscope::Plugin { EventHandlerResult onSetup(); EventHandlerResult onNameQuery(); EventHandlerResult onLEDModeChange(); - EventHandlerResult onFocusEvent(const char *command); - - void setAutoSave(bool state); - bool getAutoSave() { - return settings_.auto_save == 1; - } private: static uint16_t settings_base_; static struct settings { - uint8_t auto_save : 1; - uint8_t default_mode_index : 7; + uint8_t default_mode_index; } settings_; };