summaryrefslogtreecommitdiff
path: root/src/tangara/input/input_volume_buttons.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tangara/input/input_volume_buttons.cpp')
-rw-r--r--src/tangara/input/input_volume_buttons.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/tangara/input/input_volume_buttons.cpp b/src/tangara/input/input_volume_buttons.cpp
index 6720afae..5c814ffa 100644
--- a/src/tangara/input/input_volume_buttons.cpp
+++ b/src/tangara/input/input_volume_buttons.cpp
@@ -15,13 +15,15 @@ VolumeButtons::VolumeButtons(drivers::IGpios& gpios)
: gpios_(gpios),
up_("upper", actions::volumeUp()),
down_("lower", actions::volumeDown()),
- locked_(false) {}
+ locked_() {}
auto VolumeButtons::read(lv_indev_data_t* data) -> void {
bool up = !gpios_.Get(drivers::IGpios::Pin::kKeyUp);
bool down = !gpios_.Get(drivers::IGpios::Pin::kKeyDown);
- if ((up && down) || locked_) {
+ bool input_disabled = locked_.has_value() && (locked_ != drivers::NvsStorage::LockedInputModes::kVolumeOnly);
+
+ if ((up && down) || input_disabled) {
up = false;
down = false;
}
@@ -40,11 +42,11 @@ auto VolumeButtons::triggers()
}
auto VolumeButtons::onLock(drivers::NvsStorage::LockedInputModes mode) -> void {
- locked_ = true;
+ locked_ = mode;
}
auto VolumeButtons::onUnlock() -> void {
- locked_ = false;
+ locked_ = {};
}
} // namespace input