summaryrefslogtreecommitdiff
path: root/src/tangara/input/input_volume_buttons.cpp
diff options
context:
space:
mode:
authorTess Eisenberger <github@teisen.be>2025-02-01 16:15:17 -0800
committerteisenbe <teisenbe@noreply.codeberg.org>2025-02-02 04:48:42 +0000
commit1d485c97b0c03577a40b34fb762c76e98f417fa4 (patch)
tree38e42bdf95e99d26f39a3a30499ae96d6f07c877 /src/tangara/input/input_volume_buttons.cpp
parente8eaf3df10a896cb28e91cfc416b19303926a00a (diff)
downloadtangara-fw-1d485c97b0c03577a40b34fb762c76e98f417fa4.tar.gz
Add optional support for changing volume while locked
This adds a new Controls setting for adjusting the behavior when locked, and an option for allowing volume control.
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