GESCustomTimelineSource: add private structure

This commit is contained in:
Thibault Saunier 2010-11-26 18:43:36 +01:00 committed by Edward Hervey
parent 2b63a52a6a
commit a66d8eaf16
3 changed files with 19 additions and 7 deletions

View 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

View file

@ -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;
}

View 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];