diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-04-15 14:18:20 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-04-15 14:18:20 +1000 |
| commit | 1baaa6dadcea5b8a85f1629e31119f4edba91b75 (patch) | |
| tree | feae0c19f1a6744b60f3e59a5d9b8df1c28c6ebf /src/input/input_nav_buttons.cpp | |
| parent | c24dfa6846929e8a7659c4aa2633b82494ac7fe1 (diff) | |
| download | tangara-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.cpp | 32 |
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 |
