bad37a0e592242fb84921f0d0a0bcf0132cb4aeb
[platform/core/uifw/libds-tizen.git] / include / libds / interfaces / backend.h
1 #ifndef LIBDS_INTERFACES_BACKEND_H
2 #define LIBDS_INTERFACES_BACKEND_H
3
4 #include <wayland-server.h>
5
6 struct ds_backend;
7
8 struct ds_backend_interface
9 {
10     bool (*start)(struct ds_backend *backend);
11     void (*destroy)(struct ds_backend *backend);
12     int (*get_drm_fd)(struct ds_backend *backend);
13 };
14
15 struct ds_backend
16 {
17     const struct ds_backend_interface *iface;
18
19     struct wl_display *display;
20
21     struct
22     {
23         struct wl_signal destroy;
24         struct wl_signal new_output;
25         struct wl_signal new_input;
26     } events;
27
28     bool started;
29 };
30
31 void
32 ds_backend_init(struct ds_backend *backend, const struct ds_backend_interface *iface);
33
34 void
35 ds_backend_finish(struct ds_backend *backend);
36
37 #endif