summaryrefslogtreecommitdiff
path: root/src/drivers/nvs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/nvs.cpp')
-rw-r--r--src/drivers/nvs.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/drivers/nvs.cpp b/src/drivers/nvs.cpp
index 16a9609d..ffaa0a5e 100644
--- a/src/drivers/nvs.cpp
+++ b/src/drivers/nvs.cpp
@@ -31,6 +31,7 @@ static constexpr char kKeyBrightness[] = "bright";
static constexpr char kKeyAmpMaxVolume[] = "hp_vol_max";
static constexpr char kKeyAmpCurrentVolume[] = "hp_vol";
static constexpr char kKeyOnboarded[] = "intro";
+static constexpr char kKeyPrimaryInput[] = "in_pri";
auto NvsStorage::OpenSync() -> NvsStorage* {
esp_err_t err = nvs_flash_init();
@@ -166,4 +167,27 @@ auto NvsStorage::HasShownOnboarding(bool val) -> bool {
return nvs_commit(handle_) == ESP_OK;
}
+auto NvsStorage::PrimaryInput() -> InputModes {
+ uint8_t out = 3;
+ nvs_get_u8(handle_, kKeyPrimaryInput, &out);
+ switch (out) {
+ case static_cast<uint8_t>(InputModes::kButtonsOnly):
+ return InputModes::kButtonsOnly;
+ case static_cast<uint8_t>(InputModes::kButtonsWithWheel):
+ return InputModes::kButtonsWithWheel;
+ case static_cast<uint8_t>(InputModes::kDirectionalWheel):
+ return InputModes::kDirectionalWheel;
+ case static_cast<uint8_t>(InputModes::kRotatingWheel):
+ return InputModes::kRotatingWheel;
+ default:
+ return InputModes::kRotatingWheel;
+ }
+}
+
+auto NvsStorage::PrimaryInput(InputModes mode) -> bool {
+ uint8_t as_int = static_cast<uint8_t>(mode);
+ nvs_set_u8(handle_, kKeyPrimaryInput, as_int);
+ return nvs_commit(handle_) == ESP_OK;
+}
+
} // namespace drivers