From 7d82476590033a93761035ead1dd761b68c5c049 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 4 Jun 2017 19:30:37 -0400 Subject: Refactor type implementations --- include/wlr/backend/interface.h | 17 +++++++++++++++++ include/wlr/session.h | 4 ++-- include/wlr/session/interface.h | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 include/wlr/backend/interface.h create mode 100644 include/wlr/session/interface.h (limited to 'include/wlr') 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 +#include + +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 #include -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 + +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 -- cgit v1.2.3