add tdm_output_set_mirror
[platform/core/uifw/libtdm.git] / include / tdm_backend.h
index 2de78c0..4075f7b 100644 (file)
@@ -150,8 +150,7 @@ typedef struct _tdm_caps_layer {
        int zpos;
 
        unsigned int format_count;      /**< The count of available formats */
-       tbm_format
-       *formats;            /**< The @b newly-allocated array of formats. will be freed in frontend. */
+       tbm_format *formats;            /**< The @b newly-allocated array of formats. will be freed in frontend. */
 
        unsigned int prop_count;        /**< The count of available properties */
        tdm_prop *props;                /**< The @b newly-allocated array of properties. will be freed in frontend. */
@@ -559,7 +558,23 @@ typedef struct _tdm_func_output {
         */
        tdm_hwc *(*output_get_hwc)(tdm_output *output, tdm_error *error);
 
-       void (*reserved3)(void);
+       /**
+        * @brief Set the mirror image of the src_output to the output
+        * @details This function set the mirro image of the src_output to the output.
+        * If there is the hardware or the implementation to display the mirror image
+        * of the src_output to the output, the backend does it in this function.
+        * If the backend output gets the ability of the mirror displaying, it has to
+        * set the TDM_OUTPUT_CAPABILITY_MIRROR on the output capability.
+        * @param[in] output A output object to display the src_output image
+        * @param[in] src_output A src output object of which image is displayed on the output
+        * @param[in] transform A transform value
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        * @see #TDM_OUTPUT_CAPABILITY_MIRROR
+        */
+       tdm_error (*output_set_mirror)(tdm_output *output,
+                                                                       tdm_output *src_output,
+                                                                       tdm_transform transform);
+
        void (*reserved4)(void);
        void (*reserved5)(void);
        void (*reserved6)(void);
@@ -804,13 +819,22 @@ typedef struct _tdm_func_hwc {
        tdm_error (*hwc_get_video_supported_formats)(tdm_hwc *hwc, const tbm_format **formats,
                                                                                int *count);
        /**
-        * @brief Get the hwc video capability
+        * @brief Get the available video property array  of a hwc object.
         * @param[in] hwc A hwc object
-        * @param[out] video_capability A hwc hwc video capability
+        * @param[out] props The available video property array
+        * @param[out] count The count of video properties
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
         */
-       tdm_error (*hwc_get_video_capability)(tdm_hwc *hwc,
-                                                       tdm_hwc_video_capability *video_capability);
+       tdm_error (*hwc_get_video_available_properties)(tdm_hwc *hwc, const tdm_prop **props,
+                                                                               int *count);
+
+       /**
+        * @brief Get the hwc capabilities
+        * @param[in] hwc A hwc object
+        * @param[out] capabilities A hwc hwc capability
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*hwc_get_capabilities)(tdm_hwc *hwc, tdm_hwc_capability *capabilities);
 
        /**
         * @brief Get the available property array  of a hwc object.
@@ -920,6 +944,24 @@ typedef struct _tdm_func_hwc {
         * @return #TDM_ERROR_NONE if success. Otherwise, error value.
         */
        tdm_error (*hwc_set_commit_handler)(tdm_hwc *hwc, tdm_hwc_commit_handler func);
+
+       /**
+        * @brief Set the property which has a given id on the hwc object.
+        * @param[in] hwc A hwc object
+        * @param[in] id The property id
+        * @param[in] value The value of the propery id
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*hwc_set_property)(tdm_hwc *hwc, uint32_t id, tdm_value value);
+
+       /**
+        * @brief Get the property which has a given id on the hwc object.
+        * @param[in] hwc A hwc object
+        * @param[in] id The property id
+        * @param[in] value The value of the propery id
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*hwc_get_property)(tdm_hwc *hwc, uint32_t id, tdm_value *value);
 } tdm_func_hwc;
 
 /**
@@ -1038,6 +1080,27 @@ typedef struct _tdm_func_hwc_window {
         */
        tdm_error (*hwc_window_get_constraints)(tdm_hwc_window *hwc_window,
                                                                                                int *constraints);
+
+       /**
+        * @brief Set the name of hwc_window
+        * @param[in] hwc_window A hwc window object
+        * @param[in] name of the hwc_window
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*hwc_window_set_name)(tdm_hwc_window *hwc_window,
+                                                                                               const char *name);
+
+       /**
+        * @brief Get buffer flags of cursor hwc_window
+        * @param[in] hwc_window A hwc window object
+        * @param[in] width of the cursor image
+        * @param[in] height of the cursor image
+        * @param[in] stride of the cursor image
+        * @param[in] virtual address of the cursor image
+        * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+        */
+       tdm_error (*hwc_window_set_cursor_image)(tdm_hwc_window *hwc_window,
+                                                               int width, int height, int stride, void *ptr);
 } tdm_func_hwc_window;
 
 /**