Package version up to 2.7.1
[platform/core/uifw/libtdm.git] / src / tdm_private.h
index 9c76d78..9e10713 100644 (file)
@@ -9,7 +9,7 @@
  *          Taeheon Kim <th908.kim@samsung.com>,
  *          YoungJun Cho <yj44.cho@samsung.com>,
  *          SooChan Lim <sc1.lim@samsung.com>,
- *          Boram Park <sc1.lim@samsung.com>
+ *          Boram Park <boram1288.park@samsung.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -40,6 +40,7 @@
 #include <string.h>
 #include <strings.h>
 #include <stdlib.h>
+#include <assert.h>
 #include <pthread.h>
 #include <errno.h>
 #include <unistd.h>
@@ -52,7 +53,6 @@
 #include <sys/syscall.h>
 #include <sys/eventfd.h>
 #include <math.h>
-#include <grp.h>
 
 #include <wayland-server-protocol.h>
 #include <tbm_bufmgr.h>
@@ -64,6 +64,7 @@
 #include "tdm_macro.h"
 #include "tdm_helper.h"
 #include "tdm_thread.h"
+#include "tdm_config.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -77,41 +78,48 @@ extern "C" {
  *  - function prototypes
  *****************************************************************************/
 
-extern int tdm_debug_module;
 extern int tdm_debug_dump;
 extern int tdm_ttrace_module;
 extern int tdm_ttrace_output;
 
-int
-tdm_display_is_valid(tdm_display *display);
+tdm_private_display *
+tdm_display_get(void);
 
 int
-tdm_display_check_module_abi(tdm_private_display *private_display, int abimaj, int abimin);
+tdm_module_check_abi(tdm_private_module *private_module, int abimaj, int abimin);
 
-tdm_private_output *
+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_pp *
-tdm_pp_find_stamp(tdm_private_display *private_display, double stamp);
-tdm_private_capture *
-tdm_capture_find_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);
 
-int
-tdm_output_is_valid(tdm_output *output);
 
+void *
+tdm_display_find_hwc_stamp(tdm_private_display *private_display, double stamp);
+tdm_private_hwc *
+tdm_display_find_private_hwc(tdm_private_display *private_display, tdm_hwc *hwc_backend);
+
+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_cb_vblank(tdm_output *output_backend, unsigned int sequence,
-                                        unsigned int tv_sec, unsigned int tv_usec, void *user_data);
+tdm_output_thread_cb_destroy(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
 void
-tdm_output_cb_commit(tdm_output *output_backend, unsigned int sequence,
-                                        unsigned int tv_sec, unsigned int tv_usec, void *user_data);
+tdm_output_thread_cb_change(tdm_private_display *private_display, void *object, tdm_thread_cb_base *cb_base, void *user_data);
 void
 tdm_output_cb_status(tdm_output *output_backend, tdm_output_conn_status status,
                                         void *user_data);
 void
 tdm_output_cb_dpms(tdm_output *output_backend, tdm_output_dpms dpms,
                                   void *user_data);
-tdm_error
-tdm_output_cb_need_validate(tdm_private_output *private_output);
 
 void
 tdm_output_vblank_print_wait_information(tdm_private_output *private_output, void *user_data);
@@ -124,14 +132,16 @@ tdm_error
 tdm_output_get_dpms_internal(tdm_output *output, tdm_output_dpms *dpms_value);
 
 tdm_error
-tdm_output_need_validate_event_init(tdm_output *output);
-tdm_error
 tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int mode);
 
 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);
 
@@ -147,22 +157,14 @@ tdm_error
 tdm_layer_set_buffer_internal(tdm_private_layer *private_layer, tbm_surface_h buffer);
 tdm_error
 tdm_layer_unset_buffer_internal(tdm_private_layer *private_layer);
-
 void
-tdm_pp_cb_done(tdm_pp *pp_backend, tbm_surface_h src, tbm_surface_h dst,
-                          void *user_data);
-void
-tdm_capture_cb_done(tdm_capture *capture_backend, tbm_surface_h buffer,
-                                       void *user_data);
+tdm_layer_free_buffer(tdm_private_layer *private_layer, tdm_private_layer_buffer *layer_buffer);
+
 tdm_error
 tdm_vblank_init(tdm_display *dpy);
 void
 tdm_vblank_deinit(tdm_display *dpy);
 tdm_error
-tdm_vblank_cb_vblank_SW(tdm_vblank *vblank, double vblank_stamp);
-tdm_error
-tdm_vblank_cb_vblank_create(tdm_vblank *vblank, double vblank_stamp);
-tdm_error
 tdm_vblank_set_add_front(tdm_vblank *vblank, unsigned int add_front);
 tdm_error
 tdm_vblank_set_resource(tdm_vblank *vblank, struct wl_resource *resource);
@@ -173,23 +175,22 @@ tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned in
 void
 tdm_vblank_get_vblank_list_information(tdm_display *dpy, char *reply, int *len);
 
-void
-tdm_output_call_change_handler_internal(tdm_private_output *private_output,
-                                                                               struct list_head *change_handler_list,
-                                                                               tdm_output_change_type type,
-                                                                               tdm_value value,
-                                                                               int no_check_thread_id);
-
+tdm_error
+tdm_pp_init(tdm_private_display *private_display);
 tdm_private_pp *
-tdm_pp_create_internal(tdm_private_display *private_display, tdm_error *error);
+tdm_pp_create_internal(tdm_private_module *private_module, tdm_error *error);
 void
 tdm_pp_destroy_internal(tdm_private_pp *private_pp);
 
-tdm_hwc_window *
-tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video, tdm_error *error);
 tdm_error
+tdm_hwc_init(tdm_private_display *private_display);
+tdm_hwc_window *
+tdm_hwc_window_create_internal(tdm_private_hwc *private_hwc, tdm_error *error);
+void
 tdm_hwc_window_destroy_internal(tdm_private_hwc_window * private_hwc_window);
 
+tdm_error
+tdm_capture_init(tdm_private_display *private_display);
 tdm_private_capture *
 tdm_capture_create_output_internal(tdm_private_output *private_output,
                                                                   tdm_error *error);
@@ -202,13 +203,6 @@ tdm_capture_destroy_internal(tdm_private_capture *private_capture);
 /* utility buffer functions for private */
 tdm_buffer_info*
 tdm_buffer_get_info(tbm_surface_h buffer);
-tbm_surface_h
-tdm_buffer_list_get_first_entry(struct list_head *list);
-void
-tdm_buffer_list_dump(struct list_head *list);
-
-void
-tdm_buffer_remove_release_handler_internal(tbm_surface_h buffer);
 
 /* event functions for private */
 tdm_error
@@ -246,22 +240,48 @@ extern int tdm_dump_enable;
 extern char *tdm_debug_dump_dir;
 
 tdm_error
-tdm_display_update_output(tdm_private_display *private_display,
-                                                 tdm_output *output_backend, int pipe);
+tdm_display_update_output(tdm_private_module *private_module, tdm_output *output_backend);
+void
+tdm_display_destroy_private_output(tdm_private_output *private_output);
+
 tdm_error
 tdm_display_enable_debug_module(const char*modules);
 tdm_error
 tdm_display_enable_dump(tdm_private_display *private_display, const char *dump_str, char *reply, int *len);
 tdm_error
-tdm_display_enable_path(const char *path);
-tdm_error
 tdm_display_enable_ttrace(tdm_private_display *private_display, const char *ttrace, int output_id, char *reply, int *len);
 tdm_error
 tdm_display_enable_fps(tdm_private_display *private_display, int enable);
 
 void
+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