|
Tizen HAL API
1.0
|
The TDM provides functions for managing display server.
#include <hal-tdm.h>
The TDM functions provides an abstraction interface for display server including:
For more information on the TDM features and the macros, see HAL TDM programming guides and tutorials.
Typedefs | |
| typedef struct _hal_tdm_backend_data | hal_tdm_backend_data |
| The structure type of the tdm backend data. | |
| typedef struct _hal_tdm_display_funcs | hal_tdm_display_funcs |
| The structure type of the TDM HAL's display functions for backend. | |
| typedef struct _hal_tdm_output_funcs | hal_tdm_output_funcs |
| The structure type of the TDM HAL's output functions for backend. | |
| typedef struct _hal_tdm_hwc_funcs | hal_tdm_hwc_funcs |
| The structure type of the TDM HAL's hwc functions for backend. | |
| typedef struct _hal_tdm_hwc_window_funcs | hal_tdm_hwc_window_funcs |
| The structure type of the TDM HAL's hwc window functions for backend. | |
| typedef struct _hal_tdm_pp_funcs | hal_tdm_pp_funcs |
| The structure type of the TDM HAL's post-processing functions for backend. | |
| typedef struct _hal_tdm_capture_funcs | hal_tdm_capture_funcs |
| The structure type of the TDM HAL's capture functions for backend. | |
| typedef struct _hal_tdm_voutput_funcs | hal_tdm_voutput_funcs |
| The structure type of the TDM HAL's virtual output functions for backend. | |
| typedef hal_tdm_error(* | hal_tdm_master_drm_fd_handler )(hal_tdm_fd master_drm_fd, void *user_data) |
| The function for setting master_drm_fd to backend. | |
| typedef struct _hal_tdm_size | hal_tdm_size |
| The size structure. | |
| typedef struct _hal_tdm_pos | hal_tdm_pos |
| The position structure. | |
| typedef struct _hal_tdm_caps_display | hal_tdm_caps_display |
| The display capability structure for CAPTURE. | |
| typedef struct _hal_tdm_output_mode | hal_tdm_output_mode |
| The output mode structure compatible with drm_mode_modeinfo in drm-uapi. | |
| typedef struct _hal_tdm_prop | hal_tdm_prop |
| The property structure of tdm. | |
| typedef struct _hal_tdm_info_config | hal_tdm_info_config |
| The info config structure for window, layer. | |
| typedef struct _hal_tdm_region | hal_tdm_region |
| The region structure. | |
| typedef struct _hal_tdm_hwc_window_info | hal_tdm_hwc_window_info |
| The hwc window info structure to composite. | |
| typedef struct _hal_tdm_info_pp | hal_tdm_info_pp |
| The information structure to use post-processing. | |
| typedef struct _hal_tdm_info_capture | hal_tdm_info_capture |
| The capture info structure. | |
| typedef int | hal_tdm_fd |
| The tdm fd. | |
| typedef void | hal_tdm_display |
| The tdm display object. | |
| typedef void | hal_tdm_module |
| The tdm backend object. | |
| typedef void | hal_tdm_output |
| The tdm output object. | |
| typedef void | hal_tdm_voutput |
| The tdm voutput object. | |
| typedef void | hal_tdm_hwc |
| The tdm hwc object. | |
| typedef void | hal_tdm_hwc_window |
| The tdm hwc window object. | |
| typedef void | hal_tdm_capture |
| The tdm capture object. | |
| typedef void | hal_tdm_pp |
| The tdm pp object. | |
| typedef void | hal_tdm_vblank |
| The tdm vblank object. | |
| typedef void | hal_tdm_backend |
| The tdm backend object. | |
| typedef hal_tdm_error(* | hal_tdm_event_loop_fd_handler )(int event_fd, hal_tdm_event_loop_mask mask, void *user_data) |
| The event_loop_fd handler. | |
| typedef void(* | hal_tdm_output_create_handler )(hal_tdm_display *dpy, hal_tdm_output *output, void *user_data) |
| The output create handler. | |
| typedef void(* | hal_tdm_output_destroy_handler )(hal_tdm_output *output, void *user_data) |
| The output destroy handler. | |
| typedef void(* | hal_tdm_output_change_handler )(hal_tdm_output *output, hal_tdm_output_change_type type, hal_tdm_value value, void *user_data) |
| The output change handler. | |
| typedef void(* | hal_tdm_output_vblank_handler )(hal_tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
| The vblank handler. | |
| typedef void(* | hal_tdm_output_commit_handler )(hal_tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
| The output commit handler. | |
| typedef void(* | hal_tdm_output_mode_change_request_handler )(hal_tdm_output *output, unsigned int index, void *user_data) |
| The output mode change request handler. | |
| typedef void(* | hal_tdm_output_status_handler )(hal_tdm_output *output, hal_tdm_output_conn_status status, void *user_data) |
| The output status handler. | |
| typedef void(* | hal_tdm_output_dpms_handler )(hal_tdm_output *output, hal_tdm_output_dpms dpms, void *user_data) |
| The output dpms handler. | |
| typedef void(* | hal_tdm_pp_done_handler )(hal_tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) |
| The done handler of the pp object. | |
| typedef void(* | hal_tdm_capture_done_handler )(hal_tdm_capture *capture, tbm_surface_h buffer, void *user_data) |
| The done handler of the capture object. | |
| typedef void(* | hal_tdm_vblank_create_handler )(hal_tdm_vblank *vblank, void *user_data) |
| The create handler of the vblank object. | |
| typedef void(* | hal_tdm_hwc_commit_handler )(hal_tdm_hwc *hwc, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
| The hwc commit handler. | |
| typedef void(* | hal_tdm_voutput_commit_handler )(hal_tdm_voutput *voutput, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
| The voutput commit handler. | |
| typedef void(* | hal_tdm_voutput_commit_func )(hal_tdm_voutput *voutput, tbm_surface_h buffer) |
| The voutput commit function. | |
| typedef struct _hal_tdm_event_source | hal_tdm_event_source |
| The structure for event source information. | |
| typedef struct _hal_tdm_caps_output | hal_tdm_caps_output |
| The structure for output's capabilities. | |
| typedef struct _hal_tdm_caps_pp | hal_tdm_caps_pp |
| The structure for post-processing's capabilities. | |
| typedef struct _hal_tdm_caps_capture | hal_tdm_caps_capture |
| The structure for capture's capabilities. | |
Defines | |
| #define | HAL_TDM_NAME_LEN 64 |
| Definition of Max Name Length in HAL_TDM_MODULE. | |
| #define | HAL_TDM_PATH_LEN 1024 |
| Definition of Max Path Length in HAL_TDM_MODULE. | |
| #define | HAL_TDM_EVENT_SOURCE_MAX 3 |
| Definition of Max count of event source in HAL_TDM_MODULE. | |
| struct _hal_tdm_backend_data |
The structure type of the tdm backend data.
capture functions of backend
The handle of display
display functions of backend
The drm file descriptor
The event source array
The flag of having drm device or not
hwc functions of backend
hwc_window functions of backend
The flag of master or not
The handler function for setting master drm file descriptor.
The number of event source
output functions of backend
post-processing functions of backend
The user data for callback
voutput functions of backend
| struct _hal_tdm_display_funcs |
The structure type of the TDM HAL's display functions for backend.
Data Fields | |
| hal_tdm_error(* | display_get_capability )(hal_tdm_display *display, hal_tdm_caps_display *caps) |
| hal_tdm_error(* | display_get_pp_capability )(hal_tdm_display *display, hal_tdm_caps_pp *caps) |
| hal_tdm_error(* | display_get_capture_capability )(hal_tdm_display *display, hal_tdm_caps_capture *caps) |
| hal_tdm_output **(* | display_get_outputs )(hal_tdm_display *display, int *count, hal_tdm_error *error) |
| hal_tdm_error(* | display_get_fd )(hal_tdm_display *display, int *fd) |
| hal_tdm_error(* | display_handle_events )(hal_tdm_display *display) |
| hal_tdm_pp *(* | display_create_pp )(hal_tdm_display *display, hal_tdm_error *error) |
| hal_tdm_voutput *(* | display_voutput_create )(hal_tdm_display *display, const char *name, hal_tdm_error *error) |
| hal_tdm_pp*(* _hal_tdm_display_funcs::display_create_pp)(hal_tdm_display *display, hal_tdm_error *error) |
Create the post-processing object of hal_tdm_display.
| hal_tdm_error(* _hal_tdm_display_funcs::display_get_capability)(hal_tdm_display *display, hal_tdm_caps_display *caps) |
Get the display capabilities of hal_tdm_display.
| hal_tdm_error(* _hal_tdm_display_funcs::display_get_capture_capability)(hal_tdm_display *display, hal_tdm_caps_capture *caps) |
Get the capture capabilities of the hal_tdm_display.
| hal_tdm_error(* _hal_tdm_display_funcs::display_get_fd)(hal_tdm_display *display, int *fd) |
Get the file descriptor of hal_tdm_display.
| hal_tdm_output**(* _hal_tdm_display_funcs::display_get_outputs)(hal_tdm_display *display, int *count, hal_tdm_error *error) |
Get the output array of hal_tdm_display.
| hal_tdm_error(* _hal_tdm_display_funcs::display_get_pp_capability)(hal_tdm_display *display, hal_tdm_caps_pp *caps) |
Get the post-processing capabilities of hal_tdm_display.
Handle the events which happens on the fd of hal_tdm_display.
| hal_tdm_voutput*(* _hal_tdm_display_funcs::display_voutput_create)(hal_tdm_display *display, const char *name, hal_tdm_error *error) |
Create the virtual output object of hal_tdm_display.
| struct _hal_tdm_output_funcs |
The structure type of the TDM HAL's output functions for backend.
| hal_tdm_capture*(* _hal_tdm_output_funcs::output_create_capture)(hal_tdm_output *output, hal_tdm_error *error) |
Create the capture object from the output object.
| hal_tdm_error(* _hal_tdm_output_funcs::output_get_capability)(hal_tdm_output *output, hal_tdm_caps_output *caps) |
Get the capabilities of the hal_tdm_output object.
| hal_tdm_error(* _hal_tdm_output_funcs::output_get_dpms)(hal_tdm_output *output, hal_tdm_output_dpms *dpms_value) |
Get DPMS of the output object.
| hal_tdm_hwc*(* _hal_tdm_output_funcs::output_get_hwc)(hal_tdm_output *output, hal_tdm_error *error) |
Get the hwc object of the output object.
| hal_tdm_error(* _hal_tdm_output_funcs::output_get_mode)(hal_tdm_output *output, const hal_tdm_output_mode **mode) |
Get the mode of the output object.
| hal_tdm_error(* _hal_tdm_output_funcs::output_get_property)(hal_tdm_output *output, unsigned int id, hal_tdm_value *value) |
Get the output's property which has the given id.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_dpms)(hal_tdm_output *output, hal_tdm_output_dpms dpms_value) |
Set DPMS of the output object synchronously.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_dpms_async)(hal_tdm_output *output, hal_tdm_output_dpms dpms_value, int *sync) |
Set DPMS of the output object asynchronously.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_dpms_handler)(hal_tdm_output *output, hal_tdm_output_dpms_handler func, void *user_data) |
Set the output's dpms handler.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_mirror)(hal_tdm_output *output, hal_tdm_output *src_output, hal_tdm_transform transform) |
Set the mirror image of the src_output to the output.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_mode)(hal_tdm_output *output, const hal_tdm_output_mode *mode) |
Set one of available modes of the output object.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_property)(hal_tdm_output *output, unsigned int id, hal_tdm_value value) |
Set the output's property which has the given id.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_status_handler)(hal_tdm_output *output, hal_tdm_output_status_handler func, void *user_data) |
Set the output connection status handler.
| hal_tdm_error(* _hal_tdm_output_funcs::output_set_vblank_handler)(hal_tdm_output *output, hal_tdm_output_vblank_handler func) |
Set the handler of vblank.
Unset the mirror image.
| hal_tdm_error(* _hal_tdm_output_funcs::output_wait_vblank)(hal_tdm_output *output, int interval, int sync, void *user_data) |
Wait for VBLANK of output.
| struct _hal_tdm_voutput_funcs |
The structure type of the TDM HAL's virtual output functions for backend.
Data Fields | |
| hal_tdm_error(* | voutput_destroy )(hal_tdm_voutput *voutput) |
| hal_tdm_error(* | voutput_set_available_mode )(hal_tdm_voutput *voutput, const hal_tdm_output_mode *modes, int count) |
| hal_tdm_error(* | voutput_set_physical_size )(hal_tdm_voutput *voutput, unsigned int mmwidth, unsigned int mmheight) |
| hal_tdm_error(* | voutput_connect )(hal_tdm_voutput *voutput) |
| hal_tdm_error(* | voutput_disconnect )(hal_tdm_voutput *voutput) |
| hal_tdm_output *(* | voutput_get_output )(hal_tdm_voutput *voutput, hal_tdm_error *error) |
| hal_tdm_error(* | voutput_set_commit_func )(hal_tdm_voutput *voutput, hal_tdm_voutput_commit_handler commit_func) |
| hal_tdm_error(* | voutput_commit_done )(hal_tdm_voutput *voutput) |
| hal_tdm_error(* | voutput_set_target_buffer_queue_flag )(hal_tdm_voutput *voutput, int flags) |
Notify commit done to backend.
Set connect status of the virtual output object.
Destroy the virtual output object of the backend module.
Set disconnect status of the virtual output object.
| hal_tdm_output*(* _hal_tdm_voutput_funcs::voutput_get_output)(hal_tdm_voutput *voutput, hal_tdm_error *error) |
Get output object from virtual output object.
| hal_tdm_error(* _hal_tdm_voutput_funcs::voutput_set_available_mode)(hal_tdm_voutput *voutput, const hal_tdm_output_mode *modes, int count) |
Set available modes of the virtual output object.
| hal_tdm_error(* _hal_tdm_voutput_funcs::voutput_set_commit_func)(hal_tdm_voutput *voutput, hal_tdm_voutput_commit_handler commit_func) |
Set the user commit function
| hal_tdm_error(* _hal_tdm_voutput_funcs::voutput_set_physical_size)(hal_tdm_voutput *voutput, unsigned int mmwidth, unsigned int mmheight) |
Set physical size(mm) of the virtual output object.
| hal_tdm_error(* _hal_tdm_voutput_funcs::voutput_set_target_buffer_queue_flag)(hal_tdm_voutput *voutput, int flags) |
Set target buffer queue flag of the virtual output's hwc object
| struct _hal_tdm_hwc_funcs |
The structure type of the TDM HAL's hwc functions for backend.
Accepts the validation required by the backend.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_commit)(hal_tdm_hwc *hwc, int sync, void *user_data) |
Commit changes for the hwc object.
| hal_tdm_hwc_window*(* _hal_tdm_hwc_funcs::hwc_create_window)(hal_tdm_hwc *hwc, hal_tdm_error *error) |
Create a new window on the given hwc.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_available_properties)(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count) |
Get the available property array of the hwc object.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_capabilities)(hal_tdm_hwc *hwc, hal_tdm_hwc_capability *capabilities) |
Get the hwc capabilities.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_changed_composition_types)(hal_tdm_hwc *hwc, uint32_t *num_elements, hal_tdm_hwc_window **hwc_window, hal_tdm_hwc_window_composition *composition_types) |
Get changed composition types.
| tbm_surface_queue_h(* _hal_tdm_hwc_funcs::hwc_get_client_target_buffer_queue)(hal_tdm_hwc *hwc, hal_tdm_error *error) |
Get the client target buffer queue.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_commit_fence)(hal_tdm_hwc *hwc, int *commit_fence) |
Get commit fence.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_commit_interval)(hal_tdm_hwc *hwc, hal_tdm_hwc_commit_interval *interval) |
Get the commit interval.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_property)(hal_tdm_hwc *hwc, uint32_t id, hal_tdm_value *value) |
Get the property which has the given id on the hwc object.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_release_fences)(hal_tdm_hwc *hwc, uint32_t *num_elements, hal_tdm_hwc_window **hwc_windows, int *release_fences) |
Get release fences.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_video_available_properties)(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count) |
Get the available video property array of the hwc object.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_get_video_supported_formats)(hal_tdm_hwc *hwc, const tbm_format **formats, int *count) |
Get video the supported format array for the hwc windows of the hwc object.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_set_client_target_acquire_fence)(hal_tdm_hwc *hwc, int acquire_fence) |
Set the acquire fence of client target buffer.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_set_client_target_buffer)(hal_tdm_hwc *hwc, tbm_surface_h target_buffer, hal_tdm_region damage) |
Set the client target buffer.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_set_client_target_buffer_info)(hal_tdm_hwc *hwc, hal_tdm_hwc_window_info *info) |
Set the information of the client target buffer.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_set_commit_handler)(hal_tdm_hwc *hwc, hal_tdm_hwc_commit_handler func) |
Set the user commit handler.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_set_property)(hal_tdm_hwc *hwc, uint32_t id, hal_tdm_value value) |
Set the property which has the given id on the hwc object.
| hal_tdm_error(* _hal_tdm_hwc_funcs::hwc_validate)(hal_tdm_hwc *hwc, hal_tdm_hwc_window **composited_wnds, uint32_t num_wnds, uint32_t *num_types) |
Validate the hwc.
| struct _hal_tdm_hwc_window_funcs |
The structure type of the TDM HAL's hwc window functions for backend.
| tbm_surface_queue_h(* _hal_tdm_hwc_window_funcs::hwc_window_acquire_buffer_queue)(hal_tdm_hwc_window *hwc_window, hal_tdm_error *error) |
Acquire the buffer queue handle for the window object.
| void(* _hal_tdm_hwc_window_funcs::hwc_window_destroy)(hal_tdm_hwc_window *hwc_window) |
Destroys the given window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_get_constraints)(hal_tdm_hwc_window *hwc_window, int *constraints) |
Get the constraints of hwc_window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_get_property)(hal_tdm_hwc_window *hwc_window, uint32_t id, hal_tdm_value *value) |
Get the property which has the given id.
| void(* _hal_tdm_hwc_window_funcs::hwc_window_release_buffer_queue)(hal_tdm_hwc_window *hwc_window, tbm_surface_queue_h queue) |
Release the buffer queue for the window object.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_acquire_fence)(hal_tdm_hwc_window *hwc_window, int acquire_fence) |
Set the acquire fence of hwc_window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_buffer)(hal_tdm_hwc_window *hwc_window, tbm_surface_h buffer) |
Set the TDM buffer to the window object.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_buffer_damage)(hal_tdm_hwc_window *hwc_window, hal_tdm_region damage) |
Set the buffer damage.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_composition_type)(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_composition composition_type) |
Sets the desired composition type of the given window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_cursor_image)(hal_tdm_hwc_window *hwc_window, int width, int height, int stride, void *ptr) |
Set the cursor image to hwc_window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_info)(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_info *info) |
Set the information to the window object.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_name)(hal_tdm_hwc_window *hwc_window, const char *name) |
Set the name of hwc_window.
| hal_tdm_error(* _hal_tdm_hwc_window_funcs::hwc_window_set_property)(hal_tdm_hwc_window *hwc_window, uint32_t id, hal_tdm_value value) |
Set the property which has the given id.
| struct _hal_tdm_pp_funcs |
The structure type of the TDM HAL's post-processing functions for backend.
Data Fields | |
| void(* | pp_destroy )(hal_tdm_pp *pp) |
| hal_tdm_error(* | pp_set_info )(hal_tdm_pp *pp, hal_tdm_info_pp *info) |
| hal_tdm_error(* | pp_attach )(hal_tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst) |
| hal_tdm_error(* | pp_commit )(hal_tdm_pp *pp) |
| hal_tdm_error(* | pp_set_done_handler )(hal_tdm_pp *pp, hal_tdm_pp_done_handler func, void *user_data) |
| hal_tdm_error(* _hal_tdm_pp_funcs::pp_attach)(hal_tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst) |
Attach the source buffer and the destination buffer to the post-processing object.
Commit changes for the post-processing object.
| void(* _hal_tdm_pp_funcs::pp_destroy)(hal_tdm_pp *pp) |
Destroy the post-processing object.
| hal_tdm_error(* _hal_tdm_pp_funcs::pp_set_done_handler)(hal_tdm_pp *pp, hal_tdm_pp_done_handler func, void *user_data) |
Set the processing done handler to the post-processing object.
| hal_tdm_error(* _hal_tdm_pp_funcs::pp_set_info)(hal_tdm_pp *pp, hal_tdm_info_pp *info) |
Set the geometry information to the post-processing object.
| struct _hal_tdm_capture_funcs |
The structure type of the TDM HAL's capture functions for backend.
Data Fields | |
| void(* | capture_destroy )(hal_tdm_capture *capture) |
| hal_tdm_error(* | capture_set_info )(hal_tdm_capture *capture, hal_tdm_info_capture *info) |
| hal_tdm_error(* | capture_attach )(hal_tdm_capture *capture, tbm_surface_h buffer) |
| hal_tdm_error(* | capture_commit )(hal_tdm_capture *capture) |
| hal_tdm_error(* | capture_set_done_handler )(hal_tdm_capture *capture, hal_tdm_capture_done_handler func, void *user_data) |
| hal_tdm_error(* _hal_tdm_capture_funcs::capture_attach)(hal_tdm_capture *capture, tbm_surface_h buffer) |
Attach the TDM buffer to the capture object
Commit changes for the capture object.
| void(* _hal_tdm_capture_funcs::capture_destroy)(hal_tdm_capture *capture) |
Destroy the capture object.
| hal_tdm_error(* _hal_tdm_capture_funcs::capture_set_done_handler)(hal_tdm_capture *capture, hal_tdm_capture_done_handler func, void *user_data) |
Set the capture done handler to the capture object.
| hal_tdm_error(* _hal_tdm_capture_funcs::capture_set_info)(hal_tdm_capture *capture, hal_tdm_info_capture *info) |
Set the geometry information to the capture object.
| struct _hal_tdm_size |
The size structure.
Data Fields | |
| unsigned int | h |
| unsigned int | v |
| unsigned int _hal_tdm_size::h |
The horizontal buffer size, width
| unsigned int _hal_tdm_size::v |
The vertical buffer size, height
| struct _hal_tdm_pos |
The position structure.
Data Fields | |
| unsigned int | x |
| unsigned int | y |
| unsigned int | w |
| unsigned int | h |
| unsigned int _hal_tdm_pos::h |
The height
| unsigned int _hal_tdm_pos::w |
The width
| unsigned int _hal_tdm_pos::x |
The x(left) position
| unsigned int _hal_tdm_pos::y |
The y(top) position
| union hal_tdm_value |
The tdm's union value.
Data Fields | |
| void * | ptr |
| int32_t | s32 |
| uint32_t | u32 |
| int64_t | s64 |
| uint64_t | u64 |
| void* hal_tdm_value::ptr |
The union value as pointer type
| int32_t hal_tdm_value::s32 |
The union value as 32bit integer type
| int64_t hal_tdm_value::s64 |
The union value as 64bit integer type
| uint32_t hal_tdm_value::u32 |
The union value as 32bit unsigned integer type
| uint64_t hal_tdm_value::u64 |
The union value as 64bit unsigned integer type
| struct _hal_tdm_caps_display |
The display capability structure for CAPTURE.
Data Fields | |
| int | max_layer_count |
The maximum layer count
| struct _hal_tdm_output_mode |
The output mode structure compatible with drm_mode_modeinfo in drm-uapi.
Data Fields | |
| unsigned int | clock |
| unsigned int | hdisplay |
| unsigned int | hsync_start |
| unsigned int | hsync_end |
| unsigned int | htotal |
| unsigned int | hskew |
| unsigned int | vdisplay |
| unsigned int | vsync_start |
| unsigned int | vsync_end |
| unsigned int | vtotal |
| unsigned int | vscan |
| unsigned int | vrefresh |
| unsigned int | flags |
| unsigned int | type |
| char | name [64] |
| unsigned int _hal_tdm_output_mode::clock |
The pixel clock in kHz
| unsigned int _hal_tdm_output_mode::flags |
The bitmask of misc. flags, see DRM_MODE_FLAG_* defines
| unsigned int _hal_tdm_output_mode::hdisplay |
The horizontal display size
| unsigned int _hal_tdm_output_mode::hskew |
The horizontal skew
| unsigned int _hal_tdm_output_mode::hsync_end |
The horizontal sync end
| unsigned int _hal_tdm_output_mode::hsync_start |
The horizontal sync start
| unsigned int _hal_tdm_output_mode::htotal |
The horizontal total size
| char _hal_tdm_output_mode::name[64] |
The string describing the mode resolution
| unsigned int _hal_tdm_output_mode::type |
The bitmask of type flags, see DRM_MODE_TYPE_* defines
| unsigned int _hal_tdm_output_mode::vdisplay |
The vertical display size
| unsigned int _hal_tdm_output_mode::vrefresh |
The approximate vertical refresh rate in Hz
| unsigned int _hal_tdm_output_mode::vscan |
The vertical scan
| unsigned int _hal_tdm_output_mode::vsync_end |
The vertical sync end
| unsigned int _hal_tdm_output_mode::vsync_start |
The vertical sync start
| unsigned int _hal_tdm_output_mode::vtotal |
The vertical total size
| struct _hal_tdm_prop |
The property structure of tdm.
Data Fields | |
| unsigned int | id |
| char | name [64] |
| hal_tdm_value_type | type |
| unsigned int _hal_tdm_prop::id |
The identifier of property
| char _hal_tdm_prop::name[64] |
The name of property
The value type of property
| struct _hal_tdm_info_config |
The info config structure for window, layer.
Data Fields | |
| hal_tdm_size | size |
| hal_tdm_pos | pos |
| tbm_format | format |
| tbm_format _hal_tdm_info_config::format |
The pixel format
The position or logical image size
The buffer size
| struct _hal_tdm_region |
The region structure.
Data Fields | |
| unsigned int | num_rects |
| hal_tdm_pos const * | rects |
| unsigned int _hal_tdm_region::num_rects |
The number of rects
The array of rect information
| struct _hal_tdm_hwc_window_info |
The hwc window info structure to composite.
Data Fields | |
| hal_tdm_info_config | src_config |
| hal_tdm_pos | dst_pos |
| hal_tdm_transform | transform |
The destination rectangular information (left, top, width, height)
The hwc windows information of client
The transform information (source to destination)
| struct _hal_tdm_info_pp |
The information structure to use post-processing.
Data Fields | |
| hal_tdm_info_config | src_config |
| hal_tdm_info_config | dst_config |
| hal_tdm_transform | transform |
| int | sync |
| int | flags |
The destination window's information
The Additional information to use private information.
The source window's information
The option for synchronos return or not when post-processing is done
The window transform information (source to destination)
| struct _hal_tdm_info_capture |
The capture info structure.
Data Fields | |
| hal_tdm_info_config | dst_config |
| hal_tdm_transform | transform |
| hal_tdm_capture_type | type |
| int | frequency |
| int | flags |
The window's coordnate & size information to capture
The Additional information to use private information.
The vertical refresh rate in Hz
The window's transform information to capture
The capture type one-shot or stream
| struct _hal_tdm_event_source |
The structure for event source information.
Data Fields | |
| int | event_fd |
| hal_tdm_event_loop_fd_handler | func |
| void * | user_data |
The file descriptor of event.
The handler function of tdm_even_loop
The user data.
| struct _hal_tdm_caps_output |
The structure for output's capabilities.
Data Fields | |
| char | maker [64] |
| char | model [64] |
| char | name [64] |
| hal_tdm_output_conn_status | status |
| hal_tdm_output_type | type |
| unsigned int | type_id |
| unsigned int | mode_count |
| hal_tdm_output_mode * | modes |
| unsigned int | prop_count |
| hal_tdm_prop * | props |
| unsigned int | mmWidth |
| unsigned int | mmHeight |
| unsigned int | subpixel |
| int | min_w |
| int | min_h |
| int | max_w |
| int | max_h |
| int | preferred_align |
| hal_tdm_output_capability | capabilities |
| int | cursor_min_w |
| int | cursor_min_h |
| int | cursor_max_w |
| int | cursor_max_h |
| int | cursor_preferred_align |
The capabilities of output.
The maximum height.
The maximum width.
The minimum height.
The minimum width.
The preferred align.
| char _hal_tdm_caps_output::maker[64] |
The output maker
The maximum height
The maximum width
The minimum height
The minimum width
| unsigned int _hal_tdm_caps_output::mmHeight |
The physical height (millimeter)
| unsigned int _hal_tdm_caps_output::mmWidth |
The physical width (millimeter)
| unsigned int _hal_tdm_caps_output::mode_count |
The count of available modes
| char _hal_tdm_caps_output::model[64] |
The output model
The newly-allocated array of modes. will be freed in frontend.
| char _hal_tdm_caps_output::name[64] |
The output name
The preferred align
| unsigned int _hal_tdm_caps_output::prop_count |
The count of available properties
The newly-allocated array of properties. will be freed in frontend.
The connection status
| unsigned int _hal_tdm_caps_output::subpixel |
The subpixel
The connection type
| unsigned int _hal_tdm_caps_output::type_id |
The connection type id
| struct _hal_tdm_caps_pp |
The structure for post-processing's capabilities.
Data Fields | |
| hal_tdm_pp_capability | capabilities |
| unsigned int | format_count |
| tbm_format * | formats |
| int | min_w |
| int | min_h |
| int | max_w |
| int | max_h |
| int | preferred_align |
| int | preferred_align_vertical |
| int | max_attach_count |
The capabilities of pp
| unsigned int _hal_tdm_caps_pp::format_count |
The count of available formats
| tbm_format* _hal_tdm_caps_pp::formats |
The newly-allocated array. will be freed in frontend.
The attach count which the PP object can handle.
The maximum height
The maximum width
The minimum height
The minimum width
The preferred align
The preferred align vertical
| struct _hal_tdm_caps_capture |
The structure for capture's capabilities.
Data Fields | |
| hal_tdm_capture_capability | capabilities |
| unsigned int | format_count |
| tbm_format * | formats |
| int | min_w |
| int | min_h |
| int | max_w |
| int | max_h |
| int | preferred_align |
| int | max_attach_count |
The capabilities of capture
| unsigned int _hal_tdm_caps_capture::format_count |
The count of available formats
| tbm_format* _hal_tdm_caps_capture::formats |
The newly-allocated array of formats. will be freed in frontend.
The attach count which the capture object can handle.
The maximum height
The maximum width
The minimum height
The minimum width
The preferred align
| #define HAL_TDM_EVENT_SOURCE_MAX 3 |
Definition of Max count of event source in HAL_TDM_MODULE.
| #define HAL_TDM_NAME_LEN 64 |
Definition of Max Name Length in HAL_TDM_MODULE.
| #define HAL_TDM_PATH_LEN 1024 |
Definition of Max Path Length in HAL_TDM_MODULE.
| typedef void hal_tdm_backend |
The tdm backend object.
| typedef struct _hal_tdm_backend_data hal_tdm_backend_data |
| typedef struct _hal_tdm_caps_capture hal_tdm_caps_capture |
The structure for capture's capabilities.
| typedef struct _hal_tdm_caps_display hal_tdm_caps_display |
The display capability structure for CAPTURE.
| typedef struct _hal_tdm_caps_output hal_tdm_caps_output |
The structure for output's capabilities.
| typedef struct _hal_tdm_caps_pp hal_tdm_caps_pp |
The structure for post-processing's capabilities.
| typedef void hal_tdm_capture |
The tdm capture object.
| typedef void(* hal_tdm_capture_done_handler)(hal_tdm_capture *capture, tbm_surface_h buffer, void *user_data) |
The done handler of the capture object.
| [in] | capture | The pointer of capture object. |
| [in] | buffer | The handle of tbm_surface. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_capture_funcs hal_tdm_capture_funcs |
The structure type of the TDM HAL's capture functions for backend.
| typedef void hal_tdm_display |
The tdm display object.
| typedef struct _hal_tdm_display_funcs hal_tdm_display_funcs |
The structure type of the TDM HAL's display functions for backend.
| typedef hal_tdm_error(* hal_tdm_event_loop_fd_handler)(int event_fd, hal_tdm_event_loop_mask mask, void *user_data) |
The event_loop_fd handler.
This handler will be called when the output object is created in runtime.
| [in] | event_fd | The file descriptor of event. |
| [in] | mask | The mask of event_fd. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_event_source hal_tdm_event_source |
The structure for event source information.
| typedef int hal_tdm_fd |
The tdm fd.
| typedef void hal_tdm_hwc |
The tdm hwc object.
| typedef void(* hal_tdm_hwc_commit_handler)(hal_tdm_hwc *hwc, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
The hwc commit handler.
| [in] | hwc | The pointer of hwc object. |
| [in] | sequence | The number of frame used as sequence. |
| [in] | tv_sec | The second of time when hwc's commit is occurred. |
| [in] | tv_usec | The micro second of time when hwc's commit is occurred. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_hwc_funcs hal_tdm_hwc_funcs |
The structure type of the TDM HAL's hwc functions for backend.
| typedef void hal_tdm_hwc_window |
The tdm hwc window object.
| typedef struct _hal_tdm_hwc_window_funcs hal_tdm_hwc_window_funcs |
The structure type of the TDM HAL's hwc window functions for backend.
| typedef struct _hal_tdm_hwc_window_info hal_tdm_hwc_window_info |
The hwc window info structure to composite.
| typedef struct _hal_tdm_info_capture hal_tdm_info_capture |
The capture info structure.
| typedef struct _hal_tdm_info_config hal_tdm_info_config |
The info config structure for window, layer.
| typedef struct _hal_tdm_info_pp hal_tdm_info_pp |
The information structure to use post-processing.
| typedef hal_tdm_error(* hal_tdm_master_drm_fd_handler)(hal_tdm_fd master_drm_fd, void *user_data) |
The function for setting master_drm_fd to backend.
| [in] | master_drm_fd | The master drm file descriptor. |
| [in] | user_data | The user data for handler. |
| typedef void hal_tdm_module |
The tdm backend object.
| typedef void hal_tdm_output |
The tdm output object.
| typedef void(* hal_tdm_output_change_handler)(hal_tdm_output *output, hal_tdm_output_change_type type, hal_tdm_value value, void *user_data) |
The output change handler.
This handler will be called when the status of the output object is changed in runtime.
| [in] | output | The pointer of output. |
| [in] | type | The output change enumeration. |
| [in] | value | The tdm's union value. |
| [in] | user_data | The user data. |
| typedef void(* hal_tdm_output_commit_handler)(hal_tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
The output commit handler.
| [in] | output | The pointer of output. |
| [in] | sequence | The number of frame used as sequence. |
| [in] | tv_sec | The second of time when commit is occurred. |
| [in] | tv_usec | The micro second of time when commit is occurred. |
| [in] | user_data | The user data. |
| typedef void(* hal_tdm_output_create_handler)(hal_tdm_display *dpy, hal_tdm_output *output, void *user_data) |
The output create handler.
This handler will be called when the output object is created in runtime.
| [in] | dpy | The pointer of hal_tdm_display. |
| [in] | output | The pointer of output. |
| [in] | user_data | The user data |
| typedef void(* hal_tdm_output_destroy_handler)(hal_tdm_output *output, void *user_data) |
The output destroy handler.
This handler will be called when the output object is destroyed in runtime.
| [in] | output | The pointer of output. |
| [in] | user_data | The user data. |
| typedef void(* hal_tdm_output_dpms_handler)(hal_tdm_output *output, hal_tdm_output_dpms dpms, void *user_data) |
The output dpms handler.
| [in] | output | The pointer of output. |
| [in] | dpms | The DPMS value |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_output_funcs hal_tdm_output_funcs |
The structure type of the TDM HAL's output functions for backend.
| typedef struct _hal_tdm_output_mode hal_tdm_output_mode |
The output mode structure compatible with drm_mode_modeinfo in drm-uapi.
| typedef void(* hal_tdm_output_mode_change_request_handler)(hal_tdm_output *output, unsigned int index, void *user_data) |
The output mode change request handler.
| [in] | output | The pointer of output. |
| [in] | index | The index of available modes |
| [in] | user_data | The user data. |
| typedef void(* hal_tdm_output_status_handler)(hal_tdm_output *output, hal_tdm_output_conn_status status, void *user_data) |
The output status handler.
| [in] | output | The pointer of output. |
| [in] | status | The connection status |
| [in] | user_data | The user data. |
| typedef void(* hal_tdm_output_vblank_handler)(hal_tdm_output *output, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
The vblank handler.
| [in] | output | The pointer of output. |
| [in] | sequence | The number of frame used as sequence. |
| [in] | tv_sec | The second of time when vsync is occurred. |
| [in] | tv_usec | The micro second of time when vsync is occurred. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_pos hal_tdm_pos |
The position structure.
| typedef void hal_tdm_pp |
The tdm pp object.
| typedef void(* hal_tdm_pp_done_handler)(hal_tdm_pp *pp, tbm_surface_h src, tbm_surface_h dst, void *user_data) |
The done handler of the pp object.
| [in] | pp | The pointer of post-processing object. |
| [in] | src | The source handle of tbm_surface. |
| [in] | dst | The destination handle of tbm_surface. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_pp_funcs hal_tdm_pp_funcs |
The structure type of the TDM HAL's post-processing functions for backend.
| typedef struct _hal_tdm_prop hal_tdm_prop |
The property structure of tdm.
| typedef struct _hal_tdm_region hal_tdm_region |
The region structure.
| typedef struct _hal_tdm_size hal_tdm_size |
The size structure.
| typedef void hal_tdm_vblank |
The tdm vblank object.
| typedef void(* hal_tdm_vblank_create_handler)(hal_tdm_vblank *vblank, void *user_data) |
The create handler of the vblank object.
| [in] | vblank | The pointer of vblank object. |
| [in] | user_data | The user data. |
| typedef void hal_tdm_voutput |
The tdm voutput object.
| typedef void(* hal_tdm_voutput_commit_func)(hal_tdm_voutput *voutput, tbm_surface_h buffer) |
The voutput commit function.
| [in] | voutput | The number of frame used as sequence. |
| [in] | buffer | The handle of tbm_surface. |
| typedef void(* hal_tdm_voutput_commit_handler)(hal_tdm_voutput *voutput, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data) |
The voutput commit handler.
| [in] | hwc | The pointer of hwc object. |
| [in] | voutput | The number of frame used as sequence. |
| [in] | tv_sec | The second of time when hwc's commit is occurred. |
| [in] | tv_usec | The micro second of time when hwc's commit is occurred. |
| [in] | user_data | The user data. |
| typedef struct _hal_tdm_voutput_funcs hal_tdm_voutput_funcs |
The structure type of the TDM HAL's virtual output functions for backend.
The capture capability enumeration.
The scale, transform and CSC functionalities seem the default functions of capture. If hardware device doesn't support one of them, we'd better let the developer know what the backend doesn't support like HAL_TDM_PP_CAPABILITY_NO_CSC.
| enum hal_tdm_capture_type |
| enum hal_tdm_error |
The error enumeration.
The mask of hal_tdm_event_loop_fd_handler.
The hwc video capability enumeration.
Possible composition types for the given window.
HWC's composition mode for specific buffer.
The output capability enumeration.
If the backend module provides HAL_TDM_OUTPUT_CAPABILITY_EXTENDED_DPMS, we can set an extended DPMS mode to an output which the backend module supports. Don't use the low-4bit for an extended DPMS mode value. It's used for default DPMS modes.
The output change enumeration of hal_tdm_output_change_handler.
| enum hal_tdm_output_dpms |
The DPMS enumeration.
bit compatible with the libdrm definitions.
The output mode flag enumeration.
bit compatible with the libdrm definitions.
| HAL_TDM_OUTPUT_MODE_FLAG_PHSYNC |
DRM_MODE_FLAG_PHSYNC : horizontal sync is active high. |
| HAL_TDM_OUTPUT_MODE_FLAG_NHSYNC |
DRM_MODE_FLAG_NHSYNC : horizontal sync is active low. |
| HAL_TDM_OUTPUT_MODE_FLAG_PVSYNC |
DRM_MODE_FLAG_PVSYNC : vertical sync is active high. |
| HAL_TDM_OUTPUT_MODE_FLAG_NVSYNC |
DRM_MODE_FLAG_NVSYNC : vertical sync is active low. |
| HAL_TDM_OUTPUT_MODE_FLAG_INTERLACE |
DRM_MODE_FLAG_INTERLACE : mode is interlaced. |
| HAL_TDM_OUTPUT_MODE_FLAG_DBLSCAN |
DRM_MODE_FLAG_DBLSCAN : mode uses doublescan. |
| HAL_TDM_OUTPUT_MODE_FLAG_CSYNC |
DRM_MODE_FLAG_CSYNC : mode uses composite sync. |
| HAL_TDM_OUTPUT_MODE_FLAG_PCSYNC |
DRM_MODE_FLAG_PCSYNC : composite sync is active high. |
| HAL_TDM_OUTPUT_MODE_FLAG_NCSYNC |
DRM_MODE_FLAG_NCSYNC : composite sync is active low. |
| HAL_TDM_OUTPUT_MODE_FLAG_HSKEW |
DRM_MODE_FLAG_HSKEW : hskew provided. |
| HAL_TDM_OUTPUT_MODE_FLAG_BCAST |
DRM_MODE_FLAG_BCAST :
|
| HAL_TDM_OUTPUT_MODE_FLAG_PIXMUX |
DRM_MODE_FLAG_PIXMUX :
|
| HAL_TDM_OUTPUT_MODE_FLAG_DBLCLK |
DRM_MODE_FLAG_DBLCLK : double-clocked mode. |
| HAL_TDM_OUTPUT_MODE_FLAG_CLKDIV2 |
DRM_MODE_FLAG_CLKDIV2 : half-clocked mode. |
The output mode type enumeration.
bit compatible with the libdrm definitions.
| enum hal_tdm_output_type |
The output connection status enumeration.
bit compatible with the libdrm definitions.
The PP(post-processing) capability enumeration.
The scale, transform and CSC functionalities seem the default functions of PP. If hardware device doesn't support one of them, we'd better let the developer know what the backend doesn't support like HAL_TDM_PP_CAPABILITY_NO_CSC.
| enum hal_tdm_transform |
The transform enumeration(rotate, flip)
| enum hal_tdm_value_type |
The tdm value type enumeration.