From c851b789faf71d0ef2092ae7d8cd3190c13d85c9 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 3 Oct 2023 15:00:28 +1100 Subject: Write up the new input modes to NVS and settings --- src/drivers/nvs.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/drivers/nvs.cpp') 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(InputModes::kButtonsOnly): + return InputModes::kButtonsOnly; + case static_cast(InputModes::kButtonsWithWheel): + return InputModes::kButtonsWithWheel; + case static_cast(InputModes::kDirectionalWheel): + return InputModes::kDirectionalWheel; + case static_cast(InputModes::kRotatingWheel): + return InputModes::kRotatingWheel; + default: + return InputModes::kRotatingWheel; + } +} + +auto NvsStorage::PrimaryInput(InputModes mode) -> bool { + uint8_t as_int = static_cast(mode); + nvs_set_u8(handle_, kKeyPrimaryInput, as_int); + return nvs_commit(handle_) == ESP_OK; +} + } // namespace drivers -- cgit v1.2.3