From b4bf2e2628819c2e0c1e621defefb4d4de8d7c75 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Sun, 24 Feb 2019 14:41:20 +0900 Subject: [PATCH] hwc: add tdm_hwc_get_property The user can get the property on the hwc object. Change-Id: I7ac159c31ddb7532f5e76308969f7e0dc8ae5620 --- include/tdm.h | 10 ++++++++++ include/tdm_backend.h | 9 +++++++++ src/tdm_hwc.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/include/tdm.h b/include/tdm.h index 53aa771..71f7a1c 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -1040,6 +1040,16 @@ tdm_error tdm_hwc_set_property(tdm_hwc *hwc, uint32_t id, tdm_value value); /** + * @brief Get the property which has a given id on the hwc object. + * @param[in] hwc A hwc object + * @param[in] id The property id + * @param[in] value The value of the propery id + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + */ +tdm_error +tdm_hwc_get_property(tdm_hwc *hwc, uint32_t id, tdm_value *value); + +/** * @brief Destroys the given window. * @param[in] window the pointer of the window to destroy * @since 2.0.0 diff --git a/include/tdm_backend.h b/include/tdm_backend.h index e89cd91..c5db80a 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -937,6 +937,15 @@ typedef struct _tdm_func_hwc { * @return #TDM_ERROR_NONE if success. Otherwise, error value. */ tdm_error (*hwc_set_property)(tdm_hwc *hwc, uint32_t id, tdm_value value); + + /** + * @brief Get the property which has a given id on the hwc object. + * @param[in] hwc A hwc object + * @param[in] id The property id + * @param[in] value The value of the propery id + * @return #TDM_ERROR_NONE if success. Otherwise, error value. + */ + tdm_error (*hwc_get_property)(tdm_hwc *hwc, uint32_t id, tdm_value *value); } tdm_func_hwc; /** diff --git a/src/tdm_hwc.c b/src/tdm_hwc.c index b9029be..0589bc1 100644 --- a/src/tdm_hwc.c +++ b/src/tdm_hwc.c @@ -634,3 +634,31 @@ tdm_hwc_set_property(tdm_hwc *hwc, uint32_t id, tdm_value value) return ret; } + +tdm_error +tdm_hwc_get_property(tdm_hwc *hwc, uint32_t id, tdm_value *value) +{ + tdm_private_module *private_module; + tdm_func_hwc *func_hwc = NULL; + + HWC_FUNC_ENTRY(); + + _pthread_mutex_lock(&private_display->lock); + + private_module = private_hwc->private_module; + func_hwc = &private_module->func_hwc; + + if (!func_hwc->hwc_get_property) { + /* LCOV_EXCL_START */ + _pthread_mutex_unlock(&private_display->lock); + TDM_WRN("not implemented!!"); + return TDM_ERROR_NOT_IMPLEMENTED; + /* LCOV_EXCL_STOP */ + } + + ret = func_hwc->hwc_get_property(private_hwc->hwc_backend, id, value); + + _pthread_mutex_unlock(&private_display->lock); + + return ret; +} -- 2.7.4