summaryrefslogtreecommitdiff
path: root/src/drivers/nvs.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-02-06 09:01:12 +1100
committerjacqueline <me@jacqueline.id.au>2024-02-06 13:37:20 +1100
commit7fbb2162ee448b8d8a1744f9a3e31db86149da21 (patch)
treef07618f320c844f04b1171821ca2b63cc71d6f8c /src/drivers/nvs.cpp
parent0731a3fbcc5f68b8f36cb5e946f34fff78f0339e (diff)
downloadtangara-fw-7fbb2162ee448b8d8a1744f9a3e31db86149da21.tar.gz
Start keeping lock switch polarity in nvs
i will use this to do a sneaky trick; in-place upgrading brendan, hailey, and erin's devices
Diffstat (limited to 'src/drivers/nvs.cpp')
-rw-r--r--src/drivers/nvs.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/drivers/nvs.cpp b/src/drivers/nvs.cpp
index c8d4d636..8c9aa361 100644
--- a/src/drivers/nvs.cpp
+++ b/src/drivers/nvs.cpp
@@ -33,6 +33,7 @@ static constexpr char kKeyAmpCurrentVolume[] = "hp_vol";
static constexpr char kKeyAmpLeftBias[] = "hp_bias";
static constexpr char kKeyOnboarded[] = "intro";
static constexpr char kKeyPrimaryInput[] = "in_pri";
+static constexpr char kKeyLockPolarity[] = "lockpol";
auto NvsStorage::OpenSync() -> NvsStorage* {
esp_err_t err = nvs_flash_init();
@@ -85,6 +86,19 @@ auto NvsStorage::SchemaVersionSync() -> uint8_t {
return ret;
}
+auto NvsStorage::LockPolarity() -> bool {
+ uint8_t res;
+ if (nvs_get_u8(handle_, kKeyLockPolarity, &res) != ESP_OK) {
+ return false;
+ }
+ return res > 0;
+}
+
+auto NvsStorage::LockPolarity(bool p) -> bool {
+ nvs_set_u8(handle_, kKeyLockPolarity, p);
+ return nvs_commit(handle_) == ESP_OK;
+}
+
auto NvsStorage::PreferredBluetoothDevice()
-> std::optional<bluetooth::mac_addr_t> {
bluetooth::mac_addr_t out{0};