-/**
- * @brief The error enumeration
- */
-typedef enum
-{
- TDM_ERROR_NONE = 0, /**< none */
- TDM_ERROR_BAD_REQUEST = -1, /**< bad request */
- TDM_ERROR_OPERATION_FAILED = -2, /**< operaion failed */
- TDM_ERROR_INVALID_PARAMETER = -3, /**< wrong input parameter */
- TDM_ERROR_PERMISSION_DENIED = -4, /**< access denied */
- TDM_ERROR_BUSY = -5, /**< hardware resource busy */
- TDM_ERROR_OUT_OF_MEMORY = -6, /**< no free memory */
- TDM_ERROR_BAD_MODULE = -7, /**< bad backend module */
- TDM_ERROR_NOT_IMPLEMENTED = -8, /**< not implemented */
- TDM_ERROR_NO_CAPABILITY = -9, /**< no capability */
-} tdm_error;
-
-/**
- * @brief The transform enumeration(rotate, flip)
- */
-typedef enum {
- TDM_TRANSFORM_NORMAL = 0, /**< no transform */
- TDM_TRANSFORM_90 = 1, /**< rotate 90 */
- TDM_TRANSFORM_180 = 2, /**< rotate 180 */
- TDM_TRANSFORM_270 = 3, /**< rotate 270 */
- TDM_TRANSFORM_FLIPPED = 4, /**< no rotate and horizontal flip */
- TDM_TRANSFORM_FLIPPED_90 = 5, /**< rotate 90 and horizontal flip */
- TDM_TRANSFORM_FLIPPED_180 = 6, /**< rotate 180 and horizontal flip */
- TDM_TRANSFORM_FLIPPED_270 = 7, /**< rotate 270 and horizontal flip */
-} tdm_transform;
-
-/**
- * @brief The output connection status enumeration
- */
-typedef enum {
- TDM_OUTPUT_CONN_STATUS_DISCONNECTED, /**< output disconnected */
- TDM_OUTPUT_CONN_STATUS_CONNECTED, /**< output connected */
- TDM_OUTPUT_CONN_STATUS_MODE_SETTED, /**< output connected and setted a mode */
-} tdm_output_conn_status;
-
-/**
- * @brief The output connection status enumeration
- * @details bit compatible with the libdrm definitions.
- */
-typedef enum {
- TDM_OUTPUT_TYPE_Unknown, /**< unknown */
- TDM_OUTPUT_TYPE_VGA, /**< VGA connection */
- TDM_OUTPUT_TYPE_DVII, /**< DVII connection */
- TDM_OUTPUT_TYPE_DVID, /**< DVID connection */
- TDM_OUTPUT_TYPE_DVIA, /**< DVIA connection */
- TDM_OUTPUT_TYPE_Composite, /**< Composite connection */
- TDM_OUTPUT_TYPE_SVIDEO, /**< SVIDEO connection */
- TDM_OUTPUT_TYPE_LVDS, /**< LVDS connection */
- TDM_OUTPUT_TYPE_Component, /**< Component connection */
- TDM_OUTPUT_TYPE_9PinDIN, /**< 9PinDIN connection */
- TDM_OUTPUT_TYPE_DisplayPort, /**< DisplayPort connection */
- TDM_OUTPUT_TYPE_HDMIA, /**< HDMIA connection */
- TDM_OUTPUT_TYPE_HDMIB, /**< HDMIB connection */
- TDM_OUTPUT_TYPE_TV, /**< TV connection */
- TDM_OUTPUT_TYPE_eDP, /**< eDP connection */
- TDM_OUTPUT_TYPE_VIRTUAL, /**< Virtual connection for WiFi Display */
- TDM_OUTPUT_TYPE_DSI, /**< DSI connection */
-} tdm_output_type;
-
-/**
- * @brief The DPMS enumeration
- * @details bit compatible with the libdrm definitions.
- */
-typedef enum {
- TDM_OUTPUT_DPMS_ON, /**< On */
- TDM_OUTPUT_DPMS_STANDBY, /**< StandBy */
- TDM_OUTPUT_DPMS_SUSPEND, /**< Suspend */
- TDM_OUTPUT_DPMS_OFF, /**< Off */
-} tdm_output_dpms;
-
-/**
- * @brief The layer capability enumeration
- * @details
- * A layer can have one of CURSOR, PRIMARY and OVERLAY capability. And a layer
- * also can have one of GRAPHIC and VIDEO capability. And a layer also can have
- * SCALE and TRANSFORM capability.\n
- * @par Example
- * @code
- //For example
- capabilities = TDM_LAYER_CAPABILITY_PRIMARY | TDM_LAYER_CAPABILITY_GRAPHIC;
- capabilities = TDM_LAYER_CAPABILITY_OVERLAY | TDM_LAYER_CAPABILITY_GRAPHIC | TDM_LAYER_CAPABILITY_SCALE;
- capabilities = TDM_LAYER_CAPABILITY_OVERLAY | TDM_LAYER_CAPABILITY_GRAPHIC | TDM_LAYER_CAPABILITY_SCALE | TDM_LAYER_CAPABILITY_TRANSFORM;
- capabilities = TDM_LAYER_CAPABILITY_CURSOR | TDM_LAYER_CAPABILITY_GRAPHIC;
- capabilities = TDM_LAYER_CAPABILITY_OVERLAY | TDM_LAYER_CAPABILITY_VIDEO;
- * @endcode
- * @remark
- * - When a video plays, in most of cases, video buffers will be displayed to
- * a GRAPHIC layer after converting RGB buffers via PP. In this case, a backend
- * module doesn't need to offer VIDEO layer.
- * - But in case that s vendor wants to handle a video by their own way,
- * a backend module offer VIDEO layers. And a display server will pass a video
- * buffer to a VIDEO layer without converting.
- */