aboutsummaryrefslogtreecommitdiff
path: root/include/wlr
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-06-04 19:30:37 -0400
committerDrew DeVault <sir@cmpwn.com>2017-06-04 19:30:50 -0400
commit7d82476590033a93761035ead1dd761b68c5c049 (patch)
tree7efe3f19d428df18a280906f65b4839b8168ed6f /include/wlr
parent7051d0e79dc74426c312f9eee0ce95adf85ff7c9 (diff)
Refactor type implementations
Diffstat (limited to 'include/wlr')
-rw-r--r--include/wlr/backend/interface.h17
-rw-r--r--include/wlr/session.h4
-rw-r--r--include/wlr/session/interface.h15
3 files changed, 34 insertions, 2 deletions
diff --git a/include/wlr/backend/interface.h b/include/wlr/backend/interface.h
new file mode 100644
index 00000000..15cfb6c3
--- /dev/null
+++ b/include/wlr/backend/interface.h
@@ -0,0 +1,17 @@
+#ifndef _WLR_BACKEND_INTERFACE_H
+#define _WLR_BACKEND_INTERFACE_H
+
+#include <stdbool.h>
+#include <wlr/backend.h>
+
+struct wlr_backend_state;
+
+struct wlr_backend_impl {
+ bool (*init)(struct wlr_backend_state *state);
+ void (*destroy)(struct wlr_backend_state *state);
+};
+
+struct wlr_backend *wlr_backend_create(const struct wlr_backend_impl *impl,
+ struct wlr_backend_state *state);
+
+#endif
diff --git a/include/wlr/session.h b/include/wlr/session.h
index 5f210f10..bd5a96c0 100644
--- a/include/wlr/session.h
+++ b/include/wlr/session.h
@@ -4,7 +4,7 @@
#include <wayland-server.h>
#include <sys/types.h>
-struct session_interface;
+struct session_impl;
// Passed to the listeners of device_paused/resumed
struct device_arg {
@@ -13,7 +13,7 @@ struct device_arg {
};
struct wlr_session {
- const struct session_interface *iface;
+ const struct session_impl *impl;
struct wl_signal device_paused;
struct wl_signal device_resumed;
diff --git a/include/wlr/session/interface.h b/include/wlr/session/interface.h
new file mode 100644
index 00000000..78256dd6
--- /dev/null
+++ b/include/wlr/session/interface.h
@@ -0,0 +1,15 @@
+#ifndef WLR_SESSION_INTERFACE_H
+#define WLR_SESSION_INTERFACE_H
+
+#include <wlr/session.h>
+
+struct session_impl {
+ struct wlr_session *(*start)(struct wl_display *disp);
+ void (*finish)(struct wlr_session *session);
+ int (*open)(struct wlr_session *restrict session,
+ const char *restrict path);
+ void (*close)(struct wlr_session *session, int fd);
+ bool (*change_vt)(struct wlr_session *session, int vt);
+};
+
+#endif