add layer_set_video_pos to backend interface 61/54461/1 accepted/tizen/mobile/20151215.124858 accepted/tizen/tv/20151215.125330 accepted/tizen/wearable/20151215.125639 submit/tizen/20151215.103554
authorBoram Park <boram1288.park@samsung.com>
Tue, 15 Dec 2015 10:01:11 +0000 (19:01 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 15 Dec 2015 10:19:47 +0000 (19:19 +0900)
Change-Id: I80d1d31ab78f68f8859ce70b67d2e56a431e18b5

include/tdm.h
include/tdm_backend.h
src/tdm_display.c

index 23bcde8..da6a006 100644 (file)
@@ -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);
 
index 81eb89c..c649d73 100644 (file)
@@ -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;
 
index 0ae9bb5..109c808 100644 (file)
@@ -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)