GESTimelineObject/TrackObject: Don't break ABI for the Class

New addition go at the end, and the _reserved pointer gets reduced
accordingly
This commit is contained in:
Edward Hervey 2011-05-20 16:03:30 +02:00
parent 3bc2d8854c
commit 7cbb93e487
2 changed files with 19 additions and 16 deletions

View file

@ -196,18 +196,18 @@ struct _GESTimelineObjectClass {
GESCreateTrackObjectFunc create_track_object; GESCreateTrackObjectFunc create_track_object;
GESCreateTrackObjectsFunc create_track_objects; GESCreateTrackObjectsFunc create_track_objects;
/* FIXME : might need a release_track_object */
GESFillTrackObjectFunc fill_track_object;
gboolean need_fill_track;
void (*track_object_added) (GESTimelineObject *object, void (*track_object_added) (GESTimelineObject *object,
GESTrackObject *tck_object); GESTrackObject *tck_object);
void (*track_object_released) (GESTimelineObject *object, void (*track_object_released) (GESTimelineObject *object,
GESTrackObject *tck_object); GESTrackObject *tck_object);
/* FIXME : might need a release_track_object */
GESFillTrackObjectFunc fill_track_object;
gboolean need_fill_track;
/*< private >*/ /*< private >*/
/* Padding for API extension */ /* Padding for API extension */
gpointer _ges_reserved[GES_PADDING]; gpointer _ges_reserved[GES_PADDING - 2];
}; };
GType ges_timeline_object_get_type (void); GType ges_timeline_object_get_type (void);

View file

@ -97,19 +97,19 @@ struct _GESTrackObject {
* GESTrackObjectClass: * GESTrackObjectClass:
* @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use. * @gnlobject_factorytype: name of the GNonLin GStElementFactory type to use.
* @create_gnl_object: method to create the GNonLin container object. * @create_gnl_object: method to create the GNonLin container object.
* @get_props_hastable: method to list children properties that user could like
* to configure.
* @list_children_properties: method to get children properties that user could
* like to configure.
* The default implementation will create an object
* of type @gnlobject_factorytype and call
* @create_element.
* @create_element: method to return the GstElement to put in the gnlobject. * @create_element: method to return the GstElement to put in the gnlobject.
* @start_changed: start property of gnlobject has changed * @start_changed: start property of gnlobject has changed
* @media_start_changed: media-start property of gnlobject has changed * @media_start_changed: media-start property of gnlobject has changed
* @duration_changed: duration property glnobject has changed * @duration_changed: duration property glnobject has changed
* @gnl_priority_changed: duration property glnobject has changed * @gnl_priority_changed: duration property glnobject has changed
* @active_changed: active property of gnlobject has changed * @active_changed: active property of gnlobject has changed
* @get_props_hastable: method to list children properties that user could like
* to configure. Since: 0.10.2
* @list_children_properties: method to get children properties that user could
* like to configure.
* The default implementation will create an object
* of type @gnlobject_factorytype and call
* @create_element. Since: 0.10.2
* *
* Subclasses can override the @create_gnl_object method to override what type * Subclasses can override the @create_gnl_object method to override what type
* of GNonLin object will be created. * of GNonLin object will be created.
@ -123,9 +123,6 @@ struct _GESTrackObjectClass {
const gchar *gnlobject_factorytype; const gchar *gnlobject_factorytype;
GstElement* (*create_gnl_object) (GESTrackObject * object); GstElement* (*create_gnl_object) (GESTrackObject * object);
GstElement* (*create_element) (GESTrackObject * object); GstElement* (*create_element) (GESTrackObject * object);
GHashTable* (*get_props_hastable) (GESTrackObject * object);
GParamSpec** (*list_children_properties) (GESTrackObject * object,
guint *n_properties);
void (*start_changed) (GESTrackObject *object, guint64 start); void (*start_changed) (GESTrackObject *object, guint64 start);
void (*media_start_changed) (GESTrackObject *object, guint64 media_start); void (*media_start_changed) (GESTrackObject *object, guint64 media_start);
@ -137,8 +134,14 @@ struct _GESTrackObjectClass {
/* signals (currently unused) */ /* signals (currently unused) */
void (*changed) (GESTrackObject * object); void (*changed) (GESTrackObject * object);
/*< public >*/
/* virtual methods for subclasses */
GHashTable* (*get_props_hastable) (GESTrackObject * object);
GParamSpec** (*list_children_properties) (GESTrackObject * object,
guint *n_properties);
/*< private >*/
/* Padding for API extension */ /* Padding for API extension */
gpointer _ges_reserved[GES_PADDING]; gpointer _ges_reserved[GES_PADDING - 2];
}; };
GType ges_track_object_get_type (void); GType ges_track_object_get_type (void);