3 #include <wayland-server.h>
5 #include "libds/interfaces/backend.h"
8 ds_backend_start(struct ds_backend *backend)
10 if (backend->iface->start)
11 return backend->iface->start(backend);
13 backend->started = true;
19 ds_backend_destroy(struct ds_backend *backend)
24 if (backend->iface && backend->iface->destroy)
25 backend->iface->destroy(backend);
31 ds_backend_add_destroy_listener(struct ds_backend *backend,
32 struct wl_listener *listener)
34 wl_signal_add(&backend->events.destroy, listener);
38 ds_backend_add_new_output_listener(struct ds_backend *backend,
39 struct wl_listener *listener)
41 wl_signal_add(&backend->events.new_output, listener);
45 ds_backend_add_new_input_listener(struct ds_backend *backend,
46 struct wl_listener *listener)
48 wl_signal_add(&backend->events.new_input, listener);
52 ds_backend_init(struct ds_backend *backend,
53 const struct ds_backend_interface *iface)
55 backend->iface = iface;
56 wl_signal_init(&backend->events.destroy);
57 wl_signal_init(&backend->events.new_output);
58 wl_signal_init(&backend->events.new_input);
62 ds_backend_finish(struct ds_backend *backend)
64 wl_signal_emit(&backend->events.destroy, backend);