config: add new Configuration class to simplify handling json config update api

This commit is contained in:
2023-02-20 07:07:32 +01:00
parent 53d5775c6a
commit 64666bbfb6
8 changed files with 85 additions and 42 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include <Figments.h>
#include <ArduinoJson.h>
#include "../Config.h"
class BPM : public InputSource, ConfigTaskMixin {
public:
@ -22,13 +23,10 @@ public:
ConfigTaskMixin::loop();
}
void handleConfigChange(const InputEvent& evt) override {
const JsonObject& cfg = *evt.as<JsonObject>();
if (cfg.containsKey("bpm.idle")) {
double requestedBPM = cfg["bpm.idle"];
m_msPerBeat = 60000.0 / (double)requestedBPM;
Log.notice("bpm: idle BPM set to %u (requested %lf)", msToBPM(m_msPerBeat), requestedBPM);
}
void handleConfigChange(const Configuration& cfg) override {
double requestedBPM = cfg.get("bpm.idle", msToBPM(m_msPerBeat));
m_msPerBeat = 60000.0 / (double)requestedBPM;
Log.notice("bpm: idle BPM set to %d (requested %d)", (int)msToBPM(m_msPerBeat), (int)requestedBPM);
}
InputEvent read() override {