Merge branch 'type-safe-backends' into 'master'

Draft: backend/multi: improve type-safety by exposing wlr_multi_backend

See merge request wlroots/wlroots!4034
This commit is contained in:
Simon Ser 2023-06-28 08:04:50 +00:00
commit 5770f66d01
6 changed files with 50 additions and 46 deletions

View file

@ -11,25 +11,31 @@
#include <wlr/backend.h>
struct wlr_multi_backend;
/**
* Creates a multi-backend. Multi-backends wrap an arbitrary number of backends
* and aggregate their new_output/new_input signals.
*/
struct wlr_backend *wlr_multi_backend_create(struct wl_display *display);
struct wlr_multi_backend *wlr_multi_backend_create(struct wl_display *display);
/**
* Adds the given backend to the multi backend. This should be done before the
* new backend is started.
*/
bool wlr_multi_backend_add(struct wlr_backend *multi,
bool wlr_multi_backend_add(struct wlr_multi_backend *multi,
struct wlr_backend *backend);
void wlr_multi_backend_remove(struct wlr_backend *multi,
void wlr_multi_backend_remove(struct wlr_multi_backend *multi,
struct wlr_backend *backend);
bool wlr_backend_is_multi(struct wlr_backend *backend);
bool wlr_multi_is_empty(struct wlr_backend *backend);
bool wlr_multi_backend_is_empty(struct wlr_multi_backend *backend);
void wlr_multi_for_each_backend(struct wlr_backend *backend,
void wlr_multi_backend_for_each(struct wlr_multi_backend *backend,
void (*callback)(struct wlr_backend *backend, void *data), void *data);
struct wlr_multi_backend *wlr_multi_backend_try_from(struct wlr_backend *backend);
struct wlr_backend *wlr_multi_backend_base(struct wlr_multi_backend *backend);
#endif