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