summaryrefslogtreecommitdiff
path: root/src/tangara/input/input_volume_buttons.cpp
diff options
context:
space:
mode:
authorcooljqln <cooljqln@noreply.codeberg.org>2025-02-03 23:45:28 +0000
committercooljqln <cooljqln@noreply.codeberg.org>2025-02-03 23:45:28 +0000
commit38cb3d8219da0d26077d238c3e633f75a11055a3 (patch)
tree7279ecbf1be6e7384e3a90c15153863ae1cf994f /src/tangara/input/input_volume_buttons.cpp
parent28846b989b75ca6fe513462c209ce95bce2a46b7 (diff)
parent546daf71c1b04284848c4b5edfbaa3c5b4a284f4 (diff)
downloadtangara-fw-38cb3d8219da0d26077d238c3e633f75a11055a3.tar.gz
Merge pull request 'Add optional support for adjusting volume while locked' (#230) from teisenbe/tangara-fw:locked_input into main
Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/230
Diffstat (limited to 'src/tangara/input/input_volume_buttons.cpp')
-rw-r--r--src/tangara/input/input_volume_buttons.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/tangara/input/input_volume_buttons.cpp b/src/tangara/input/input_volume_buttons.cpp
index 7ffdfcdc..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;
}
@@ -39,12 +41,12 @@ auto VolumeButtons::triggers()
return {up_, down_};
}
-auto VolumeButtons::onLock() -> void {
- locked_ = true;
+auto VolumeButtons::onLock(drivers::NvsStorage::LockedInputModes mode) -> void {
+ locked_ = mode;
}
auto VolumeButtons::onUnlock() -> void {
- locked_ = false;
+ locked_ = {};
}
} // namespace input