From 8d15025aaec82ab8e2f8c1172ecd0e3a1c7a228e Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Tue, 7 Jun 2011 12:54:06 -0400 Subject: [PATCH] ges: Add a ges_timeline_append_layer convenience method API: ges_timeline_append_layer --- docs/libs/ges-sections.txt | 1 + ges/ges-timeline.c | 25 +++++++++++++++++++++++++ ges/ges-timeline.h | 1 + 3 files changed, 27 insertions(+) diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 8269560421..3b11320f92 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -236,6 +236,7 @@ ges_timeline_new ges_timeline_new_audio_video ges_timeline_new_from_uri ges_timeline_add_layer +ges_timeline_append_layer ges_timeline_remove_layer ges_timeline_add_track ges_timeline_remove_track diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index eb8c9f7c48..d8821087db 100644 --- a/ges/ges-timeline.c +++ b/ges/ges-timeline.c @@ -696,6 +696,31 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object, GST_DEBUG ("Done"); } +/** + * ges_timeline_append_layer: + * @timeline: a #GESTimeline + * @layer: the #GESTimelineLayer to add + * + * Convenience method to append @layer to @timeline which means that the + * priority of @layer is changed to correspond to the last layer of @timeline. + * The reference to the @layer will be stolen by @timeline. + * + * Returns: TRUE if the layer was properly added, else FALSE. + */ +gboolean +ges_timeline_append_layer (GESTimeline * timeline, GESTimelineLayer * layer) +{ + guint32 priority; + GESTimelinePrivate *priv = timeline->priv; + + GST_DEBUG ("Appending layer to layer:%p, timeline:%p", timeline, layer); + priority = g_list_length (priv->layers); + + ges_timeline_layer_set_priority (layer, priority); + + return ges_timeline_add_layer (timeline, layer); +} + /** * ges_timeline_add_layer: * @timeline: a #GESTimeline diff --git a/ges/ges-timeline.h b/ges/ges-timeline.h index 376a4a0ac5..101addd5d7 100644 --- a/ges/ges-timeline.h +++ b/ges/ges-timeline.h @@ -89,6 +89,7 @@ gboolean ges_timeline_load_from_uri (GESTimeline *timeline, const gchar *uri); gboolean ges_timeline_save_to_uri (GESTimeline *timeline, const gchar *uri); gboolean ges_timeline_add_layer (GESTimeline *timeline, GESTimelineLayer *layer); +gboolean ges_timeline_append_layer (GESTimeline * timeline, GESTimelineLayer * layer); gboolean ges_timeline_remove_layer (GESTimeline *timeline, GESTimelineLayer *layer); GList* ges_timeline_get_layers (GESTimeline *timeline);