From a66d8eaf16d282cbbd8a6e9ec49b865ada127708 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 26 Nov 2010 18:43:36 +0100 Subject: [PATCH] GESCustomTimelineSource: add private structure --- docs/libs/ges-sections.txt | 1 + ges/ges-custom-timeline-source.c | 20 +++++++++++++++----- ges/ges-custom-timeline-source.h | 5 +++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index f1ac9b7..4ba2eea 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -380,6 +380,7 @@ FillTrackObjectUserFunc ges_custom_timeline_source_new ges_cust_timeline_src_get_type +GESCustomTimelineSourcePrivate GES_CUSTOM_TIMELINE_SOURCE GES_CUSTOM_TIMELINE_SOURCE_CLASS GES_CUSTOM_TIMELINE_SOURCE_GET_CLASS diff --git a/ges/ges-custom-timeline-source.c b/ges/ges-custom-timeline-source.c index e83c3c5..4c65d97 100644 --- a/ges/ges-custom-timeline-source.c +++ b/ges/ges-custom-timeline-source.c @@ -32,6 +32,12 @@ #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; } diff --git a/ges/ges-custom-timeline-source.h b/ges/ges-custom-timeline-source.h index 738e57a..fff1c1b 100644 --- a/ges/ges-custom-timeline-source.h +++ b/ges/ges-custom-timeline-source.h @@ -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]; -- 2.7.4