From dad0aaa9b33a5a217ac115334a94fe299dce9e08 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Fri, 10 Oct 2025 10:01:01 +0200 Subject: Add bluetooth module Can't really do anything yet, but finds the bluetooth adapter and registers an agent to make it pairable. --- src/looper.hh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/looper.hh') diff --git a/src/looper.hh b/src/looper.hh index 2f4c672..092dfe5 100644 --- a/src/looper.hh +++ b/src/looper.hh @@ -1,6 +1,7 @@ #ifndef LOOPER_HH #define LOOPER_HH +#include #include #include #include @@ -15,6 +16,8 @@ constexpr static uint8_t EVENT_READ = 1; constexpr static uint8_t EVENT_WRITE = 2; constexpr static uint8_t EVENT_ERROR = 4; +class Hook; + class Looper { public: virtual ~Looper() = default; @@ -32,12 +35,39 @@ class Looper { virtual bool run(logger::Logger& logger) = 0; virtual void quit() = 0; + virtual void add_hook(Hook* hook) = 0; + virtual void remove_hook(Hook* hook) = 0; + protected: Looper() = default; Looper(Looper const&) = delete; Looper& operator=(Looper const&) = delete; }; +class HookHelper { + public: + virtual ~HookHelper() = default; + + virtual void monitor(int fd, uint8_t events) = 0; + virtual void timeout(std::chrono::milliseconds timeout) = 0; + + protected: + HookHelper() = default; + HookHelper(HookHelper const&) = delete; + HookHelper& operator=(HookHelper const&) = delete; +}; + +class Hook { + public: + virtual ~Hook() = default; + + virtual void before(HookHelper& helper) = 0; + virtual void after() = 0; + + protected: + Hook() = default; +}; + [[nodiscard]] std::unique_ptr create(); -- cgit v1.2.3-70-g09d2