summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorailurux <ailuruxx@gmail.com>2024-02-13 10:42:47 +1100
committerailurux <ailuruxx@gmail.com>2024-02-13 10:42:47 +1100
commitbbbe3a3d5543bd4ffe218e45534dab64235b7e60 (patch)
treef3aa53930d887bfc1f06bd93aa37822ef8646954 /src/drivers
parent15f3da0f8ca9b85125ac557aa15c222e50fc8c8a (diff)
downloadtangara-fw-bbbe3a3d5543bd4ffe218e45534dab64235b7e60.tar.gz
Updated sensitivity nvs store
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/include/nvs.hpp3
-rw-r--r--src/drivers/nvs.cpp13
2 files changed, 9 insertions, 7 deletions
diff --git a/src/drivers/include/nvs.hpp b/src/drivers/include/nvs.hpp
index f862b43e..5bd825e5 100644
--- a/src/drivers/include/nvs.hpp
+++ b/src/drivers/include/nvs.hpp
@@ -88,7 +88,7 @@ class NvsStorage {
auto ScreenBrightness(uint_fast8_t) -> void;
auto ScrollSensitivity() -> uint_fast8_t;
- auto ScrollSensitivity(uint_fast8_t) -> bool;
+ auto ScrollSensitivity(uint_fast8_t) -> void;
auto AmpMaxVolume() -> uint16_t;
auto AmpMaxVolume(uint16_t) -> void;
@@ -121,6 +121,7 @@ class NvsStorage {
Setting<uint8_t> lock_polarity_;
Setting<uint8_t> brightness_;
+ Setting<uint8_t> sensitivity_;
Setting<uint16_t> amp_max_vol_;
Setting<uint16_t> amp_cur_vol_;
Setting<int8_t> amp_left_bias_;
diff --git a/src/drivers/nvs.cpp b/src/drivers/nvs.cpp
index bcfddd92..dd89a419 100644
--- a/src/drivers/nvs.cpp
+++ b/src/drivers/nvs.cpp
@@ -162,6 +162,7 @@ NvsStorage::NvsStorage(nvs_handle_t handle)
: handle_(handle),
lock_polarity_(kKeyLockPolarity),
brightness_(kKeyBrightness),
+ sensitivity_(kKeyScrollSensitivity),
amp_max_vol_(kKeyAmpMaxVolume),
amp_cur_vol_(kKeyAmpCurrentVolume),
amp_left_bias_(kKeyAmpLeftBias),
@@ -180,6 +181,7 @@ auto NvsStorage::Read() -> void {
std::lock_guard<std::mutex> lock{mutex_};
lock_polarity_.read(handle_);
brightness_.read(handle_);
+ sensitivity_.read(handle_);
amp_max_vol_.read(handle_);
amp_cur_vol_.read(handle_);
amp_left_bias_.read(handle_);
@@ -286,14 +288,13 @@ auto NvsStorage::ScreenBrightness(uint_fast8_t val) -> void {
}
auto NvsStorage::ScrollSensitivity() -> uint_fast8_t {
- uint8_t out = 10;
- nvs_get_u8(handle_, kKeyScrollSensitivity, &out);
- return out;
+ std::lock_guard<std::mutex> lock{mutex_};
+ return std::clamp<uint8_t>(sensitivity_.get().value_or(128), 0, 100);
}
-auto NvsStorage::ScrollSensitivity(uint_fast8_t val) -> bool {
- nvs_set_u8(handle_, kKeyScrollSensitivity, val);
- return nvs_commit(handle_) == ESP_OK;
+auto NvsStorage::ScrollSensitivity(uint_fast8_t val) -> void {
+ std::lock_guard<std::mutex> lock{mutex_};
+ sensitivity_.set(val);
}
auto NvsStorage::AmpMaxVolume() -> uint16_t {