summaryrefslogtreecommitdiff
path: root/src/input/input_nav_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_nav_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_nav_buttons.cpp')
-rw-r--r--src/input/input_nav_buttons.cpp32
1 files changed, 7 insertions, 25 deletions
diff --git a/src/input/input_nav_buttons.cpp b/src/input/input_nav_buttons.cpp
index d83568c8..9db19a2e 100644
--- a/src/input/input_nav_buttons.cpp
+++ b/src/input/input_nav_buttons.cpp
@@ -9,36 +9,18 @@
#include "event_queue.hpp"
#include "gpios.hpp"
#include "hal/lv_hal_indev.h"
+#include "input_hook_actions.hpp"
namespace input {
-NavButtons::NavButtons(drivers::IGpios& gpios) : gpios_(gpios) {}
+NavButtons::NavButtons(drivers::IGpios& gpios)
+ : gpios_(gpios),
+ up_(actions::scrollUp, actions::select, {}),
+ down_(actions::scrollDown, actions::select, {}) {}
auto NavButtons::read(lv_indev_data_t* data) -> void {
- bool vol_up = gpios_.Get(drivers::IGpios::Pin::kKeyUp);
- switch (up_.update(!vol_up)) {
- case Trigger::State::kClick:
- data->enc_diff = -1;
- break;
- case Trigger::State::kLongPress:
- events::Ui().Dispatch(ui::internal::BackPressed{});
- break;
- default:
- break;
- }
-
- bool vol_down = gpios_.Get(drivers::IGpios::Pin::kKeyDown);
- switch (down_.update(!vol_down)) {
- case Trigger::State::kClick:
- data->enc_diff = 1;
- break;
- case Trigger::State::kLongPress:
- data->state = LV_INDEV_STATE_PRESSED;
- break;
- default:
- data->state = LV_INDEV_STATE_RELEASED;
- break;
- }
+ up_.update(!gpios_.Get(drivers::IGpios::Pin::kKeyUp), data);
+ down_.update(!gpios_.Get(drivers::IGpios::Pin::kKeyDown), data);
}
} // namespace input