aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-08-13 17:13:12 -0400
committerGitHub <noreply@github.com>2017-08-13 17:13:12 -0400
commitf11b38f97ad7eee040339604100fe545cbf77bb5 (patch)
treeab910dbaac5467bce3e4d1715a1b21ed9c4d199a
parent41e735242dc8788618bb668ad70ea164e47099db (diff)
parentde66bdb8679de14377306b7a903f2bc5d62fd169 (diff)
Merge pull request #82 from 4e554c4c/detection
Add backend detection functions
-rw-r--r--backend/drm/backend.c4
-rw-r--r--backend/libinput/backend.c4
-rw-r--r--backend/multi/backend.c9
-rw-r--r--include/wlr/backend/drm.h2
-rw-r--r--include/wlr/backend/libinput.h2
5 files changed, 17 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;
}
diff --git a/include/wlr/backend/drm.h b/include/wlr/backend/drm.h
index 7332d608..fe1cc5a7 100644
--- a/include/wlr/backend/drm.h
+++ b/include/wlr/backend/drm.h
@@ -9,4 +9,6 @@
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
struct wlr_session *session, struct wlr_udev *udev, int gpu_fd);
+bool wlr_backend_is_drm(struct wlr_backend *backend);
+
#endif
diff --git a/include/wlr/backend/libinput.h b/include/wlr/backend/libinput.h
index bba68888..b227a7ad 100644
--- a/include/wlr/backend/libinput.h
+++ b/include/wlr/backend/libinput.h
@@ -12,4 +12,6 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
struct wlr_session *session, struct wlr_udev *udev);
struct libinput_device *wlr_libinput_get_device_handle(struct wlr_input_device *dev);
+bool wlr_backend_is_libinput(struct wlr_backend *backend);
+
#endif