diff options
author | Calvin Lee <cyrus296@gmail.com> | 2017-08-13 23:05:57 +0200 |
---|---|---|
committer | Calvin Lee <cyrus296@gmail.com> | 2017-08-13 23:08:33 +0200 |
commit | de66bdb8679de14377306b7a903f2bc5d62fd169 (patch) | |
tree | ab910dbaac5467bce3e4d1715a1b21ed9c4d199a /backend | |
parent | 41e735242dc8788618bb668ad70ea164e47099db (diff) |
Add backend detection functions
Resolves #80
Diffstat (limited to 'backend')
-rw-r--r-- | backend/drm/backend.c | 4 | ||||
-rw-r--r-- | backend/libinput/backend.c | 4 | ||||
-rw-r--r-- | backend/multi/backend.c | 9 |
3 files changed, 13 insertions, 4 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c index a2c9dff3..a84130ee 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -52,6 +52,10 @@ static struct wlr_backend_impl backend_impl = { .get_egl = wlr_drm_backend_get_egl }; +bool wlr_backend_is_drm(struct wlr_backend *b) { + return b->impl == &backend_impl; +} + static void session_signal(struct wl_listener *listener, void *data) { struct wlr_drm_backend *backend = wl_container_of(listener, backend, session_signal); diff --git a/backend/libinput/backend.c b/backend/libinput/backend.c index 44a1a4a9..18e4826c 100644 --- a/backend/libinput/backend.c +++ b/backend/libinput/backend.c @@ -103,6 +103,10 @@ static struct wlr_backend_impl backend_impl = { .destroy = wlr_libinput_backend_destroy }; +bool wlr_backend_is_libinput(struct wlr_backend *b) { + return b->impl == &backend_impl; +} + static void session_signal(struct wl_listener *listener, void *data) { struct wlr_libinput_backend *backend = wl_container_of(listener, backend, session_signal); struct wlr_session *session = data; diff --git a/backend/multi/backend.c b/backend/multi/backend.c index 99cf3db9..94b7dd60 100644 --- a/backend/multi/backend.c +++ b/backend/multi/backend.c @@ -1,3 +1,4 @@ +#include <assert.h> #include <stdbool.h> #include <stdlib.h> #include <wlr/backend/interface.h> @@ -111,6 +112,8 @@ static void output_remove_reemit(struct wl_listener *listener, void *data) { void wlr_multi_backend_add(struct wlr_backend *_multi, struct wlr_backend *backend) { + assert(wlr_backend_is_multi(backend)); + struct wlr_multi_backend *multi = (struct wlr_multi_backend *)_multi; struct subbackend_state *sub = calloc(1, sizeof(struct subbackend_state)); sub->backend = backend; @@ -135,10 +138,8 @@ void wlr_multi_backend_add(struct wlr_backend *_multi, } struct wlr_session *wlr_multi_get_session(struct wlr_backend *_backend) { - // TODO: assert(wlr_backend_is_multi(_backend)); - if (_backend->impl != &backend_impl) { - return NULL; - } + assert(wlr_backend_is_multi(_backend)); + struct wlr_multi_backend *backend = (struct wlr_multi_backend *)_backend; return backend->session; } |