aboutsummaryrefslogtreecommitdiffstats
path: root/client-lib/AFBClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'client-lib/AFBClient.h')
-rw-r--r--client-lib/AFBClient.h45
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