1 #ifndef DS_TIZEN_BACKEND_TDM_H
2 #define DS_TIZEN_BACKEND_TDM_H
8 #include <libds/interfaces/backend.h>
9 #include <libds/interfaces/output.h>
11 enum ds_tdm_output_status {
12 DS_TDM_OUTPUT_DISCONNECTED,
13 DS_TDM_OUTPUT_CONNECTED,
16 struct ds_tdm_output_mode {
17 struct ds_output_mode base;
18 const tdm_output_mode *tdm_mode;
23 struct ds_backend base;
25 tdm_display *tdm_display;
26 struct wl_display *wl_display;
27 struct wl_event_source *tdm_event;
29 struct wl_list outputs; // ds_tdm_output.link
30 struct wl_list buffers; // ds_tdm_buffer.link
32 struct wl_listener display_destroy;
40 struct ds_output base;
42 struct ds_tdm_backend *backend;
43 struct ds_tdm_buffer_queue *queue;
44 struct ds_buffer *front_buffer, *back_buffer;
53 enum ds_tdm_output_status status;
58 struct ds_buffer *buffer;
59 tbm_surface_h surface;
60 struct wl_list link; // ds_wl_backend.buffers
62 struct wl_listener buffer_release;
63 struct wl_listener buffer_destroy;
68 struct ds_tdm_backend *tdm_backend_from_backend(struct ds_backend *backend);
70 struct ds_tdm_output *create_tdm_output(struct ds_tdm_backend *tdm,
71 tdm_output *tdm_output);
73 void destroy_tdm_buffer(struct ds_tdm_buffer *buffer);