add tdm_layer_is_usable function
authorBoram Park <boram1288.park@samsung.com>
Tue, 1 Dec 2015 09:21:57 +0000 (18:21 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 1 Dec 2015 09:21:57 +0000 (18:21 +0900)
Change-Id: I09037789022a08b2c7e3223e15f0c0856db5a695

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

index 2b627f8..d5540e8 100644 (file)
@@ -109,6 +109,7 @@ tdm_error   tdm_layer_set_info(tdm_layer *layer, tdm_info_layer *info);
 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_capture *tdm_layer_create_capture(tdm_layer *layer, tdm_error *error);
 
index dbf21c6..578e295 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -334,6 +334,8 @@ _tdm_display_update_layer(tdm_private_display *private_display,
         private_layer->layer = layer;
 
         LIST_INITHEAD(&private_layer->capture_list);
+
+        private_layer->usable = 1;
     }
     else
         _tdm_display_destroy_caps_layer(&private_layer->caps);
index f7288dc..64cff8b 100644 (file)
@@ -950,6 +950,8 @@ tdm_layer_set_info(tdm_layer *layer, tdm_info_layer *info)
 
     func_display = &private_display->func_display;
 
+    private_layer->usable = 0;
+
     if (!func_display->layer_set_info)
     {
         pthread_mutex_unlock(&private_display->lock);
@@ -1000,6 +1002,8 @@ tdm_layer_set_buffer(tdm_layer *layer, tdm_buffer *buffer)
 
     func_display = &private_display->func_display;
 
+    private_layer->usable = 0;
+
     if (!func_display->layer_set_buffer)
     {
         pthread_mutex_unlock(&private_display->lock);
@@ -1027,6 +1031,8 @@ tdm_layer_unset_buffer(tdm_layer *layer)
 
     func_display = &private_display->func_display;
 
+    private_layer->usable = 1;
+
     if (!func_display->layer_unset_buffer)
     {
         pthread_mutex_unlock(&private_display->lock);
@@ -1040,6 +1046,23 @@ tdm_layer_unset_buffer(tdm_layer *layer)
     return ret;
 }
 
+EXTERN tdm_error
+tdm_layer_is_usable(tdm_layer *layer, unsigned int *usable)
+{
+    LAYER_FUNC_ENTRY();
+
+    TDM_RETURN_VAL_IF_FAIL(usable != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+    pthread_mutex_lock(&private_display->lock);
+
+    *usable = private_layer->usable;
+
+    pthread_mutex_unlock(&private_display->lock);
+
+    return ret;
+}
+
+
 EXTERN tdm_capture*
 tdm_layer_create_capture(tdm_layer *layer, tdm_error *error)
 {
index 4b66770..051e292 100644 (file)
@@ -206,6 +206,8 @@ struct _tdm_private_layer
     tdm_layer *layer;
 
     struct list_head capture_list;
+
+    unsigned int usable;
 };
 
 struct _tdm_private_pp