set index to output, layer objects 86/80986/1
authorBoram Park <boram1288.park@samsung.com>
Wed, 20 Jul 2016 04:38:57 +0000 (13:38 +0900)
committerBoram Park <boram1288.park@samsung.com>
Thu, 21 Jul 2016 07:55:15 +0000 (16:55 +0900)
Change-Id: Ic430c677b0749d4cfca762f285d0e9401cf69a90

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

index 5597bca..d73e816 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -376,7 +376,7 @@ _tdm_display_update_caps_output(tdm_private_display *private_display, int pipe,
 static tdm_error
 _tdm_display_update_layer(tdm_private_display *private_display,
                                                  tdm_private_output *private_output,
-                                                 tdm_layer *layer_backend)
+                                                 tdm_layer *layer_backend, int index)
 {
        tdm_private_layer *private_layer;
        tdm_error ret;
@@ -387,6 +387,7 @@ _tdm_display_update_layer(tdm_private_display *private_display,
                TDM_RETURN_VAL_IF_FAIL(private_layer != NULL, TDM_ERROR_OUT_OF_MEMORY);
 
                LIST_ADDTAIL(&private_layer->link, &private_output->layer_list);
+               private_layer->index = index;
                private_layer->private_display = private_display;
                private_layer->private_output = private_output;
                private_layer->layer_backend = layer_backend;
@@ -433,6 +434,7 @@ tdm_display_update_output(tdm_private_display *private_display,
                private_output->current_dpms_value = TDM_OUTPUT_DPMS_OFF;
                private_output->output_backend = output_backend;
                private_output->pipe = pipe;
+               private_output->index = pipe;
 
                LIST_INITHEAD(&private_output->layer_list);
                LIST_INITHEAD(&private_output->capture_list);
@@ -461,7 +463,7 @@ tdm_display_update_output(tdm_private_display *private_display,
                goto failed_update;
 
        for (i = 0; i < layer_count; i++) {
-               ret = _tdm_display_update_layer(private_display, private_output, layers[i]);
+               ret = _tdm_display_update_layer(private_display, private_output, layers[i], i);
                if (ret != TDM_ERROR_NONE)
                        goto failed_update;
        }
index 8dcf66f..f1bbca5 100644 (file)
@@ -275,7 +275,6 @@ EXTERN tdm_output *
 tdm_display_get_output(tdm_display *dpy, int index, tdm_error *error)
 {
        tdm_private_output *private_output = NULL;
-       int i = 0;
 
        DISPLAY_FUNC_ENTRY_ERROR();
 
@@ -284,13 +283,11 @@ tdm_display_get_output(tdm_display *dpy, int index, tdm_error *error)
        if (error)
                *error = TDM_ERROR_NONE;
 
-       i = 0;
        LIST_FOR_EACH_ENTRY(private_output, &private_display->output_list, link) {
-               if (i == index) {
+               if (private_output->index == index) {
                        _pthread_mutex_unlock(&private_display->lock);
                        return private_output;
                }
-               i++;
        }
 
        _pthread_mutex_unlock(&private_display->lock);
@@ -618,7 +615,6 @@ EXTERN tdm_layer *
 tdm_output_get_layer(tdm_output *output, int index, tdm_error *error)
 {
        tdm_private_layer *private_layer = NULL;
-       int i = 0;
 
        OUTPUT_FUNC_ENTRY_ERROR();
 
@@ -628,11 +624,10 @@ tdm_output_get_layer(tdm_output *output, int index, tdm_error *error)
                *error = TDM_ERROR_NONE;
 
        LIST_FOR_EACH_ENTRY(private_layer, &private_output->layer_list, link) {
-               if (i == index) {
+               if (private_layer->index == index) {
                        _pthread_mutex_unlock(&private_display->lock);
                        return private_layer;
                }
-               i++;
        }
 
        _pthread_mutex_unlock(&private_display->lock);
index 5b3a68d..a2740a0 100644 (file)
@@ -160,6 +160,7 @@ struct _tdm_private_display {
 struct _tdm_private_output {
        struct list_head link;
 
+       int index;
        unsigned long stamp;
 
        tdm_private_display *private_display;
@@ -192,6 +193,8 @@ struct _tdm_private_output {
 struct _tdm_private_layer {
        struct list_head link;
 
+       int index;
+
        tdm_private_display *private_display;
        tdm_private_output *private_output;