output: add tdm_output_has_capture_capability 12/171712/1
authorBoram Park <boram1288.park@samsung.com>
Wed, 7 Mar 2018 01:21:19 +0000 (10:21 +0900)
committerBoram Park <boram1288.park@samsung.com>
Wed, 7 Mar 2018 01:35:48 +0000 (10:35 +0900)
Change-Id: Ida5763d36449c1bb7c2734e63bdbf25eb4b0d90b

include/tdm.h
src/tdm_output.c

index 19d30ba..bc1f0ef 100644 (file)
@@ -548,6 +548,15 @@ tdm_error
 tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value);
 
 /**
+ * @brief Check if a output object has the capture capability
+ * @param[in] output A output object
+ * @param[out] has_capability 1: has the capability, 0: not has the capability
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_output_has_capture_capability(tdm_output *output, unsigned int *has_capability);
+
+/**
  * @brief Create a capture object of a output object
  * @param[in] output A output object
  * @param[out] error #TDM_ERROR_NONE if success. Otherwise, error value.
index 03dcd45..15ebd81 100644 (file)
@@ -1473,6 +1473,31 @@ tdm_output_get_dpms(tdm_output *output, tdm_output_dpms *dpms_value)
        return ret;
 }
 
+EXTERN tdm_error
+tdm_output_has_capture_capability(tdm_output *output, unsigned int *has_capability)
+{
+       tdm_private_module *private_module;
+
+       OUTPUT_FUNC_ENTRY();
+
+       TDM_RETURN_VAL_IF_FAIL(has_capability != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       private_module = private_output->private_module;
+
+       if (!(private_module->capabilities & TDM_DISPLAY_CAPABILITY_CAPTURE))
+               *has_capability = 0;
+       else if (!(private_module->caps_capture.capabilities & TDM_CAPTURE_CAPABILITY_OUTPUT))
+               *has_capability = 0;
+       else
+               *has_capability = 1;
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}
+
 EXTERN tdm_capture *
 tdm_output_create_capture(tdm_output *output, tdm_error *error)
 {