virtual: define functions and structure for supporting virtual output
[platform/core/uifw/libtdm.git] / src / tdm_private.h
index 5e1ed84..fd1fdae 100644 (file)
@@ -88,10 +88,17 @@ tdm_display_get(void);
 int
 tdm_module_check_abi(tdm_private_module *private_module, int abimaj, int abimin);
 
+tdm_error
+tdm_display_call_thread_cb_output_create(tdm_private_display *private_display, tdm_output *output);
+void
+tdm_display_thread_cb_output_create(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
 void *
 tdm_display_find_output_stamp(tdm_private_display *private_display, double stamp);
 tdm_private_output *
 tdm_display_find_private_output(tdm_private_display *private_display, tdm_output *output_backend);
+unsigned int
+tdm_display_find_empty_output_pipe(tdm_private_display *private_display);
+
 
 void *
 tdm_display_find_hwc_stamp(tdm_private_display *private_display, double stamp);
@@ -101,6 +108,10 @@ tdm_display_find_private_hwc(tdm_private_display *private_display, tdm_hwc *hwc_
 tdm_error
 tdm_output_init(tdm_private_display *private_display);
 
+tdm_error
+tdm_output_call_thread_cb_destroy(tdm_private_output *private_output);
+void
+tdm_output_thread_cb_destroy(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
 void
 tdm_output_thread_cb_change(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
 void
@@ -127,6 +138,10 @@ void
 tdm_output_remove_vblank_handler_internal(tdm_output *output, tdm_output_vblank_handler func, void *user_data);
 void
 tdm_output_remove_commit_handler_internal(tdm_output *output, tdm_output_commit_handler func, void *user_data);
+
+void
+tdm_output_request_mode_set(tdm_output *output, unsigned int index);
+
 void
 tdm_layer_remove_commit_handler_internal(tdm_layer *layer, tdm_layer_commit_handler func, void *user_data);
 
@@ -242,6 +257,29 @@ tdm_config_deinit(void);
 void
 tdm_monitor_server_command(tdm_display *dpy, const char *options, char *reply, int *len);
 
+/* virtual */
+tdm_voutput *
+tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error);
+tdm_error
+tdm_voutput_destroy(tdm_voutput *voutput);
+tdm_error
+tdm_voutput_set_available_mode(tdm_voutput *voutput, const tdm_output_mode *modes, int count);
+tdm_error
+tdm_voutput_set_physical_size(tdm_voutput *voutput, unsigned int mmwidth, unsigned int mmheight);
+tdm_error
+tdm_voutput_connect(tdm_voutput *voutput);
+tdm_error
+tdm_voutput_disconnect(tdm_voutput *voutput);
+tdm_error
+tdm_voutput_set_commit_func(tdm_voutput *voutput, tdm_voutput_commit_handler func);
+tdm_error
+tdm_voutput_attach_buffer(tdm_voutput *voutput, tbm_surface_h buffer);
+tdm_error
+tdm_voutput_commit_buffer(tdm_voutput *voutput);
+tdm_error
+tdm_voutput_commit_done(tdm_voutput *voutput);
+void *
+tdm_display_find_private_voutput(tdm_private_display *private_display, double stamp);
 #ifdef __cplusplus
 }
 #endif