2 #include <wayland-server.h>
4 #include "libds/interfaces/backend.h"
7 ds_backend_start(struct ds_backend *backend)
9 if (backend->iface->start)
10 return backend->iface->start(backend);
12 backend->started = true;
18 ds_backend_destroy(struct ds_backend *backend)
23 if (backend->iface && backend->iface->destroy)
24 backend->iface->destroy(backend);
30 ds_backend_add_destroy_listener(struct ds_backend *backend,
31 struct wl_listener *listener)
33 wl_signal_add(&backend->events.destroy, listener);
37 ds_backend_add_new_output_listener(struct ds_backend *backend,
38 struct wl_listener *listener)
40 wl_signal_add(&backend->events.new_output, listener);
44 ds_backend_init(struct ds_backend *backend, const struct ds_backend_interface *iface)
46 backend->iface = iface;
47 wl_signal_init(&backend->events.destroy);
48 wl_signal_init(&backend->events.new_output);
52 ds_backend_finish(struct ds_backend *backend)
54 wl_signal_emit(&backend->events.destroy, backend);