correct email address
[platform/core/uifw/libtdm.git] / src / tdm_hwc_window.c
index 08fc80c..c3619ed 100644 (file)
@@ -9,7 +9,7 @@
  *          Taeheon Kim <th908.kim@samsung.com>,
  *          YoungJun Cho <yj44.cho@samsung.com>,
  *          SooChan Lim <sc1.lim@samsung.com>,
- *          Boram Park <sc1.lim@samsung.com>
+ *          Boram Park <boram1288.park@samsung.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the
@@ -74,6 +74,7 @@
 tbm_surface_queue_h
 tdm_hwc_window_get_tbm_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;
 
@@ -81,12 +82,13 @@ 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) {
                /* 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;
@@ -104,6 +106,7 @@ 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();
@@ -112,12 +115,13 @@ tdm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
 
        _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 */
        }
@@ -132,6 +136,7 @@ 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_private_module *private_module;
        tdm_func_hwc_window *func_hwc_window = NULL;
 
        HWC_WINDOW_FUNC_ENTRY();
@@ -140,12 +145,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 */
        }
@@ -161,6 +167,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];
 
@@ -170,12 +177,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 */
        }
@@ -204,6 +212,7 @@ tdm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info)
 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();
@@ -219,12 +228,13 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer)
                /* 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 */
        }
@@ -239,13 +249,15 @@ tdm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h buffer)
 EXTERN tdm_error
 tdm_hwc_window_unset_buffer(tdm_hwc_window *hwc_window)
 {
+       tdm_private_module *private_module;
        tdm_func_hwc_window *func_hwc_window;
 
        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_unset_buffer) {
                /* LCOV_EXCL_START */
@@ -267,7 +279,8 @@ 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_module *private_module = private_output->private_module;
+       tdm_func_output *func_output = &private_module->func_output;
        tdm_private_hwc_window *private_hwc_window = NULL;
        tdm_hwc_window *hwc_window_backend = NULL;
        tdm_error ret = TDM_ERROR_NONE;
@@ -336,8 +349,8 @@ tdm_hwc_window_create_internal(tdm_private_output *private_output, int is_video,
 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_private_module *private_module;
        tdm_func_output *func_output;
 
        TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED);
@@ -345,12 +358,12 @@ tdm_hwc_window_destroy_internal(tdm_private_hwc_window * private_hwc_window)
        if (!private_hwc_window)
                return TDM_ERROR_OPERATION_FAILED;
 
-       private_display = private_hwc_window->private_display;
        private_output = private_hwc_window->private_output;
+       private_module = private_output->private_module;
 
        LIST_DEL(&private_hwc_window->link);
 
-       func_output = &private_display->func_output;
+       func_output = &private_module->func_output;
        func_output->output_hwc_destroy_window(private_output->output_backend, private_hwc_window->hwc_window_backend);
 
        free(private_hwc_window);
@@ -360,18 +373,20 @@ tdm_hwc_window_destroy_internal(tdm_private_hwc_window * private_hwc_window)
 EXTERN tdm_error
 tdm_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags)
 {
+       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_set_flags) {
                /* 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 */
        }
@@ -386,18 +401,20 @@ tdm_hwc_window_set_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags)
 EXTERN tdm_error
 tdm_hwc_window_unset_flags(tdm_hwc_window *hwc_window, tdm_hwc_window_flag flags)
 {
+       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_unset_flags) {
                /* 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 */
        }
@@ -427,6 +444,7 @@ _tdm_hwc_window_layer_commit_handler(tdm_layer *layer, unsigned int sequence,
 tdm_error
 tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler func, void *user_data)
 {
+       tdm_private_module *private_module;
        tdm_func_hwc_window *func_hwc_window = NULL;
        tdm_private_hwc_window_commit_handler *hwc_window_commit_handler;
        tdm_layer *layer = NULL;
@@ -439,7 +457,8 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
 
        _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_layer) {
                /* LCOV_EXCL_START */
@@ -463,14 +482,6 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
 
        buffer = func_hwc_window->hwc_window_get_buffer(private_hwc_window->hwc_window_backend,
                                                                                                                   &ret);
-       if (!buffer) {
-               /* LCOV_EXCL_START */
-               _pthread_mutex_unlock(&private_display->lock);
-               TDM_ERR("no assigned buffer!!");
-               return TDM_ERROR_INVALID_PARAMETER;
-               /* LCOV_EXCL_STOP */
-       }
-
        if (buffer)
                ret = tdm_layer_set_buffer_internal(private_layer, buffer);
        else
@@ -512,7 +523,7 @@ tdm_hwc_window_commit(tdm_hwc_window *hwc_window, tdm_hwc_window_commit_handler
        hwc_window_commit_handler->func = func;
        hwc_window_commit_handler->user_data = user_data;
 
-       ret = tdm_layer_commit_internal(private_layer, _tdm_hwc_window_layer_commit_handler, user_data);
+       ret = tdm_layer_commit_internal(private_layer, _tdm_hwc_window_layer_commit_handler, hwc_window_commit_handler);
        if (ret != TDM_ERROR_NONE) {
                /* LCOV_EXCL_START */
                TDM_ERR("failed: commit layer(window)");
@@ -530,6 +541,7 @@ EXTERN tdm_error
 tdm_hwc_window_video_get_capability(tdm_hwc_window *hwc_window,
                                                                        tdm_hwc_window_video_capability *video_capability)
 {
+       tdm_private_module *private_module;
        tdm_func_hwc_window *func_hwc_window = NULL;
 
        HWC_WINDOW_FUNC_ENTRY();
@@ -538,12 +550,13 @@ tdm_hwc_window_video_get_capability(tdm_hwc_window *hwc_window,
 
        _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) {
                /* 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 */
        }
@@ -560,6 +573,7 @@ EXTERN tdm_error
 tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window,
                                                                                          const tdm_prop **props, int *count)
 {
+       tdm_private_module *private_module;
        tdm_func_hwc_window *func_hwc_window = NULL;
 
        HWC_WINDOW_FUNC_ENTRY();
@@ -569,12 +583,13 @@ tdm_hwc_window_video_get_available_properties(tdm_hwc_window *hwc_window,
 
        _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) {
                /* 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 */
        }
@@ -591,6 +606,7 @@ EXTERN tdm_error
 tdm_hwc_window_video_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();
@@ -599,12 +615,13 @@ tdm_hwc_window_video_get_property(tdm_hwc_window *hwc_window,
 
        _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 */
                _pthread_mutex_unlock(&private_display->lock);
-               TDM_ERR("not implemented!!");
+               TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
                /* LCOV_EXCL_STOP */
        }
@@ -621,18 +638,20 @@ EXTERN tdm_error
 tdm_hwc_window_video_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();
 
        _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 */
                _pthread_mutex_unlock(&private_display->lock);
-               TDM_ERR("not implemented!!");
+               TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
                /* LCOV_EXCL_STOP */
        }