tdm_layer_create_capture(tdm_layer *layer, tdm_error *error);
/**
+ * @brief Get buffer flags from a layer object
+ * @param[in] layer A layer object
+ * @param[out] flags a buffer flags value
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+tdm_error
+tdm_layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags);
+
+/**
* @brief Destroy a pp object
* @param[in] pp A pp object
* @see tdm_display_create_pp
*/
tdm_capture *(*layer_create_capture)(tdm_layer *layer, tdm_error *error);
+ /**
+ * @brief Get buffer flags which the layer can support.
+ * @param[in] layer A layer object
+ * @param[out] flags The buffer flags which should be the tbm_bo flags
+ * @return #TDM_ERROR_NONE if success. Otherwise, error value.
+ */
+ tdm_error (*layer_get_buffer_flags)(tdm_layer *layer, unsigned int *flags);
+
void (*reserved1)(void);
void (*reserved2)(void);
void (*reserved3)(void);
void (*reserved5)(void);
void (*reserved6)(void);
void (*reserved7)(void);
- void (*reserved8)(void);
} tdm_func_layer;
/**
return capture;
}
+
+EXTERN tdm_error
+tdm_layer_get_buffer_flags(tdm_layer *layer, unsigned int *flags)
+{
+ tdm_func_layer *func_layer;
+ LAYER_FUNC_ENTRY();
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ func_layer = &private_display->func_layer;
+
+ if (!func_layer->layer_get_buffer_flags) {
+ _pthread_mutex_unlock(&private_display->lock);
+ TDM_ERR("not implemented!!");
+ return TDM_ERROR_NOT_IMPLEMENTED;
+ }
+
+ ret = func_layer->layer_get_buffer_flags(private_layer->layer_backend, flags);
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}