From 6f7e4d98706710265287efb05f23fe58a0686470 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Tue, 15 Dec 2015 19:01:11 +0900 Subject: [PATCH] add layer_set_video_pos to backend interface Change-Id: I80d1d31ab78f68f8859ce70b67d2e56a431e18b5 --- include/tdm.h | 1 + include/tdm_backend.h | 1 + src/tdm_display.c | 29 +++++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/include/tdm.h b/include/tdm.h index 23bcde8..da6a006 100644 --- a/include/tdm.h +++ b/include/tdm.h @@ -115,6 +115,7 @@ tdm_error tdm_layer_get_info(tdm_layer *layer, tdm_info_layer *info); tdm_error tdm_layer_set_buffer(tdm_layer *layer, tdm_buffer *buffer); // layer has only one buffer tdm_error tdm_layer_unset_buffer(tdm_layer *layer); tdm_error tdm_layer_is_usable(tdm_layer *layer, unsigned int *usable); +tdm_error tdm_layer_set_video_pos(tdm_layer *layer, int zpos); tdm_capture *tdm_layer_create_capture(tdm_layer *layer, tdm_error *error); diff --git a/include/tdm_backend.h b/include/tdm_backend.h index 81eb89c..c649d73 100644 --- a/include/tdm_backend.h +++ b/include/tdm_backend.h @@ -149,6 +149,7 @@ typedef struct _tdm_func_display tdm_error (*layer_get_info)(tdm_layer *layer, tdm_info_layer *info); tdm_error (*layer_set_buffer)(tdm_layer *layer, tdm_buffer *buffer); tdm_error (*layer_unset_buffer)(tdm_layer *layer); + tdm_error (*layer_set_video_pos)(tdm_layer *layer, int zpos); tdm_capture *(*layer_create_capture)(tdm_layer *layer, tdm_error *error); } tdm_func_display; diff --git a/src/tdm_display.c b/src/tdm_display.c index 0ae9bb5..109c808 100644 --- a/src/tdm_display.c +++ b/src/tdm_display.c @@ -1104,6 +1104,35 @@ tdm_layer_is_usable(tdm_layer *layer, unsigned int *usable) return ret; } +EXTERN tdm_error +tdm_layer_set_video_pos(tdm_layer *layer, int zpos) +{ + tdm_func_display *func_display; + LAYER_FUNC_ENTRY(); + + pthread_mutex_lock(&private_display->lock); + + func_display = &private_display->func_display; + + if (!(private_layer->caps.capabilities & TDM_LAYER_CAPABILITY_VIDEO)) + { + TDM_ERR("layer is not video layer"); + pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_INVALID_PARAMETER; + } + + if (!func_display->layer_set_video_pos) + { + pthread_mutex_unlock(&private_display->lock); + return TDM_ERROR_NONE; + } + + ret = func_display->layer_set_video_pos(private_layer->layer_backend, zpos); + + pthread_mutex_unlock(&private_display->lock); + + return ret; +} EXTERN tdm_capture* tdm_layer_create_capture(tdm_layer *layer, tdm_error *error) -- 2.7.4