1 #ifndef _TDM_VIRTUAL_H_
2 #define _TDM_VIRTUAL_H_
15 #include <sys/types.h>
17 #include <sys/ioctl.h>
20 #include <tbm_surface.h>
21 #include <tbm_surface_internal.h>
22 #include <tdm_backend.h>
25 #include <tdm_helper.h>
27 /* virtual backend functions (display) */
28 tdm_error virtual_display_get_capability(tdm_backend_data *bdata, tdm_caps_display *caps);
29 tdm_output **virtual_display_get_outputs(tdm_backend_data *bdata, int *count, tdm_error *error);
30 tdm_error virtual_display_get_fd(tdm_backend_data *bdata, int *fd);
31 tdm_error virtual_display_handle_events(tdm_backend_data *bdata);
32 tdm_voutput *virtual_display_voutput_create(tdm_backend_data *bdata, const char *name, tdm_error *error);
34 tdm_error virtual_output_get_capability(tdm_output *output, tdm_caps_output *caps);
35 tdm_layer **virtual_output_get_layers(tdm_output *output, int *count, tdm_error *error);
36 tdm_error virtual_output_wait_vblank(tdm_output *output, int interval, int sync, void *user_data);
37 tdm_error virtual_output_set_vblank_handler(tdm_output *output, tdm_output_vblank_handler func);
38 tdm_error virtual_output_commit(tdm_output *output, int sync, void *user_data);
39 tdm_error virtual_output_set_commit_handler(tdm_output *output, tdm_output_commit_handler func);
40 tdm_error virtual_output_set_dpms(tdm_output *output, tdm_output_dpms dpms_value);
41 tdm_error virtual_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value);
42 tdm_error virtual_output_set_mode(tdm_output *output, const tdm_output_mode *mode);
43 tdm_error virtual_output_get_mode(tdm_output *output, const tdm_output_mode **mode);
44 tdm_error virtual_output_set_status_handler(tdm_output *output, tdm_output_status_handler func, void *user_data);
46 tdm_error virtual_voutput_set_available_mode(tdm_output *output, const tdm_output_mode *modes, int count);
47 tdm_error virtual_voutput_set_physical_size(tdm_output *output, unsigned int mmwidth, unsigned int mmheight);
48 tdm_error virtual_voutput_connect(tdm_output *output);
49 tdm_error virtual_voutput_disconnect(tdm_output *output);
50 tdm_error virtual_voutput_destroy(tdm_voutput *voutput);
51 tdm_output *virtual_voutput_get_output(tdm_voutput *voutput, tdm_error *error);
52 tdm_error virtual_voutput_set_commit_func(tdm_voutput *voutput, tdm_voutput_commit_handler commit_func);
53 tdm_error virtual_voutput_commit_done(tdm_voutput *voutput);
55 tdm_error virtual_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps);
56 tdm_error virtual_layer_set_info(tdm_layer *layer, tdm_info_layer *info);
57 tdm_error virtual_layer_get_info(tdm_layer *layer, tdm_info_layer *info);
58 tdm_error virtual_layer_set_buffer(tdm_layer *layer, tbm_surface_h buffer);
59 tdm_error virtual_layer_unset_buffer(tdm_layer *layer);
61 #define RETURN_VAL_IF_FAIL(cond, val) {\
63 TDM_ERR("'%s' failed", #cond);\
68 #define GOTO_IF_FAIL(cond, val) {\
70 TDM_ERR("'%s' failed", #cond);\
75 typedef struct _tdm_virtual_data {
80 struct list_head voutput_list;
81 struct list_head output_list;
82 struct list_head buffer_list;
85 void tdm_virtual_display_destroy_output_list(tdm_virtual_data *virtual_data);
87 #endif /* _TDM_VIRTUAL_H_ */