Tizen HAL API  1.0
TDM

The TDM provides functions for managing display server.

Required Header

#include <hal-tdm.h>

Overview

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.

Data Structure Documentation

struct _hal_tdm_backend_data

The structure type of the tdm backend data.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_displaydisplay
int has_drm_device
int num_event_sources
hal_tdm_event_sourceevent_sources [3]
hal_tdm_display_funcsdisplay_funcs
hal_tdm_output_funcsoutput_funcs
hal_tdm_hwc_funcshwc_funcs
hal_tdm_hwc_window_funcshwc_window_funcs
hal_tdm_pp_funcspp_funcs
hal_tdm_capture_funcscapture_funcs
hal_tdm_voutput_funcsvoutput_funcs
hal_tdm_fd drm_fd
int is_master
hal_tdm_master_drm_fd_handler master_drm_fd_func
void * user_data

Field Documentation

The drm file descriptor

The flag of having drm device or not

The flag of master or not

The handler function for setting master drm file descriptor.

The number of event source

post-processing functions of backend

The user data for callback

struct _hal_tdm_display_funcs

The structure type of the TDM HAL's display functions for backend.

Since:
HAL_MODULE_TDM 1.0

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)

Field Documentation

Create the post-processing object of hal_tdm_display.

Get the display capabilities of hal_tdm_display.

Get the capture capabilities of the hal_tdm_display.

Get the file descriptor of hal_tdm_display.

Get the output array of hal_tdm_display.

Get the post-processing capabilities of hal_tdm_display.

Handle the events which happens on the fd of hal_tdm_display.

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_error(* output_get_capability )(hal_tdm_output *output, hal_tdm_caps_output *caps)
hal_tdm_error(* output_set_property )(hal_tdm_output *output, unsigned int id, hal_tdm_value value)
hal_tdm_error(* output_get_property )(hal_tdm_output *output, unsigned int id, hal_tdm_value *value)
hal_tdm_error(* output_wait_vblank )(hal_tdm_output *output, int interval, int sync, void *user_data)
hal_tdm_error(* output_set_vblank_handler )(hal_tdm_output *output, hal_tdm_output_vblank_handler func)
hal_tdm_error(* output_set_dpms )(hal_tdm_output *output, hal_tdm_output_dpms dpms_value)
hal_tdm_error(* output_get_dpms )(hal_tdm_output *output, hal_tdm_output_dpms *dpms_value)
hal_tdm_error(* output_set_mode )(hal_tdm_output *output, const hal_tdm_output_mode *mode)
hal_tdm_error(* output_get_mode )(hal_tdm_output *output, const hal_tdm_output_mode **mode)
hal_tdm_capture *(* output_create_capture )(hal_tdm_output *output, hal_tdm_error *error)
hal_tdm_error(* output_set_status_handler )(hal_tdm_output *output, hal_tdm_output_status_handler func, void *user_data)
hal_tdm_error(* output_set_dpms_handler )(hal_tdm_output *output, hal_tdm_output_dpms_handler func, void *user_data)
hal_tdm_error(* output_set_dpms_async )(hal_tdm_output *output, hal_tdm_output_dpms dpms_value, int *sync)
hal_tdm_hwc *(* output_get_hwc )(hal_tdm_output *output, hal_tdm_error *error)
hal_tdm_error(* output_set_mirror )(hal_tdm_output *output, hal_tdm_output *src_output, hal_tdm_transform transform)
hal_tdm_error(* output_unset_mirror )(hal_tdm_output *output)

Field Documentation

Create the capture object from the output object.

Get the capabilities of the hal_tdm_output object.

Get DPMS of the output object.

Get the hwc object of the output object.

Get the mode of the output object.

Get the output's property which has the given id.

Set DPMS of the output object synchronously.

Set DPMS of the output object asynchronously.

Set the output's dpms handler.

Set the mirror image of the src_output to the output.

Set one of available modes of the output object.

Set the output's property which has the given id.

Set the output connection status handler.

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.

Since:
HAL_MODULE_TDM 1.0

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)

Field Documentation

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.

Get output object from virtual output object.

Set available modes of the virtual output object.

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.

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_hwc_window *(* hwc_create_window )(hal_tdm_hwc *hwc, hal_tdm_error *error)
hal_tdm_error(* hwc_get_video_supported_formats )(hal_tdm_hwc *hwc, const tbm_format **formats, int *count)
hal_tdm_error(* hwc_get_video_available_properties )(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count)
hal_tdm_error(* hwc_get_capabilities )(hal_tdm_hwc *hwc, hal_tdm_hwc_capability *capabilities)
hal_tdm_error(* hwc_get_available_properties )(hal_tdm_hwc *hwc, const hal_tdm_prop **props, int *count)
tbm_surface_queue_h(* hwc_get_client_target_buffer_queue )(hal_tdm_hwc *hwc, hal_tdm_error *error)
hal_tdm_error(* hwc_set_client_target_buffer )(hal_tdm_hwc *hwc, tbm_surface_h target_buffer, hal_tdm_region damage)
hal_tdm_error(* hwc_set_client_target_acquire_fence )(hal_tdm_hwc *hwc, int acquire_fence)
hal_tdm_error(* hwc_validate )(hal_tdm_hwc *hwc, hal_tdm_hwc_window **composited_wnds, uint32_t num_wnds, uint32_t *num_types)
hal_tdm_error(* 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)
hal_tdm_error(* hwc_accept_validation )(hal_tdm_hwc *hwc)
hal_tdm_error(* hwc_commit )(hal_tdm_hwc *hwc, int sync, void *user_data)
hal_tdm_error(* hwc_set_commit_handler )(hal_tdm_hwc *hwc, hal_tdm_hwc_commit_handler func)
hal_tdm_error(* hwc_get_commit_fence )(hal_tdm_hwc *hwc, int *commit_fence)
hal_tdm_error(* hwc_get_release_fences )(hal_tdm_hwc *hwc, uint32_t *num_elements, hal_tdm_hwc_window **hwc_windows, int *release_fences)
hal_tdm_error(* hwc_set_property )(hal_tdm_hwc *hwc, uint32_t id, hal_tdm_value value)
hal_tdm_error(* hwc_get_property )(hal_tdm_hwc *hwc, uint32_t id, hal_tdm_value *value)
hal_tdm_error(* hwc_get_commit_interval )(hal_tdm_hwc *hwc, hal_tdm_hwc_commit_interval *interval)
hal_tdm_error(* hwc_set_client_target_buffer_info )(hal_tdm_hwc *hwc, hal_tdm_hwc_window_info *info)

Field Documentation

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.

Create a new window on the given hwc.

Get the available property array of the hwc object.

Get changed composition types.

Get the client target buffer queue.

Get commit fence.

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.

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.

Set the acquire fence of client target buffer.

Set the client target buffer.

Set the information of the client target buffer.

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

void(* hwc_window_destroy )(hal_tdm_hwc_window *hwc_window)
tbm_surface_queue_h(* hwc_window_acquire_buffer_queue )(hal_tdm_hwc_window *hwc_window, hal_tdm_error *error)
void(* hwc_window_release_buffer_queue )(hal_tdm_hwc_window *hwc_window, tbm_surface_queue_h queue)
hal_tdm_error(* hwc_window_set_composition_type )(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_composition composition_type)
hal_tdm_error(* hwc_window_set_buffer_damage )(hal_tdm_hwc_window *hwc_window, hal_tdm_region damage)
hal_tdm_error(* hwc_window_set_info )(hal_tdm_hwc_window *hwc_window, hal_tdm_hwc_window_info *info)
hal_tdm_error(* hwc_window_set_buffer )(hal_tdm_hwc_window *hwc_window, tbm_surface_h buffer)
hal_tdm_error(* hwc_window_set_property )(hal_tdm_hwc_window *hwc_window, uint32_t id, hal_tdm_value value)
hal_tdm_error(* hwc_window_get_property )(hal_tdm_hwc_window *hwc_window, uint32_t id, hal_tdm_value *value)
hal_tdm_error(* hwc_window_get_constraints )(hal_tdm_hwc_window *hwc_window, int *constraints)
hal_tdm_error(* hwc_window_set_name )(hal_tdm_hwc_window *hwc_window, const char *name)
hal_tdm_error(* hwc_window_set_cursor_image )(hal_tdm_hwc_window *hwc_window, int width, int height, int stride, void *ptr)
hal_tdm_error(* hwc_window_set_acquire_fence )(hal_tdm_hwc_window *hwc_window, int acquire_fence)

Field Documentation

Acquire the buffer queue handle for the window object.

Destroys the given window.

Get the constraints of hwc_window.

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.

Set the acquire fence of hwc_window.

Set the TDM buffer to the window object.

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.

Set the information to the window object.

Set the name of hwc_window.

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.

Since:
HAL_MODULE_TDM 1.0

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)

Field Documentation

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.

Destroy the post-processing object.

Set the processing done handler to the post-processing object.

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.

Since:
HAL_MODULE_TDM 1.0

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)

Field Documentation

Attach the TDM buffer to the capture object

Commit changes for the capture object.

Destroy the capture object.

Set the capture done handler to the capture object.

Set the geometry information to the capture object.

struct _hal_tdm_size

The size structure.

Since:
HAL_MODULE_TDM 1.0

Data Fields

unsigned int h
unsigned int v

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

unsigned int x
unsigned int y
unsigned int w
unsigned int h

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

void * ptr
int32_t s32
uint32_t u32
int64_t s64
uint64_t u64

Field Documentation

The union value as pointer type

The union value as 32bit integer type

The union value as 64bit integer type

The union value as 32bit unsigned integer type

The union value as 64bit unsigned integer type

struct _hal_tdm_caps_display

The display capability structure for CAPTURE.

Since:
HAL_MODULE_TDM 1.0

Data Fields

int max_layer_count

Field Documentation

The maximum layer count

struct _hal_tdm_output_mode

The output mode structure compatible with drm_mode_modeinfo in drm-uapi.

Since:
HAL_MODULE_TDM 1.0

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]

Field Documentation

The pixel clock in kHz

The bitmask of misc. flags, see DRM_MODE_FLAG_* defines

The horizontal display size

The horizontal skew

The horizontal sync end

The horizontal sync start

The horizontal total size

The string describing the mode resolution

The bitmask of type flags, see DRM_MODE_TYPE_* defines

The vertical display size

The approximate vertical refresh rate in Hz

The vertical scan

The vertical sync end

The vertical sync start

The vertical total size

struct _hal_tdm_prop

The property structure of tdm.

Since:
HAL_MODULE_TDM 1.0

Data Fields

unsigned int id
char name [64]
hal_tdm_value_type type

Field Documentation

unsigned int _hal_tdm_prop::id

The identifier of property

The name of property

The value type of property

struct _hal_tdm_info_config

The info config structure for window, layer.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_size size
hal_tdm_pos pos
tbm_format format

Field Documentation

The pixel format

The position or logical image size

struct _hal_tdm_region

The region structure.

Since:
HAL_MODULE_TDM 1.0

Data Fields

unsigned int num_rects
hal_tdm_pos const * rects

Field Documentation

The number of rects

The array of rect information

struct _hal_tdm_hwc_window_info

The hwc window info structure to composite.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_info_config src_config
hal_tdm_pos dst_pos
hal_tdm_transform transform

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_info_config src_config
hal_tdm_info_config dst_config
hal_tdm_transform transform
int sync
int flags

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

hal_tdm_info_config dst_config
hal_tdm_transform transform
hal_tdm_capture_type type
int frequency
int flags

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

Data Fields

int event_fd
hal_tdm_event_loop_fd_handler func
void * user_data

Field Documentation

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.

Since:
HAL_MODULE_TDM 1.0

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_modemodes
unsigned int prop_count
hal_tdm_propprops
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

Field Documentation

The capabilities of output.

Since:
1.4.1

The maximum height.

Since:
1.5.0

The maximum width.

Since:
1.5.0

The minimum height.

Since:
1.5.0

The minimum width.

Since:
1.5.0

The preferred align.

Since:
1.5.0

The output maker

The maximum height

The maximum width

The minimum height

The minimum width

The physical height (millimeter)

The physical width (millimeter)

The count of available modes

The output model

The newly-allocated array of modes. will be freed in frontend.

The output name

The preferred align

The count of available properties

The newly-allocated array of properties. will be freed in frontend.

The subpixel

The connection type id

struct _hal_tdm_caps_pp

The structure for post-processing's capabilities.

Since:
HAL_MODULE_TDM 1.0

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

Field Documentation

The count of available 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.

Since:
HAL_MODULE_TDM 1.0

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

Field Documentation

The count of available 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 Documentation

#define HAL_TDM_EVENT_SOURCE_MAX   3

Definition of Max count of event source in HAL_TDM_MODULE.

Since:
HAL_MODULE_TDM 1.0
#define HAL_TDM_NAME_LEN   64

Definition of Max Name Length in HAL_TDM_MODULE.

Since:
HAL_MODULE_TDM 1.0
#define HAL_TDM_PATH_LEN   1024

Definition of Max Path Length in HAL_TDM_MODULE.

Since:
HAL_MODULE_TDM 1.0

Typedef Documentation

typedef void hal_tdm_backend

The tdm backend object.

Since:
HAL_MODULE_TDM 1.0

The structure type of the tdm backend data.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_backend_data

The structure for capture's capabilities.

Since:
HAL_MODULE_TDM 1.0

The display capability structure for CAPTURE.

Since:
HAL_MODULE_TDM 1.0

The structure for output's capabilities.

Since:
HAL_MODULE_TDM 1.0

The structure for post-processing's capabilities.

Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_capture

The tdm capture object.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]captureThe pointer of capture object.
[in]bufferThe handle of tbm_surface.
[in]user_dataThe user data.

The structure type of the TDM HAL's capture functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_capture_funcs
Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_display

The tdm display object.

Since:
HAL_MODULE_TDM 1.0

The structure type of the TDM HAL's display functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_display_funcs
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.

Since:
HAL_MODULE_TDM 1.0

This handler will be called when the output object is created in runtime.

Parameters:
[in]event_fdThe file descriptor of event.
[in]maskThe mask of event_fd.
[in]user_dataThe user data.

The structure for event source information.

Since:
HAL_MODULE_TDM 1.0
typedef int hal_tdm_fd

The tdm fd.

Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_hwc

The tdm hwc object.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]hwcThe pointer of hwc object.
[in]sequenceThe number of frame used as sequence.
[in]tv_secThe second of time when hwc's commit is occurred.
[in]tv_usecThe micro second of time when hwc's commit is occurred.
[in]user_dataThe user data.
See also:
hwc_set_commit_handler() function of hal_tdm_hwc_funcs

The structure type of the TDM HAL's hwc functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_hwc_funcs
typedef void hal_tdm_hwc_window

The tdm hwc window object.

Since:
HAL_MODULE_TDM 1.0

The structure type of the TDM HAL's hwc window functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_hwc_window_funcs

The hwc window info structure to composite.

Since:
HAL_MODULE_TDM 1.0

The capture info structure.

Since:
HAL_MODULE_TDM 1.0

The info config structure for window, layer.

Since:
HAL_MODULE_TDM 1.0

The information structure to use post-processing.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]master_drm_fdThe master drm file descriptor.
[in]user_dataThe user data for handler.
Precondition:
hal_tdm_backend_set_master_drm_fd() will invoke this handler.
See also:
hal_tdm_backend_set_master_drm_fd().
hal_tdm_backend_get_master_drm_fd().
typedef void hal_tdm_module

The tdm backend object.

Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_output

The tdm output object.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0

This handler will be called when the status of the output object is changed in runtime.

Parameters:
[in]outputThe pointer of output.
[in]typeThe output change enumeration.
[in]valueThe tdm's union value.
[in]user_dataThe 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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]outputThe pointer of output.
[in]sequenceThe number of frame used as sequence.
[in]tv_secThe second of time when commit is occurred.
[in]tv_usecThe micro second of time when commit is occurred.
[in]user_dataThe user data.
See also:
output_set_commit_handler() function of hal_tdm_display_funcs
typedef void(* hal_tdm_output_create_handler)(hal_tdm_display *dpy, hal_tdm_output *output, void *user_data)

The output create handler.

Since:
HAL_MODULE_TDM 1.0

This handler will be called when the output object is created in runtime.

Parameters:
[in]dpyThe pointer of hal_tdm_display.
[in]outputThe pointer of output.
[in]user_dataThe user data
typedef void(* hal_tdm_output_destroy_handler)(hal_tdm_output *output, void *user_data)

The output destroy handler.

Since:
HAL_MODULE_TDM 1.0

This handler will be called when the output object is destroyed in runtime.

Parameters:
[in]outputThe pointer of output.
[in]user_dataThe 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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]outputThe pointer of output.
[in]dpmsThe DPMS value
[in]user_dataThe user data.

The structure type of the TDM HAL's output functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_output_funcs

The output mode structure compatible with drm_mode_modeinfo in drm-uapi.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]outputThe pointer of output.
[in]indexThe index of available modes
[in]user_dataThe 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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]outputThe pointer of output.
[in]statusThe connection status
[in]user_dataThe 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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]outputThe pointer of output.
[in]sequenceThe number of frame used as sequence.
[in]tv_secThe second of time when vsync is occurred.
[in]tv_usecThe micro second of time when vsync is occurred.
[in]user_dataThe user data.
See also:
output_set_vblank_handler() function of hal_tdm_display_funcs
typedef struct _hal_tdm_pos hal_tdm_pos

The position structure.

Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_pp

The tdm pp object.

Since:
HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]ppThe pointer of post-processing object.
[in]srcThe source handle of tbm_surface.
[in]dstThe destination handle of tbm_surface.
[in]user_dataThe user data.

The structure type of the TDM HAL's post-processing functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_pp_funcs
typedef struct _hal_tdm_prop hal_tdm_prop

The property structure of tdm.

Since:
HAL_MODULE_TDM 1.0

The region structure.

Since:
HAL_MODULE_TDM 1.0
typedef struct _hal_tdm_size hal_tdm_size

The size structure.

Since:
HAL_MODULE_TDM 1.0
typedef void hal_tdm_vblank

The tdm vblank object.

Since:
HAL_MODULE_TDM 1.0
typedef void(* hal_tdm_vblank_create_handler)(hal_tdm_vblank *vblank, void *user_data)

The create handler of the vblank object.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]vblankThe pointer of vblank object.
[in]user_dataThe user data.
typedef void hal_tdm_voutput

The tdm voutput object.

Since:
HAL_MODULE_TDM 1.0
typedef void(* hal_tdm_voutput_commit_func)(hal_tdm_voutput *voutput, tbm_surface_h buffer)

The voutput commit function.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]voutputThe number of frame used as sequence.
[in]bufferThe 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.

Since:
HAL_MODULE_TDM 1.0
Parameters:
[in]hwcThe pointer of hwc object.
[in]voutputThe number of frame used as sequence.
[in]tv_secThe second of time when hwc's commit is occurred.
[in]tv_usecThe micro second of time when hwc's commit is occurred.
[in]user_dataThe user data.

The structure type of the TDM HAL's virtual output functions for backend.

Since:
HAL_MODULE_TDM 1.0
See also:
_hal_tdm_voutput_funcs

Enumeration Type Documentation

The capture capability enumeration.

Since:
HAL_MODULE_TDM 1.0

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.

Enumerator:
HAL_TDM_CAPTURE_CAPABILITY_OUTPUT 

The capture device supports to dump the output

HAL_TDM_CAPTURE_CAPABILITY_ONESHOT 

The capture device supports oneshot dump

HAL_TDM_CAPTURE_CAPABILITY_STREAM 

The capture device supports stream dump

The capture type enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_CAPTURE_TYPE_ONESHOT 

The oneshot capture

HAL_TDM_CAPTURE_TYPE_STREAM 

The stream capture

The display capability enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_DISPLAY_CAPABILITY_PP 

The flag about hardware supports post-processing operation

HAL_TDM_DISPLAY_CAPABILITY_CAPTURE 

The flag about hardware supports capture operation

The error enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_ERROR_NONE 

none

HAL_TDM_ERROR_BAD_REQUEST 

bad request

HAL_TDM_ERROR_OPERATION_FAILED 

operation failed

HAL_TDM_ERROR_INVALID_PARAMETER 

wrong input parameter

HAL_TDM_ERROR_PERMISSION_DENIED 

access denied

HAL_TDM_ERROR_BUSY 

hardware resource busy

HAL_TDM_ERROR_OUT_OF_MEMORY 

no free memory

HAL_TDM_ERROR_BAD_MODULE 

bad backend module

HAL_TDM_ERROR_NOT_IMPLEMENTED 

not implemented

HAL_TDM_ERROR_NO_CAPABILITY 

no capability

HAL_TDM_ERROR_DPMS_OFF 

dpms off

HAL_TDM_ERROR_OUTPUT_DISCONNECTED 

output disconnected

HAL_TDM_ERROR_PROTOCOL_ERROR 

protocol error

HAL_TDM_ERROR_TIMEOUT 

timeout

HAL_TDM_ERROR_NO_MODULE 

no backend module

The mask of hal_tdm_event_loop_fd_handler.

Since:
HAL_MODULE_TDM 1.0
See also:
hal_tdm_event_loop_fd_handler
hal_tdm_event_source
Enumerator:
HAL_TDM_EVENT_LOOP_READABLE 

The mask for READABLE event

HAL_TDM_EVENT_LOOP_WRITABLE 

The mask for WRITABLE event

HAL_TDM_EVENT_LOOP_HANGUP 

The mask for HANGUP event

HAL_TDM_EVENT_LOOP_ERROR 

The mask for ERROR event

The hwc video capability enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_HWC_CAPABILITY_VIDEO_STREAM 

The capability about the hwc has video stream capability

HAL_TDM_HWC_CAPABILITY_VIDEO_SCALE 

The capability about the hwc allows to scale the video buffer

HAL_TDM_HWC_CAPABILITY_VIDEO_TRANSFORM 

The capability about the hwc allows video to transform the video buffer

HAL_TDM_HWC_CAPABILITY_VIDEO_SCANOUT 

The capability about the hwc allows video to accept the scanout buffer only

HAL_TDM_HWC_CAPABILITY_FENCE 

The capability about the hwc allows fence

HWC's composition interval.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_HWC_COMMIT_INTERVAL_NONE 

Default interval of HWC's composition.

HAL_TDM_HWC_COMMIT_INTERVAL_VBLANK 

If this interval is set by tdm backend, the compositor call commit per vblank even if the handler of commit isn't called.

Possible composition types for the given window.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_HWC_WIN_COMPOSITION_NONE 

The composition type for an invisible window. The value by default.

The backend ignores windows of this type.

HAL_TDM_HWC_WIN_COMPOSITION_CLIENT 

The composition type for an window to be compsoited by the client.

When the client sets this composition type, the backend MUST NOT modify this composition type into other types.

When the backend changes TDM_HWC_WIN_COMPOSITION_DEVICE or TDM_HWC_WIN_COMPOSITION_CURSOR to this composition type at the time of tdm_hwc_validate and tdm_hwc_get_changed_composition_types, the client has to composite this window with gl or other drawing operations.

HAL_TDM_HWC_WIN_COMPOSITION_DEVICE 

The composition type for an window to be set to the hw overlay.

The client sets this composition type to the visible windows before requesting the tdm_hwc_validate. Nomally, the backend leave it if the backend sets the window to the hw overlay. If the backend does not set the window to the hw overlay at the time of tdm_hwc_validate, the backend changes the composition type of the window into TDM_HWC_WIN_COMPOSITION_CLIENT.

HAL_TDM_HWC_WIN_COMPOSITION_CURSOR 

The composition type for an window to be set to the cursor hw overlay.

The client sets this composition type to the cursor window before requesting the tdm_hwc_validate. If the backend does not support the cursor hw overlay, the backend can change the comopsition type into the TDM_HWC_WIN_COMPOSITION_CLIENT.

HAL_TDM_HWC_WIN_COMPOSITION_VIDEO 

The composition type for an window to be set to the video hw overlay.

The client sets this composition type to the video window before requesting the tdm_hwc_validate. If the backend does not support the video hw overlay, the backend can change the comopsition type into the TDM_HWC_WIN_COMPOSITION_CLIENT. Normally, this VIDEO window displays under the primary hw overlayer of the output.

HWC's composition mode for specific buffer.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_HWC_WIN_CONSTRAINT_NONE 

Default mode of HWC's composition.

HAL_TDM_HWC_WIN_CONSTRAINT_BUFFER_QUEUE 

If the client needs to render to the specific buffer for compositing with TDM_HWC_WIN_COMPOSITION_DEVICE, the backend needs to set TDM_HWC_WIN_CONSTRAINT_BUFFER_QUEUE to hwc_window until the hwc_window is not TDM_HWC_WIN_COMPOSITION_DEVICE. The client gets the tbm_surface_queue_h through the tdm_hwc_window_acquire_buffer_queue. It will render the frames on the buffers which gets from the tbm_surface_queue_h.

The output capability enumeration.

Since:
HAL_MODULE_TDM 1.0

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.

Enumerator:
HAL_TDM_OUTPUT_CAPABILITY_ASYNC_DPMS 

The capability about output supports asynchronous DPMS operation

HAL_TDM_OUTPUT_CAPABILITY_HWC 

The capability about output supports hwc operation

HAL_TDM_OUTPUT_CAPABILITY_EXTENDED_DPMS 

The capability about output supports extended DPMS operation

HAL_TDM_OUTPUT_CAPABILITY_MIRROR 

The capability about output supports the displaying mirror image of the src_output

HAL_TDM_OUTPUT_CAPABILITY_NO_HW_VBLANK 

The capability about output doesn't support hw vblank

The output change enumeration of hal_tdm_output_change_handler.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_OUTPUT_CHANGE_CONNECTION 

The type of connection is changed

HAL_TDM_OUTPUT_CHANGE_DPMS 

The type of dpms is changed

The output connection status enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_OUTPUT_CONN_STATUS_DISCONNECTED 

The output is disconnected

HAL_TDM_OUTPUT_CONN_STATUS_CONNECTED 

The output is connected

HAL_TDM_OUTPUT_CONN_STATUS_MODE_SETTED 

The output is connected and set the mode

The DPMS enumeration.

Since:
HAL_MODULE_TDM 1.0

bit compatible with the libdrm definitions.

Enumerator:
HAL_TDM_OUTPUT_DPMS_ON 

On, Vsync On

HAL_TDM_OUTPUT_DPMS_STANDBY 

StandBy, Vsync On

HAL_TDM_OUTPUT_DPMS_SUSPEND 

Suspend, Vsync Off

HAL_TDM_OUTPUT_DPMS_OFF 

Off, Vsync Off

HAL_TDM_OUTPUT_DPMS_AOD 

AOD, Vsync On, extended DPMS mode

The output mode flag enumeration.

Since:
HAL_MODULE_TDM 1.0

bit compatible with the libdrm definitions.

Enumerator:
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 :

Deprecated:
Deprecated since HAL_MODULE_TDM 1.0
HAL_TDM_OUTPUT_MODE_FLAG_PIXMUX 

DRM_MODE_FLAG_PIXMUX :

Deprecated:
Deprecated since HAL_MODULE_TDM 1.0
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.

Since:
HAL_MODULE_TDM 1.0

bit compatible with the libdrm definitions.

Enumerator:
HAL_TDM_OUTPUT_MODE_TYPE_BUILTIN 

DRM_MODE_TYPE_BUILTIN

HAL_TDM_OUTPUT_MODE_TYPE_CLOCK_C 

DRM_MODE_TYPE_CLOCK_C

HAL_TDM_OUTPUT_MODE_TYPE_CRTC_C 

DRM_MODE_TYPE_CRTC_C

HAL_TDM_OUTPUT_MODE_TYPE_PREFERRED 

DRM_MODE_TYPE_PREFERRED

HAL_TDM_OUTPUT_MODE_TYPE_DEFAULT 

DRM_MODE_TYPE_DEFAULT

HAL_TDM_OUTPUT_MODE_TYPE_USERDEF 

DRM_MODE_TYPE_USERDEF

HAL_TDM_OUTPUT_MODE_TYPE_DRIVER 

DRM_MODE_TYPE_DRIVER

The output connection status enumeration.

Since:
HAL_MODULE_TDM 1.0

bit compatible with the libdrm definitions.

Enumerator:
HAL_TDM_OUTPUT_TYPE_Unknown 

unknown

HAL_TDM_OUTPUT_TYPE_VGA 

VGA connection

HAL_TDM_OUTPUT_TYPE_DVII 

DVII connection

HAL_TDM_OUTPUT_TYPE_DVID 

DVID connection

HAL_TDM_OUTPUT_TYPE_DVIA 

DVIA connection

HAL_TDM_OUTPUT_TYPE_Composite 

Composite connection

HAL_TDM_OUTPUT_TYPE_SVIDEO 

SVIDEO connection

HAL_TDM_OUTPUT_TYPE_LVDS 

LVDS connection

HAL_TDM_OUTPUT_TYPE_Component 

Component connection

HAL_TDM_OUTPUT_TYPE_9PinDIN 

9PinDIN connection

HAL_TDM_OUTPUT_TYPE_DisplayPort 

DisplayPort connection

HAL_TDM_OUTPUT_TYPE_HDMIA 

HDMIA connection

HAL_TDM_OUTPUT_TYPE_HDMIB 

HDMIB connection

HAL_TDM_OUTPUT_TYPE_TV 

TV connection

HAL_TDM_OUTPUT_TYPE_eDP 

eDP connection

HAL_TDM_OUTPUT_TYPE_VIRTUAL 

Virtual connection for WiFi Display

HAL_TDM_OUTPUT_TYPE_DSI 

DSI connection

The PP(post-processing) capability enumeration.

Since:
HAL_MODULE_TDM 1.0

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.

Enumerator:
HAL_TDM_PP_CAPABILITY_SYNC 

The post-processing device supports synchronous operation

HAL_TDM_PP_CAPABILITY_ASYNC 

The post-processing device supports asynchronous operation

HAL_TDM_PP_CAPABILITY_SCANOUT 

The post-processing device supports only scanout buffer

HAL_TDM_PP_CAPABILITY_NO_CSC 

The post-processing device doesn't support Color Space Conversion

HAL_TDM_PP_CAPABILITY_NO_TRANSFORM_ROTATION 

The post-processing device doesn't support rotation transform

The transform enumeration(rotate, flip)

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_TRANSFORM_NORMAL 

no transform

HAL_TDM_TRANSFORM_90 

rotate 90 degrees clockwise

HAL_TDM_TRANSFORM_180 

rotate 180 degrees clockwise

HAL_TDM_TRANSFORM_270 

rotate 270 degrees clockwise

HAL_TDM_TRANSFORM_FLIPPED 

no rotate and horizontal flip

HAL_TDM_TRANSFORM_FLIPPED_90 

rotate 90 degrees clockwise and horizontal flip

HAL_TDM_TRANSFORM_FLIPPED_180 

rotate 180 degrees clockwise and horizontal flip

HAL_TDM_TRANSFORM_FLIPPED_270 

rotate 270 degrees clockwise and horizontal flip

The tdm value type enumeration.

Since:
HAL_MODULE_TDM 1.0
Enumerator:
HAL_TDM_VALUE_TYPE_UNKNOWN 

The unknown type of value for variable

HAL_TDM_VALUE_TYPE_PTR 

The pointer type of value for variable

HAL_TDM_VALUE_TYPE_INT32 

The 32bit integer type of value for variable

HAL_TDM_VALUE_TYPE_UINT32 

The 32bit unsigned integer type of value for variable

HAL_TDM_VALUE_TYPE_INT64 

The 64bit integer type of value for variable

HAL_TDM_VALUE_TYPE_UINT64 

The 64bit unsigned integer type of value for variable