1 /* GStreamer Editing Services
2 * Copyright (C) 2009 Edward Hervey <bilboed@bilboed.com>
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
14 * You should have received a copy of the GNU Library General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
20 #include "ges-timeline.h"
25 * Top-level container for pipelines
27 * Contains a list of TimelineLayer which users should use to arrange the
28 * various timeline objects.
32 G_DEFINE_TYPE (GESTimeline, ges_timeline, GST_TYPE_BIN)
33 #define GET_PRIVATE(o) \
34 (G_TYPE_INSTANCE_GET_PRIVATE ((o), GES_TYPE_TIMELINE, GESTimelinePrivate))
35 typedef struct _GESTimelinePrivate GESTimelinePrivate;
37 struct _GESTimelinePrivate
39 GList *tracks; /* TimelineTracks */
43 ges_timeline_get_property (GObject * object, guint property_id,
44 GValue * value, GParamSpec * pspec)
46 switch (property_id) {
48 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
53 ges_timeline_set_property (GObject * object, guint property_id,
54 const GValue * value, GParamSpec * pspec)
56 switch (property_id) {
58 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
63 ges_timeline_dispose (GObject * object)
65 G_OBJECT_CLASS (ges_timeline_parent_class)->dispose (object);
69 ges_timeline_finalize (GObject * object)
71 G_OBJECT_CLASS (ges_timeline_parent_class)->finalize (object);
75 ges_timeline_class_init (GESTimelineClass * klass)
77 GObjectClass *object_class = G_OBJECT_CLASS (klass);
79 g_type_class_add_private (klass, sizeof (GESTimelinePrivate));
81 object_class->get_property = ges_timeline_get_property;
82 object_class->set_property = ges_timeline_set_property;
83 object_class->dispose = ges_timeline_dispose;
84 object_class->finalize = ges_timeline_finalize;
88 ges_timeline_init (GESTimeline * self)
95 ges_timeline_new (void)
97 return g_object_new (GES_TYPE_TIMELINE, NULL);
101 ges_timeline_load_from_uri (gchar * uri)
103 /* FIXME : IMPLEMENT */
108 ges_timeline_save (GESTimeline * timeline, gchar * uri)
110 /* FIXME : IMPLEMENT */
115 ges_timeline_add_layer (GESTimeline * timeline, GESTimelineLayer * layer)
117 /* FIXME : IMPLEMENT */
119 /* Add to the list of layers, make sure we don't already control it */
121 /* Assign Tracks to it */
127 ges_timeline_remove_layer (GESTimeline * timeline, GESTimelineLayer * layer)
129 /* FIXME : IMPLEMENT */
131 /* Unassign tracks from the given layer */
136 ges_timeline_add_track (GESTimeline * timeline, GESTrack * track)
138 /* FIXME : IMPLEMENT */
140 /* Add to the list of tracks, make sure we don't already control it */
147 ges_timeline_remove_track (GESTimeline * timeline, GESTrack * track)
149 /* FIXME : IMPLEMENT */
151 /* Signal track removal to all layers/objects */