summaryrefslogtreecommitdiff
path: root/src/input/input_volume_buttons.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-04-15 14:18:20 +1000
committerjacqueline <me@jacqueline.id.au>2024-04-15 14:18:20 +1000
commit1baaa6dadcea5b8a85f1629e31119f4edba91b75 (patch)
treefeae0c19f1a6744b60f3e59a5d9b8df1c28c6ebf /src/input/input_volume_buttons.cpp
parentc24dfa6846929e8a7659c4aa2633b82494ac7fe1 (diff)
downloadtangara-fw-1baaa6dadcea5b8a85f1629e31119f4edba91b75.tar.gz
Use more generic 'hooks' for each input device's actions
Diffstat (limited to 'src/input/input_volume_buttons.cpp')
-rw-r--r--src/input/input_volume_buttons.cpp23
1 files changed, 5 insertions, 18 deletions
diff --git a/src/input/input_volume_buttons.cpp b/src/input/input_volume_buttons.cpp
index 0413222c..bc04cd66 100644
--- a/src/input/input_volume_buttons.cpp
+++ b/src/input/input_volume_buttons.cpp
@@ -7,29 +7,16 @@
#include "input_volume_buttons.hpp"
#include "event_queue.hpp"
#include "gpios.hpp"
+#include "input_hook_actions.hpp"
namespace input {
-VolumeButtons::VolumeButtons(drivers::IGpios& gpios) : gpios_(gpios) {}
+VolumeButtons::VolumeButtons(drivers::IGpios& gpios)
+ : gpios_(gpios), up_(actions::volumeUp), down_(actions::volumeDown) {}
auto VolumeButtons::read(lv_indev_data_t* data) -> void {
- bool vol_up = gpios_.Get(drivers::IGpios::Pin::kKeyUp);
- switch (up_.update(!vol_up)) {
- case Trigger::State::kNone:
- break;
- default:
- events::Audio().Dispatch(audio::StepUpVolume{});
- break;
- }
-
- bool vol_down = gpios_.Get(drivers::IGpios::Pin::kKeyDown);
- switch (down_.update(!vol_down)) {
- case Trigger::State::kNone:
- break;
- default:
- events::Audio().Dispatch(audio::StepDownVolume{});
- break;
- }
+ up_.update(!gpios_.Get(drivers::IGpios::Pin::kKeyUp), data);
+ down_.update(!gpios_.Get(drivers::IGpios::Pin::kKeyDown), data);
}
} // namespace input