#include "config.h"
#endif
-#include "tdm.h"
-#include "tdm_backend.h"
#include "tdm_private.h"
-#include "tdm_helper.h"
#define COUNT_MAX 10
}
EXTERN tdm_error
-tdm_hwc_window_set_zpos(tdm_hwc_window *hwc_window, uint32_t zpos)
+tdm_hwc_window_set_zpos(tdm_hwc_window *hwc_window, int32_t zpos)
{
tdm_func_hwc_window *func_hwc_window = NULL;
tdm_func_hwc_window *func_hwc_window = NULL;
HWC_WINDOW_FUNC_ENTRY();
+ TDM_RETURN_VAL_IF_FAIL(composition_type >= TDM_COMPOSITION_NONE, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(composition_type <= TDM_COMPOSITION_VIDEO, TDM_ERROR_INVALID_PARAMETER);
_pthread_mutex_lock(&private_display->lock);
tdm_func_hwc_window *func_hwc_window = NULL;
HWC_WINDOW_FUNC_ENTRY();
+ if (damage.num_rects > 0)
+ TDM_RETURN_VAL_IF_FAIL(damage.rects != NULL, TDM_ERROR_INVALID_PARAMETER);
_pthread_mutex_lock(&private_display->lock);
tdm_private_output *private_output = private_window->private_output;
unsigned int pipe;
uint32_t zpos;
- char fname[PATH_MAX];
+ char fname[TDM_PATH_LEN];
pipe = private_output->pipe;
zpos = private_window->zpos;
}
INTERN tdm_hwc_window *
-tdm_hwc_window_create_internal(tdm_private_output *private_output,
+tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video,
tdm_error *error)
{
tdm_private_display *private_display = private_output->private_display;
TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), NULL);
- if (!func_output->output_hwc_create_window) {
- /* LCOV_EXCL_START */
- if (error)
- *error = TDM_ERROR_BAD_MODULE;
- return NULL;
- /* LCOV_EXCL_STOP */
- }
+ if (!is_video) {
+ if (!func_output->output_hwc_create_window) {
+ /* LCOV_EXCL_START */
+ if (error)
+ *error = TDM_ERROR_BAD_MODULE;
+ return NULL;
+ /* LCOV_EXCL_STOP */
+ }
- hwc_window_backend = func_output->output_hwc_create_window(
+ hwc_window_backend = func_output->output_hwc_create_window(
private_output->output_backend, &ret);
- if (ret != TDM_ERROR_NONE) {
- if (error)
- *error = ret;
- return NULL;
+ if (ret != TDM_ERROR_NONE) {
+ if (error)
+ *error = ret;
+ return NULL;
+ }
+ } else {
+ if (!func_output->output_hwc_create_video_window) {
+ /* LCOV_EXCL_START */
+ if (error)
+ *error = TDM_ERROR_NOT_IMPLEMENTED;
+ return NULL;
+ /* LCOV_EXCL_STOP */
+ }
+
+ hwc_window_backend = func_output->output_hwc_create_video_window(
+ private_output->output_backend, &ret);
+ if (ret != TDM_ERROR_NONE) {
+ if (error)
+ *error = ret;
+ return NULL;
+ }
}
- private_hwc_window = calloc(1, sizeof(tdm_private_capture));
+ private_hwc_window = calloc(1, sizeof(tdm_private_hwc_window));
if (!private_hwc_window) {
/* LCOV_EXCL_START */
TDM_ERR("failed: alloc memory");
}
EXTERN tdm_error
-tdm_hwc_window_video_get_supported_format(tdm_hwc_window *hwc_window,
- const tbm_format **formats,
- int *count)
+tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window,
+ const tdm_prop **props, int *count)
{
tdm_func_hwc_window *func_hwc_window = NULL;
HWC_WINDOW_FUNC_ENTRY();
- TDM_RETURN_VAL_IF_FAIL(formats != NULL, TDM_ERROR_INVALID_PARAMETER);
+ TDM_RETURN_VAL_IF_FAIL(props != NULL, TDM_ERROR_INVALID_PARAMETER);
TDM_RETURN_VAL_IF_FAIL(count != NULL, TDM_ERROR_INVALID_PARAMETER);
_pthread_mutex_lock(&private_display->lock);
func_hwc_window = &private_display->func_hwc_window;
- if (!func_hwc_window->hwc_window_video_get_supported_format) {
+ if (!func_hwc_window->hwc_window_video_get_available_properties) {
+ /* LCOV_EXCL_START */
+ _pthread_mutex_unlock(&private_display->lock);
+ TDM_ERR("not implemented!!");
+ return TDM_ERROR_NOT_IMPLEMENTED;
+ /* LCOV_EXCL_STOP */
+ }
+
+ ret = func_hwc_window->hwc_window_video_get_available_properties(private_hwc_window->hwc_window_backend,
+ props, count);
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}
+
+EXTERN tdm_error
+tdm_hwc_window_video_get_property(tdm_hwc_window *hwc_window,
+ unsigned int id, tdm_value *value)
+{
+ tdm_func_hwc_window *func_hwc_window = NULL;
+
+ HWC_WINDOW_FUNC_ENTRY();
+
+ TDM_RETURN_VAL_IF_FAIL(value != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ func_hwc_window = &private_display->func_hwc_window;
+
+ if (!func_hwc_window->hwc_window_video_get_property) {
+ /* LCOV_EXCL_START */
+ _pthread_mutex_unlock(&private_display->lock);
+ TDM_ERR("not implemented!!");
+ return TDM_ERROR_NOT_IMPLEMENTED;
+ /* LCOV_EXCL_STOP */
+ }
+
+ ret = func_hwc_window->hwc_window_video_get_property(private_hwc_window->hwc_window_backend,
+ id, value);
+
+ _pthread_mutex_unlock(&private_display->lock);
+
+ return ret;
+}
+
+EXTERN tdm_error
+tdm_hwc_window_video_set_property(tdm_hwc_window *hwc_window,
+ unsigned int id, tdm_value value)
+{
+ tdm_func_hwc_window *func_hwc_window = NULL;
+
+ HWC_WINDOW_FUNC_ENTRY();
+
+ _pthread_mutex_lock(&private_display->lock);
+
+ func_hwc_window = &private_display->func_hwc_window;
+
+ if (!func_hwc_window->hwc_window_video_set_property) {
/* LCOV_EXCL_START */
_pthread_mutex_unlock(&private_display->lock);
TDM_ERR("not implemented!!");
/* LCOV_EXCL_STOP */
}
- ret = func_hwc_window->hwc_window_video_get_supported_format(private_hwc_window->hwc_window_backend,
- formats, count);
+ ret = func_hwc_window->hwc_window_video_set_property(private_hwc_window->hwc_window_backend,
+ id, value);
_pthread_mutex_unlock(&private_display->lock);