diff options
Diffstat (limited to 'client-lib/AFBClient.h')
-rw-r--r-- | client-lib/AFBClient.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/client-lib/AFBClient.h b/client-lib/AFBClient.h new file mode 100644 index 0000000..964e2b0 --- /dev/null +++ b/client-lib/AFBClient.h @@ -0,0 +1,45 @@ +#ifndef AFBCLIENT_H +#define AFBCLIENT_H + +#include <functional> + +class AFBClient { + AFBClient(); + ~AFBClient(); + + AFBClient(const AFBClient &) = delete; + AFBClient &operator=(const AFBClient &) = delete; + +public: + using handler_fun = std::function<void(const char *)>; + + enum EventType { + Event_Active = 1, + Event_Inactive, + + Event_Visible, + Event_Invisible, + + Event_SyncDraw, + Event_FlushDraw, + }; + + static AFBClient &instance(); + + int init(int port, char const *token); + int dispatch(); + + // WM API + int requestSurface(const char *label); + int activateSurface(const char *label); + int deactivateSurface(const char *label); + int endDraw(const char *label); + + void set_event_handler(enum EventType et, handler_fun f); + + struct Impl; + +private: + Impl *d; +}; +#endif // AFBCLIENT_H |