GESCustomTimelineSource: add private structure
authorThibault Saunier <thibault.saunier@collabora.co.uk>
Fri, 26 Nov 2010 17:43:36 +0000 (18:43 +0100)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Wed, 8 Dec 2010 11:53:59 +0000 (12:53 +0100)
docs/libs/ges-sections.txt
ges/ges-custom-timeline-source.c
ges/ges-custom-timeline-source.h

index f1ac9b7..4ba2eea 100644 (file)
@@ -380,6 +380,7 @@ FillTrackObjectUserFunc
 ges_custom_timeline_source_new
 <SUBSECTION Standard>
 ges_cust_timeline_src_get_type
+GESCustomTimelineSourcePrivate
 GES_CUSTOM_TIMELINE_SOURCE
 GES_CUSTOM_TIMELINE_SOURCE_CLASS
 GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS
index e83c3c5..4c65d97 100644 (file)
 #include "ges-custom-timeline-source.h"
 #include "ges-timeline-source.h"
 
+struct _GESCustomTimelineSourcePrivate
+{
+  FillTrackObjectUserFunc filltrackobjectfunc;
+  gpointer user_data;
+};
+
 G_DEFINE_TYPE (GESCustomTimelineSource, ges_cust_timeline_src,
     GES_TYPE_TIMELINE_SOURCE);
 
@@ -77,6 +83,8 @@ ges_cust_timeline_src_class_init (GESCustomTimelineSourceClass * klass)
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GESTimelineObjectClass *tlobj_class = GES_TIMELINE_OBJECT_CLASS (klass);
 
+  g_type_class_add_private (klass, sizeof (GESCustomTimelineSourcePrivate));
+
   object_class->get_property = ges_cust_timeline_src_get_property;
   object_class->set_property = ges_cust_timeline_src_set_property;
   object_class->dispose = ges_cust_timeline_src_dispose;
@@ -88,6 +96,8 @@ ges_cust_timeline_src_class_init (GESCustomTimelineSourceClass * klass)
 static void
 ges_cust_timeline_src_init (GESCustomTimelineSource * self)
 {
+  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
+      GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourcePrivate);
 }
 
 static gboolean
@@ -95,13 +105,13 @@ ges_cust_timeline_src_fill_track_object (GESTimelineObject * object,
     GESTrackObject * trobject, GstElement * gnlobj)
 {
   gboolean res;
+  GESCustomTimelineSourcePrivate *priv;
 
   GST_DEBUG ("Calling callback (timelineobj:%p, trackobj:%p, gnlobj:%p)",
       object, trobject, gnlobj);
 
-  res =
-      GES_CUSTOM_TIMELINE_SOURCE (object)->filltrackobjectfunc (object,
-      trobject, gnlobj, GES_CUSTOM_TIMELINE_SOURCE (object)->user_data);
+  priv = GES_CUSTOM_TIMELINE_SOURCE (object)->priv;
+  res = priv->filltrackobjectfunc (object, trobject, gnlobj, priv->user_data);
 
   GST_DEBUG ("Returning res:%d", res);
 
@@ -124,8 +134,8 @@ ges_custom_timeline_source_new (FillTrackObjectUserFunc func,
   GESCustomTimelineSource *src;
 
   src = g_object_new (GES_TYPE_CUSTOM_TIMELINE_SOURCE, NULL);
-  src->filltrackobjectfunc = func;
-  src->user_data = user_data;
+  src->priv->filltrackobjectfunc = func;
+  src->priv->user_data = user_data;
 
   return src;
 }
index 738e57a..fff1c1b 100644 (file)
@@ -44,6 +44,8 @@ G_BEGIN_DECLS
 #define GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS(obj) \
   (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_CUSTOM_TIMELINE_SOURCE, GESCustomTimelineSourceClass))
 
+typedef struct _GESCustomTimelineSourcePrivate   GESCustomTimelineSourcePrivate;
+
 /**
  * FillTrackObjectUserFunc:
  * @object: the #GESTimelineObject controlling the track object
@@ -73,8 +75,7 @@ struct _GESCustomTimelineSource {
   GESTimelineSource parent;
 
   /*< private >*/
-  FillTrackObjectUserFunc filltrackobjectfunc;
-  gpointer user_data;
+  GESCustomTimelineSourcePrivate *priv;
 
   /* Padding for API extension */
   gpointer _ges_reserved[GES_PADDING];