X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_private_types.h;h=80d867f6be41db70e2569b682b68464404b4e4c9;hb=d71f22895842611f3da167a328351be931e2e0af;hp=37adf72ca352f488da56d1063fb539cf868df27a;hpb=08707fc90dc3c6adccea7a958ed6a58604990aee;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_private_types.h b/src/tdm_private_types.h index 37adf72..80d867f 100644 --- a/src/tdm_private_types.h +++ b/src/tdm_private_types.h @@ -99,6 +99,7 @@ typedef enum { typedef struct _tdm_private_module tdm_private_module; typedef struct _tdm_private_display tdm_private_display; typedef struct _tdm_private_output tdm_private_output; +typedef struct _tdm_private_voutput tdm_private_voutput; typedef struct _tdm_private_layer tdm_private_layer; typedef struct _tdm_private_hwc tdm_private_hwc; typedef struct _tdm_private_hwc_window tdm_private_hwc_window; @@ -107,11 +108,15 @@ typedef struct _tdm_private_capture tdm_private_capture; typedef struct _tdm_private_loop tdm_private_loop; typedef struct _tdm_private_server tdm_private_server; typedef struct _tdm_private_thread tdm_private_thread; +typedef struct _tdm_private_output_create_handler tdm_private_output_create_handler; +typedef struct _tdm_private_output_destroy_handler tdm_private_output_destroy_handler; typedef struct _tdm_private_output_change_handler tdm_private_output_change_handler; typedef struct _tdm_private_output_commit_handler tdm_private_output_commit_handler; typedef struct _tdm_private_output_vblank_handler tdm_private_output_vblank_handler; +typedef struct _tdm_private_output_mode_change_handler tdm_private_output_mode_change_handler; typedef struct _tdm_private_layer_commit_handler tdm_private_layer_commit_handler; typedef struct _tdm_private_hwc_commit_handler tdm_private_hwc_commit_handler; +typedef struct _tdm_private_voutput_commit_handler tdm_private_voutput_commit_handler; typedef struct _tdm_private_layer_buffer tdm_private_layer_buffer; @@ -129,6 +134,7 @@ struct _tdm_private_module { tdm_display_capability capabilities; tdm_func_display func_display; tdm_func_output func_output; + tdm_func_voutput func_voutput; tdm_func_layer func_layer; tdm_func_hwc func_hwc; tdm_func_hwc_window func_hwc_window; @@ -142,6 +148,7 @@ struct _tdm_private_module { /* output, pp list */ struct list_head output_list; + struct list_head voutput_list; struct list_head pp_list; struct list_head capture_list; @@ -163,6 +170,8 @@ struct _tdm_private_display { #endif struct list_head module_list; + tdm_private_module *dummy_module; + tdm_private_module *virtual_module; tdm_private_module *current_module; //setted only when loading tdm_private_module *pp_module; //pp-support backend tdm_private_module *capture_module; //TODO: remove later @@ -170,6 +179,8 @@ struct _tdm_private_display { /* for event handling */ tdm_private_loop *private_loop; + struct list_head output_create_handler_list; + int print_fps; }; @@ -177,6 +188,7 @@ struct _tdm_private_output { struct list_head link; tdm_private_module *private_module; + tdm_private_voutput *private_voutput; int index; double stamp; @@ -210,6 +222,7 @@ struct _tdm_private_output { tdm_event_loop_source *vblank_timeout_timer; unsigned int vblank_timeout_timer_expired; + struct list_head destroy_handler_list; struct list_head change_handler_list; void **layers_ptr; @@ -226,6 +239,36 @@ struct _tdm_private_output { /* hwc */ int need_set_target_info; tdm_private_hwc *private_hwc; + + /* virtual */ + char name[TDM_NAME_LEN]; + struct list_head mode_change_request_handler_list; +}; + +struct _tdm_private_voutput { + struct list_head link; + + tdm_private_module *private_module; + + int regist_commit_cb; + + struct list_head voutput_commit_handler_list; + + int index; + + tdm_private_display *private_display; + tdm_private_output *private_output; + + tdm_voutput *voutput_backend; + + char name[TDM_NAME_LEN]; + tdm_output_mode *modes; + int mode_count; + unsigned int mmwidth; + unsigned int mmheight; + int connect_status; + + int set_voutput_commit; }; struct _tdm_private_layer { @@ -263,6 +306,9 @@ struct _tdm_private_layer { double fps_stamp; unsigned int fps_count; + + /* virtual */ + tbm_surface_h commiting_buffer; }; struct _tdm_private_hwc { @@ -384,6 +430,26 @@ struct _tdm_private_output_vblank_handler { pid_t owner_tid; }; +struct _tdm_private_output_create_handler { + struct list_head link; + + tdm_private_display *private_display; + tdm_output_create_handler func; + void *user_data; + + pid_t owner_tid; +}; + +struct _tdm_private_output_destroy_handler { + struct list_head link; + + tdm_private_output *private_output; + tdm_output_destroy_handler func; + void *user_data; + + pid_t owner_tid; +}; + struct _tdm_private_output_change_handler { struct list_head link; @@ -404,6 +470,24 @@ struct _tdm_private_output_commit_handler { pid_t owner_tid; }; +struct _tdm_private_voutput_commit_handler { + struct list_head link; + + tdm_private_voutput *private_voutput; + tdm_voutput_commit_func func; + void *user_data; + + pid_t owner_tid; +}; + +struct _tdm_private_output_mode_change_handler { + struct list_head link; + + tdm_private_output *private_output; + tdm_output_mode_change_request_handler func; + void *user_data; +}; + struct _tdm_private_hwc_commit_handler { struct list_head link; @@ -458,6 +542,8 @@ typedef struct _tdm_capture_private_buffer { typedef enum { TDM_THREAD_CB_NONE, TDM_THREAD_CB_EXIT, /* special type to exit the tdm-thread */ + TDM_THREAD_CB_DISPLAY_OUTPUT_CREATE, + TDM_THREAD_CB_OUTPUT_DESTROY, TDM_THREAD_CB_OUTPUT_COMMIT, TDM_THREAD_CB_OUTPUT_VBLANK, TDM_THREAD_CB_OUTPUT_STATUS, @@ -467,10 +553,13 @@ typedef enum { TDM_THREAD_CB_VBLANK_SW, TDM_THREAD_CB_VBLANK_CREATE, TDM_THREAD_CB_HWC_COMMIT, + TDM_THREAD_CB_VOUTPUT_COMMIT, TDM_THREAD_CB_MAX, } tdm_thread_cb_type; typedef struct _tdm_thread_cb_base tdm_thread_cb_base; +typedef struct _tdm_thread_cb_display_output_create tdm_thread_cb_display_output_create; +typedef struct _tdm_thread_cb_output_destroy tdm_thread_cb_output_destroy; typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_output_commit; typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_output_vblank; typedef struct _tdm_thread_cb_output_dpms tdm_thread_cb_output_dpms; @@ -480,6 +569,7 @@ typedef struct _tdm_thread_cb_capture_done tdm_thread_cb_capture_done; typedef struct _tdm_thread_cb_vblank_sw tdm_thread_cb_vblank_sw; typedef struct _tdm_thread_cb_vblank_create tdm_thread_cb_vblank_create; typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_hwc_commit; +typedef struct _tdm_thread_cb_output_vblank tdm_thread_cb_voutput_commit; struct _tdm_thread_cb_base { tdm_thread_cb_type type; @@ -489,6 +579,15 @@ struct _tdm_thread_cb_base { unsigned int sync; }; +struct _tdm_thread_cb_display_output_create { + tdm_thread_cb_base base; + tdm_output *output; +}; + +struct _tdm_thread_cb_output_destroy { + tdm_thread_cb_base base; +}; + struct _tdm_thread_cb_output_vblank { tdm_thread_cb_base base; unsigned int sequence;