gst-editing-services: ges: Add a ges_timeline_append_layer convenience method

Thibault Saunier tsaunier at kemper.freedesktop.org
Wed Jan 11 07:04:29 PST 2012


Module: gst-editing-services
Branch: master
Commit: 8d15025aaec82ab8e2f8c1172ecd0e3a1c7a228e
URL:    http://cgit.freedesktop.org/gstreamer/gst-editing-services/commit/?id=8d15025aaec82ab8e2f8c1172ecd0e3a1c7a228e

Author: Thibault Saunier <thibault.saunier at collabora.com>
Date:   Tue Jun  7 12:54:06 2011 -0400

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(+), 0 deletions(-)

diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt
index 8269560..3b11320 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 eb8c9f7..d882108 100644
--- a/ges/ges-timeline.c
+++ b/ges/ges-timeline.c
@@ -697,6 +697,31 @@ layer_object_removed_cb (GESTimelineLayer * layer, GESTimelineObject * object,
 }
 
 /**
+ * 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
  * @layer: the #GESTimelineLayer to add
diff --git a/ges/ges-timeline.h b/ges/ges-timeline.h
index 376a4a0..101addd 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);
 



More information about the gstreamer-commits mailing list