first implementation for the output capability 68/83268/1
authorBoram Park <boram1288.park@samsung.com>
Tue, 9 Aug 2016 03:59:19 +0000 (12:59 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 9 Aug 2016 03:59:19 +0000 (12:59 +0900)
Change-Id: I87f8321f3fc0475ee926ca69b2fae09c75f62f3c

include/tdm.h
include/tdm_backend.h
include/tdm_common.h
src/tdm_display.c

index b62beb7..4fa6e21 100644 (file)
@@ -234,6 +234,16 @@ tdm_pp *
 tdm_display_create_pp(tdm_display *dpy, tdm_error *error);
 
 /**
+ * @brief Get the capabilities of a output object.
+ * @param[in] output A output object
+ * @param[out] capabilities The capabilities of a output object
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_output_get_capabilities(tdm_output *output,
+                                                       tdm_output_capability *capabilities);
+
+/**
  * @brief Get the model information of a output object.
  * @param[in] output A output object
  * @param[out] maker The output maker.
index bf270e2..d455d1d 100644 (file)
@@ -108,6 +108,8 @@ typedef struct _tdm_caps_output {
        int max_w;              /**< The maximum width. -1 means "not defined" */
        int max_h;              /**< The maximum height. -1 means "not defined" */
        int preferred_align;    /**< The prefered align. -1 means "not defined" */
+
+       tdm_output_capability capabilities;  /**< The capabilities of output. @since 1.4.1 */
 } tdm_caps_output;
 
 /**
index fae1224..b5a9c2e 100644 (file)
@@ -83,6 +83,15 @@ typedef enum {
 } tdm_transform;
 
 /**
+ * @brief The output capability enumeration
+ * @details
+ * @remark
+ */
+typedef enum {
+       TDM_OUTPUT_CAPABILITY_ASYNC_DPMS         = (1 << 0), /**< if a outupt supports asynchronous DPMS operation */
+} tdm_output_capability;
+
+/**
  * @brief The layer capability enumeration
  * @details
  * A layer can have one of CURSOR, PRIMARY and OVERLAY capability. And a layer
index 20dc77c..e31b563 100644 (file)
@@ -415,6 +415,22 @@ tdm_output_get_model_info(tdm_output *output, const char **maker,
 }
 
 EXTERN tdm_error
+tdm_output_get_capabilities(tdm_output *output, tdm_output_capability *capabilities)
+{
+       OUTPUT_FUNC_ENTRY();
+
+       TDM_RETURN_VAL_IF_FAIL(capabilities != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       *capabilities = private_output->caps.capabilities;
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}
+
+EXTERN tdm_error
 tdm_output_get_conn_status(tdm_output *output, tdm_output_conn_status *status)
 {
        OUTPUT_FUNC_ENTRY();