summaryrefslogtreecommitdiff
path: root/src/input/include/input_hook.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-05-02 19:12:26 +1000
committerjacqueline <me@jacqueline.id.au>2024-05-02 19:12:26 +1000
commit1573a8c4cde1cd9528b422b2dcc598e37ffe94a7 (patch)
treed162822b8fd7054f81bace0c7a65ab4d5e6f93ef /src/input/include/input_hook.hpp
parenta231fd1c8afedbeb14b0bc77d76bad61db986059 (diff)
downloadtangara-fw-1573a8c4cde1cd9528b422b2dcc598e37ffe94a7.tar.gz
WIP merge cyclically dependent components into one big component
Diffstat (limited to 'src/input/include/input_hook.hpp')
-rw-r--r--src/input/include/input_hook.hpp75
1 files changed, 0 insertions, 75 deletions
diff --git a/src/input/include/input_hook.hpp b/src/input/include/input_hook.hpp
deleted file mode 100644
index a8705210..00000000
--- a/src/input/include/input_hook.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2024 jacqueline <me@jacqueline.id.au>
- *
- * SPDX-License-Identifier: GPL-3.0-only
- */
-
-#pragma once
-
-#include <functional>
-#include <optional>
-#include <string>
-
-#include "hal/lv_hal_indev.h"
-#include "lua.hpp"
-
-#include "input_trigger.hpp"
-
-namespace input {
-
-struct HookCallback {
- std::string name;
- std::function<void(lv_indev_data_t*)> fn;
-};
-
-class Hook {
- public:
- Hook(std::string name, std::optional<HookCallback> cb);
-
- auto invoke(lv_indev_data_t*) -> void;
- auto override(std::optional<HookCallback>) -> void;
-
- auto name() const -> const std::string& { return name_; }
- auto callback() -> std::optional<HookCallback>;
-
- // Not copyable or movable.
- Hook(const Hook&) = delete;
- Hook& operator=(const Hook&) = delete;
-
- private:
- std::string name_;
- std::optional<HookCallback> default_;
- std::optional<HookCallback> override_;
-};
-
-class TriggerHooks {
- public:
- TriggerHooks(std::string name, std::optional<HookCallback> cb)
- : TriggerHooks(name, cb, cb, cb, cb) {}
- TriggerHooks(std::string name,
- std::optional<HookCallback> click,
- std::optional<HookCallback> double_click,
- std::optional<HookCallback> long_press,
- std::optional<HookCallback> repeat);
-
- auto update(bool, lv_indev_data_t*) -> void;
- auto override(Trigger::State, std::optional<HookCallback>) -> void;
-
- auto name() const -> const std::string&;
- auto hooks() -> std::vector<std::reference_wrapper<Hook>>;
-
- // Not copyable or movable.
- TriggerHooks(const TriggerHooks&) = delete;
- TriggerHooks& operator=(const TriggerHooks&) = delete;
-
- private:
- std::string name_;
- Trigger trigger_;
-
- Hook click_;
- Hook double_click_;
- Hook long_press_;
- Hook repeat_;
-};
-
-} // namespace input