timeline: Rework the append_layer method
authorThibault Saunier <thibault.saunier@collabora.com>
Mon, 23 Jan 2012 02:03:22 +0000 (23:03 -0300)
committerThibault Saunier <thibault.saunier@collabora.com>
Sun, 8 Apr 2012 02:24:55 +0000 (22:24 -0400)
ges_timeline_append_layer now creates a new layer, adds it to the timeline
and returns it

This code has not been released yet so we can break this API.

ges/ges-timeline.c
ges/ges-timeline.h

index fb16b9dc307d45725bba860f9a44413fa8424b45..6a32a13fcabf5bdf0a320308de2f212e5faa1962 100644 (file)
@@ -770,26 +770,27 @@ 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.
+ * Append a newly creater #GESTimelineLayer to @timeline
+ * Note that you do not own any reference to the returned layer.
  *
- * Returns: TRUE if the layer was properly added, else FALSE.
+ * Returns: (transfer none): The newly created #GESTimelineLayer, or the last (empty)
+ * #GESTimelineLayer of @timeline.
  */
-gboolean
-ges_timeline_append_layer (GESTimeline * timeline, GESTimelineLayer * layer)
+GESTimelineLayer *
+ges_timeline_append_layer (GESTimeline * timeline)
 {
   guint32 priority;
   GESTimelinePrivate *priv = timeline->priv;
+  GESTimelineLayer *layer;
 
-  GST_DEBUG ("Appending layer to layer:%p, timeline:%p", timeline, layer);
+  layer = ges_timeline_layer_new ();
   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, layer);
+
+  return layer;
 }
 
 /**
index 1c170b9cf2c2902444f9984764cb7b874710d28c..de51bcb1d0bceaca42f3c013c0a45e70d1645806 100644 (file)
@@ -89,7 +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);
+GESTimelineLayer * ges_timeline_append_layer (GESTimeline * timeline);
 gboolean ges_timeline_remove_layer (GESTimeline *timeline, GESTimelineLayer *layer);
 GList* ges_timeline_get_layers (GESTimeline *timeline);