X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_hwc_window.c;h=fd863458742f36960dedcd75fb9881e60dc5669f;hb=d18570c1256f15468761ccf7eece3f329c1d3c5b;hp=47ea149b3f90bd76cf774e0f2daa8f2df36b962f;hpb=1c3c5d57f8f8ede726c40e3116254c93b43e1906;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_hwc_window.c b/src/tdm_hwc_window.c index 47ea149..fd86345 100644 --- a/src/tdm_hwc_window.c +++ b/src/tdm_hwc_window.c @@ -2,14 +2,12 @@ * * libtdm * - * Copyright 2015 Samsung Electronics co., Ltd. All Rights Reserved. + * Copyright 2018 Samsung Electronics co., Ltd. All Rights Reserved. * - * Contact: Eunchul Kim , - * JinYoung Jeon , - * Taeheon Kim , - * YoungJun Cho , - * SooChan Lim , - * Boram Park + * Contact: SooChan Lim , + * Boram Park , + * Changyeon Lee , + * Sangjin Lee * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -37,46 +35,159 @@ #include "config.h" #endif -#include "tdm.h" -#include "tdm_backend.h" #include "tdm_private.h" -#include "tdm_helper.h" + +/* LCOV_EXCL_START */ #define COUNT_MAX 10 #define HWC_WINDOW_FUNC_ENTRY() \ tdm_private_display *private_display; \ tdm_private_output *private_output; \ + tdm_private_hwc *private_hwc; \ tdm_private_hwc_window *private_hwc_window; \ tdm_error ret = TDM_ERROR_NONE; /* default TDM_ERROR_NONE */\ TDM_RETURN_VAL_IF_FAIL(hwc_window != NULL, TDM_ERROR_INVALID_PARAMETER); \ private_hwc_window = (tdm_private_hwc_window*)hwc_window; \ - private_output = private_hwc_window->private_output; \ + private_hwc = private_hwc_window->private_hwc; \ + TDM_RETURN_VAL_IF_FAIL(private_hwc != NULL, TDM_ERROR_INVALID_PARAMETER); \ + private_output = private_hwc->private_output; \ + TDM_RETURN_VAL_IF_FAIL(private_output != NULL, TDM_ERROR_INVALID_PARAMETER); \ private_display = private_output->private_display #define HWC_WINDOW_FUNC_ENTRY_ERROR() \ tdm_private_display *private_display; \ tdm_private_output *private_output; \ + tdm_private_hwc *private_hwc; \ tdm_private_hwc_window *private_hwc_window; \ tdm_error ret = TDM_ERROR_NONE; /* default TDM_ERROR_NONE */\ TDM_RETURN_VAL_IF_FAIL_WITH_ERROR(hwc_window != NULL, TDM_ERROR_INVALID_PARAMETER, NULL); \ private_hwc_window = (tdm_private_hwc_window*)hwc_window; \ - private_output = private_hwc_window->private_output; \ + private_hwc = private_hwc_window->private_hwc; \ + TDM_RETURN_VAL_IF_FAIL_WITH_ERROR(private_hwc != NULL, TDM_ERROR_INVALID_PARAMETER, NULL); \ + private_output = private_hwc->private_output; \ + TDM_RETURN_VAL_IF_FAIL_WITH_ERROR(private_output != NULL, TDM_ERROR_INVALID_PARAMETER, NULL); \ private_display = private_output->private_display #define HWC_WINDOW_FUNC_ENTRY_VOID_RETURN() \ tdm_private_display *private_display; \ tdm_private_output *private_output; \ + tdm_private_hwc *private_hwc; \ tdm_private_hwc_window *private_hwc_window; \ tdm_error ret = TDM_ERROR_NONE; /* default TDM_ERROR_NONE */\ TDM_RETURN_IF_FAIL(hwc_window != NULL); \ private_hwc_window = (tdm_private_hwc_window*)hwc_window; \ - private_output = private_hwc_window->private_output; \ + private_hwc = private_hwc_window->private_hwc; \ + TDM_RETURN_IF_FAIL(private_hwc != NULL); \ + private_output = private_hwc->private_output; \ + TDM_RETURN_IF_FAIL(private_output != NULL); \ private_display = private_output->private_display -tbm_surface_queue_h -tdm_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) + +INTERN tdm_hwc_window * +tdm_hwc_window_create_internal(tdm_private_hwc *private_hwc, tdm_error *error) +{ + tdm_private_output *private_output = private_hwc->private_output; + tdm_private_module *private_module = private_output->private_module; + tdm_func_hwc *func_hwc = &private_module->func_hwc; + tdm_private_hwc_window *private_hwc_window = NULL; + tdm_hwc_window *hwc_window_backend = NULL; + tdm_error ret = TDM_ERROR_NONE; + + TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), NULL); + + if (!func_hwc->hwc_create_window) { + /* LCOV_EXCL_START */ + if (error) + *error = TDM_ERROR_BAD_MODULE; + return NULL; + /* LCOV_EXCL_STOP */ + } + + private_hwc_window = calloc(1, sizeof(tdm_private_hwc_window)); + if (!private_hwc_window) { + /* LCOV_EXCL_START */ + TDM_ERR("failed: alloc memory"); + if (error) + *error = TDM_ERROR_OUT_OF_MEMORY; + return NULL; + /* LCOV_EXCL_STOP */ + } + + hwc_window_backend = func_hwc->hwc_create_window(private_hwc->hwc_backend, &ret); + if (ret != TDM_ERROR_NONE) { + free(private_hwc_window); + if (error) + *error = ret; + return NULL; + } + + LIST_ADD(&private_hwc_window->link, &private_hwc->hwc_window_list); + + private_hwc_window->private_hwc = private_hwc; + private_hwc_window->hwc_window_backend = hwc_window_backend; + + TDM_DBG("hwc_window(%p) create", private_hwc_window); + + if (error) + *error = TDM_ERROR_NONE; + + return private_hwc_window; +} + +INTERN void +tdm_hwc_window_destroy_internal(tdm_private_hwc_window *private_hwc_window) { + tdm_private_output *private_output; + tdm_private_module *private_module; + tdm_private_hwc *private_hwc; + tdm_func_hwc_window *func_hwc_window; + + TDM_RETURN_IF_FAIL(TDM_MUTEX_IS_LOCKED()); + + if (!private_hwc_window) + return; + + private_hwc = private_hwc_window->private_hwc; + private_output = private_hwc->private_output; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; + + LIST_DEL(&private_hwc_window->link); + + func_hwc_window = &private_module->func_hwc_window; + func_hwc_window->hwc_window_destroy(private_hwc_window->hwc_window_backend); + + free(private_hwc_window); +} + +EXTERN void +tdm_hwc_window_destroy(tdm_hwc_window *hwc_window) +{ + tdm_private_display *private_display; + tdm_private_output *private_output; + tdm_private_hwc *private_hwc; + tdm_private_hwc_window *private_hwc_window; + + if (!hwc_window) + return; + + private_hwc_window = (tdm_private_hwc_window *)hwc_window; + private_hwc = private_hwc_window->private_hwc; + private_output = private_hwc->private_output; + private_display = private_output->private_display; + + _pthread_mutex_lock(&private_display->lock); + + tdm_hwc_window_destroy_internal(hwc_window); + + _pthread_mutex_unlock(&private_display->lock); +} + +EXTERN tbm_surface_queue_h +tdm_hwc_window_acquire_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error) +{ + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; tbm_surface_queue_h queue = NULL; @@ -84,73 +195,83 @@ tdm_hwc_window_get_tbm_buffer_queue(tdm_hwc_window *hwc_window, tdm_error *error _pthread_mutex_lock(&private_display->lock); - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_get_tbm_buffer_queue) { + if (!func_hwc_window->hwc_window_acquire_buffer_queue) { /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); if (error) *error = TDM_ERROR_NOT_IMPLEMENTED; return NULL; - /* LCOV_EXCL_STOP */ } - queue = func_hwc_window->hwc_window_get_tbm_buffer_queue(private_hwc_window->hwc_window_backend, error); + queue = func_hwc_window->hwc_window_acquire_buffer_queue(private_hwc_window->hwc_window_backend, error); _pthread_mutex_unlock(&private_display->lock); return queue; } -EXTERN tdm_error -tdm_hwc_window_set_zpos(tdm_hwc_window *hwc_window, int32_t zpos) +EXTERN void +tdm_hwc_window_release_buffer_queue(tdm_hwc_window *hwc_window, tbm_surface_queue_h queue) { + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; + tdm_private_display *private_display; + tdm_private_output *private_output; + tdm_private_hwc *private_hwc; + tdm_private_hwc_window *private_hwc_window; - HWC_WINDOW_FUNC_ENTRY(); + if (!hwc_window) + return; + + private_hwc_window = (tdm_private_hwc_window *)hwc_window; + private_hwc = private_hwc_window->private_hwc; + private_output = private_hwc->private_output; + private_display = private_output->private_display; + + TDM_RETURN_IF_FAIL(queue != NULL); _pthread_mutex_lock(&private_display->lock); - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_set_zpos) { - /* LCOV_EXCL_START */ + if (!func_hwc_window->hwc_window_release_buffer_queue) { _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); - return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ + TDM_WRN("not implemented!!"); + return; } - ret = func_hwc_window->hwc_window_set_zpos(private_hwc_window->hwc_window_backend, zpos); - if (ret == TDM_ERROR_NONE) - private_hwc_window->zpos = zpos; + func_hwc_window->hwc_window_release_buffer_queue(private_hwc_window->hwc_window_backend, queue); _pthread_mutex_unlock(&private_display->lock); - return ret; + return; } EXTERN tdm_error tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, tdm_hwc_window_composition composition_type) { + tdm_private_module *private_module; 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); + TDM_RETURN_VAL_IF_FAIL(composition_type >= TDM_HWC_WIN_COMPOSITION_NONE, TDM_ERROR_INVALID_PARAMETER); + TDM_RETURN_VAL_IF_FAIL(composition_type <= TDM_HWC_WIN_COMPOSITION_VIDEO, TDM_ERROR_INVALID_PARAMETER); _pthread_mutex_lock(&private_display->lock); - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; if (!func_hwc_window->hwc_window_set_composition_type) { - /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } ret = func_hwc_window->hwc_window_set_composition_type(private_hwc_window->hwc_window_backend, composition_type); @@ -161,8 +282,9 @@ tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window, } EXTERN tdm_error -tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_hwc_region damage) +tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage) { + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; HWC_WINDOW_FUNC_ENTRY(); @@ -171,14 +293,13 @@ tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_hwc_region dama _pthread_mutex_lock(&private_display->lock); - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; if (!func_hwc_window->hwc_window_set_buffer_damage) { - /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } ret = func_hwc_window->hwc_window_set_buffer_damage(private_hwc_window->hwc_window_backend, damage); @@ -192,6 +313,7 @@ tdm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_hwc_region dama EXTERN tdm_error tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info) { + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; char fmtstr[128]; @@ -201,14 +323,13 @@ tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info) _pthread_mutex_lock(&private_display->lock); - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; if (!func_hwc_window->hwc_window_set_info) { - /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } if (info->src_config.format) @@ -232,31 +353,10 @@ tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info) return ret; } -/* LCOV_EXCL_START */ -static void -_tdm_window_dump_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer) -{ - tdm_private_hwc_window *private_window = (tdm_private_hwc_window *)hwc_window; - tdm_private_output *private_output = private_window->private_output; - unsigned int pipe; - uint32_t zpos; - char fname[PATH_MAX]; - - pipe = private_output->pipe; - zpos = private_window->zpos; - - snprintf(fname, sizeof(fname), "tdm_%d_win_%d", pipe, zpos); - - tbm_surface_internal_dump_buffer(buffer, fname); - TDM_DBG("%s dump excute", fname); - - return; -} -/* LCOV_EXCL_STOP */ - EXTERN tdm_error tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer) { + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window; HWC_WINDOW_FUNC_ENTRY(); @@ -264,31 +364,21 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer) _pthread_mutex_lock(&private_display->lock); if ((tdm_debug_dump & TDM_DUMP_FLAG_WINDOW) && buffer) { - /* LCOV_EXCL_START */ char str[TDM_PATH_LEN]; static int i; - snprintf(str, TDM_PATH_LEN, "window_%d_%d_%03d", - private_output->index, private_hwc_window->zpos, i++); + snprintf(str, TDM_PATH_LEN, "window_%d_%03d", private_output->index, i++); tdm_helper_dump_buffer_str(buffer, tdm_debug_dump_dir, str); - /* LCOV_EXCL_STOP */ } - func_hwc_window = &private_display->func_hwc_window; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; if (!func_hwc_window->hwc_window_set_buffer) { - /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } - /* dump buffer */ - /* LCOV_EXCL_START */ - if (tdm_dump_enable && buffer) - _tdm_window_dump_buffer(hwc_window, buffer); - /* LCOV_EXCL_STOP */ - ret = func_hwc_window->hwc_window_set_buffer(private_hwc_window->hwc_window_backend, buffer); _pthread_mutex_unlock(&private_display->lock); @@ -296,177 +386,29 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer) return ret; } -INTERN tdm_hwc_window * -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_func_output *func_output = &private_display->func_output; - tdm_private_hwc_window *private_hwc_window = NULL; - tdm_hwc_window *hwc_window_backend = NULL; - tdm_error ret = TDM_ERROR_NONE; - - TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), NULL); - - 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( - private_output->output_backend, &ret); - 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_hwc_window)); - if (!private_hwc_window) { - /* LCOV_EXCL_START */ - TDM_ERR("failed: alloc memory"); - func_output->output_hwc_destroy_window(private_output->output_backend, hwc_window_backend); - if (error) - *error = TDM_ERROR_OUT_OF_MEMORY; - return NULL; - /* LCOV_EXCL_STOP */ - } - - LIST_ADD(&private_hwc_window->link, &private_output->hwc_window_list); - - private_hwc_window->private_display = private_display; - private_hwc_window->private_output = private_output; - private_hwc_window->hwc_window_backend = hwc_window_backend; - - TDM_DBG("hwc_window(%p) create", private_hwc_window); - - if (error) - *error = TDM_ERROR_NONE; - - return private_hwc_window; -} - -INTERN tdm_error -tdm_hwc_window_destroy_internal(tdm_private_hwc_window * private_hwc_window) -{ - tdm_private_display *private_display; - tdm_private_output *private_output; - tdm_func_output *func_output; - - TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED); - - if (!private_hwc_window) - return TDM_ERROR_OPERATION_FAILED; - - private_display = private_hwc_window->private_display; - private_output = private_hwc_window->private_output; - - LIST_DEL(&private_hwc_window->link); - - func_output = &private_display->func_output; - func_output->output_hwc_destroy_window(private_output->output_backend, private_hwc_window->hwc_window_backend); - - free(private_hwc_window); - return TDM_ERROR_NONE; -} - -EXTERN tdm_error -tdm_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags) -{ - 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_set_flags) { - /* 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_set_flags(private_hwc_window->hwc_window_backend, flags); - - _pthread_mutex_unlock(&private_display->lock); - - return ret; -} - EXTERN tdm_error -tdm_hwc_window_unset_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags) +tdm_hwc_window_get_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value *value) { + tdm_private_module *private_module; 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_unset_flags) { - /* 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_unset_flags(private_hwc_window->hwc_window_backend, flags); - - _pthread_mutex_unlock(&private_display->lock); - - return ret; -} - -EXTERN tdm_error -tdm_hwc_window_video_get_capability(tdm_hwc_window *hwc_window, - tdm_hwc_window_video_capability *video_capability) -{ - tdm_func_hwc_window *func_hwc_window = NULL; - - HWC_WINDOW_FUNC_ENTRY(); - - TDM_RETURN_VAL_IF_FAIL(video_capability != NULL, TDM_ERROR_INVALID_PARAMETER); + 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; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_video_get_capability) { + if (!func_hwc_window->hwc_window_get_property) { /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } - ret = func_hwc_window->hwc_window_video_get_capability(private_hwc_window->hwc_window_backend, - video_capability); + ret = func_hwc_window->hwc_window_get_property(private_hwc_window->hwc_window_backend, id, value); _pthread_mutex_unlock(&private_display->lock); @@ -474,30 +416,26 @@ tdm_hwc_window_video_get_capability(tdm_hwc_window *hwc_window, } EXTERN tdm_error -tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window, - const tdm_prop **props, int *count) +tdm_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value value) { + tdm_private_module *private_module; tdm_func_hwc_window *func_hwc_window = NULL; HWC_WINDOW_FUNC_ENTRY(); - 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; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_video_get_available_properties) { + if (!func_hwc_window->hwc_window_set_property) { /* LCOV_EXCL_START */ _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("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); + ret = func_hwc_window->hwc_window_set_property(private_hwc_window->hwc_window_backend, id, value); _pthread_mutex_unlock(&private_display->lock); @@ -505,29 +443,25 @@ tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window, } EXTERN tdm_error -tdm_hwc_window_video_get_property(tdm_hwc_window *hwc_window, - unsigned int id, tdm_value *value) +tdm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) { + tdm_private_module *private_module; 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; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_video_get_property) { - /* LCOV_EXCL_START */ + if (!func_hwc_window->hwc_window_get_constraints) { _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("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); + ret = func_hwc_window->hwc_window_get_constraints(private_hwc_window->hwc_window_backend, constraints); _pthread_mutex_unlock(&private_display->lock); @@ -535,29 +469,28 @@ tdm_hwc_window_video_get_property(tdm_hwc_window *hwc_window, } EXTERN tdm_error -tdm_hwc_window_video_set_property(tdm_hwc_window *hwc_window, - unsigned int id, tdm_value value) +tdm_hwc_window_set_name(tdm_hwc_window *hwc_window, const char *name) { + tdm_private_module *private_module; 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; + private_module = private_output->private_module; + func_hwc_window = &private_module->func_hwc_window; - if (!func_hwc_window->hwc_window_video_set_property) { - /* LCOV_EXCL_START */ + if (!func_hwc_window->hwc_window_get_constraints) { _pthread_mutex_unlock(&private_display->lock); - TDM_ERR("not implemented!!"); + TDM_WRN("not implemented!!"); return TDM_ERROR_NOT_IMPLEMENTED; - /* LCOV_EXCL_STOP */ } - ret = func_hwc_window->hwc_window_video_set_property(private_hwc_window->hwc_window_backend, - id, value); + ret = func_hwc_window->hwc_window_set_name(private_hwc_window->hwc_window_backend, name); _pthread_mutex_unlock(&private_display->lock); return ret; } +/* LCOV_EXCL_STOP */ \ No newline at end of file