From 3e49850e6d53b8fb0c3f23d2ab181d1161fa41fa Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 20 Feb 2015 12:24:49 +0100 Subject: [PATCH] timeline: Add API to find a layer with a specific priority in a timeline Summary: API: * ges_timeline_get_layer Test Plan: Nan Reviewers: mathieu.duponchelle --- docs/libs/ges-sections.txt | 1 + ges/ges-timeline.c | 31 +++++++++++++++++++++++++++++++ ges/ges-timeline.h | 1 + 3 files changed, 33 insertions(+) diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 570caba1..1d467dc 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -366,6 +366,7 @@ ges_timeline_enable_update ges_timeline_is_updating ges_timeline_get_tracks +ges_timeline_get_layer ges_timeline_get_layers ges_timeline_get_track_for_pad ges_timeline_get_pad_for_track diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index b753f9e..5b67253 100644 --- a/ges/ges-timeline.c +++ b/ges/ges-timeline.c @@ -3214,3 +3214,34 @@ ges_timeline_is_empty (GESTimeline * timeline) return TRUE; } + +/** + * ges_timeline_get_layer: + * @timeline: The #GESTimeline to retrive a layer from + * @priority: The priority of the layer to find + * + * Retrieve the layer with @priority as a priority + * + * Returns: A #GESLayer or %NULL if no layer with @priority was found + * + * Since 1.6 + */ +GESLayer * +ges_timeline_get_layer (GESTimeline * timeline, guint priority) +{ + GList *tmp; + GESLayer *layer = NULL; + + for (tmp = timeline->layers; tmp; tmp = tmp->next) { + GESLayer *tmp_layer = GES_LAYER (tmp->data); + guint tmp_priority; + + g_object_get (tmp_layer, "priority", &tmp_priority, NULL); + if (tmp_priority == priority) { + layer = gst_object_ref (tmp_layer); + break; + } + } + + return layer; +} diff --git a/ges/ges-timeline.h b/ges/ges-timeline.h index bbcc83a..fd5e6ec 100644 --- a/ges/ges-timeline.h +++ b/ges/ges-timeline.h @@ -109,6 +109,7 @@ gboolean ges_timeline_add_layer (GESTimeline *timeline, GESLayer *layer); GESLayer * ges_timeline_append_layer (GESTimeline * timeline); gboolean ges_timeline_remove_layer (GESTimeline *timeline, GESLayer *layer); GList* ges_timeline_get_layers (GESTimeline *timeline); +GESLayer* ges_timeline_get_layer (GESTimeline *timeline, guint priority); gboolean ges_timeline_add_track (GESTimeline *timeline, GESTrack *track); gboolean ges_timeline_remove_track (GESTimeline *timeline, GESTrack *track); -- 2.7.4