ges: Add padding to all public structures

This will give us margin for API expansion without breaking ABI.

The ABI restriction will only come in place once we do the first
official release (i.e. 0.x.0).
This commit is contained in:
Edward Hervey 2010-11-29 13:24:13 +01:00
parent 284b956654
commit 849d6ab872
29 changed files with 210 additions and 37 deletions

View file

@ -75,6 +75,9 @@ struct _GESCustomTimelineSource {
/*< private >*/
FillTrackObjectUserFunc filltrackobjectfunc;
gpointer user_data;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -85,6 +88,10 @@ struct _GESCustomTimelineSource {
struct _GESCustomTimelineSourceClass {
GESTimelineSourceClass parent_class;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_cust_timeline_src_get_type (void);

View file

@ -54,7 +54,8 @@ struct _GESFormatter {
gchar *data;
gsize length;
gpointer _ges_reserved[GST_PADDING];
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
typedef gboolean (*GESFormatterCanLoadURIMethod) (gchar * uri);
@ -125,7 +126,9 @@ struct _GESFormatterClass {
GESFormatterSaveMethod save;
GESFormatterLoadMethod load;
gpointer _ges_reserved[GST_PADDING];
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_formatter_get_type (void);

View file

@ -50,7 +50,9 @@
struct _GESKeyfileFormatter {
GESFormatter parent;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -61,7 +63,9 @@ struct _GESKeyfileFormatter {
struct _GESKeyfileFormatterClass {
GESFormatterClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_keyfile_formatter_get_type (void);

View file

@ -58,6 +58,9 @@ struct _GESSimpleTimelineLayer {
gboolean adding_object;
gboolean valid;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -73,6 +76,9 @@ struct _GESSimpleTimelineLayerClass {
void (*object_moved) (GESTimelineLayer * layer, GESTimelineObject * object,
gint old_position, gint new_position);
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_simple_timeline_layer_get_type (void);

View file

@ -64,6 +64,9 @@ struct _GESTimelineFileSource {
/* The formats supported by this filesource
* TODO : Could maybe be moved to a parent class */
GESTrackType supportedformats;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -74,7 +77,10 @@ struct _GESTimelineFileSource {
struct _GESTimelineFileSourceClass {
GESTimelineSourceClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_filesource_get_type (void);

View file

@ -52,8 +52,7 @@ struct _GESTimelineLayer {
/*< public >*/
GESTimeline *timeline; /* The timeline where this layer is being used
*/
GESTimeline *timeline;
/*< private >*/
GSList * objects_start; /* The TimelineObjects sorted by start and
@ -63,21 +62,33 @@ struct _GESTimelineLayer {
* containing timeline */
guint32 min_gnl_priority, max_gnl_priority;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
* GESTimelineLayerClass:
* @parent_class: parent class
* @parent_class: layer parent class
* @get_objects: method to get the objects contained in the layer
*
* Subclasses can override the @get_objects if they can provide a more
* efficient way of providing the list of contained #GESTimelineObject(s).
*/
struct _GESTimelineLayerClass {
GObjectClass parent_class;
/*< public >*/
/* virtual methods for subclasses */
GList *(*get_objects) (GESTimelineLayer * layer);
/*< signals >*/
/*< private >*/
/* Signals */
void (*object_added) (GESTimelineLayer * layer, GESTimelineObject * object);
void (*object_removed) (GESTimelineLayer * layer, GESTimelineObject * object);
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_layer_get_type (void);

View file

@ -158,6 +158,9 @@ struct _GESTimelineObject {
guint32 height; /* the span of priorities this object needs */
guint64 fullduration; /* Full usable duration of the object (-1: no duration) */
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -174,12 +177,17 @@ struct _GESTimelineObject {
struct _GESTimelineObjectClass {
GObjectClass parent_class;
/*< public >*/
CreateTrackObjectFunc create_track_object;
CreateTrackObjectsFunc create_track_objects;
/* FIXME : might need a release_track_object */
FillTrackObjectFunc fill_track_object;
gboolean need_fill_track;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_object_get_type (void);

View file

@ -50,7 +50,10 @@ G_BEGIN_DECLS
struct _GESTimelineOverlay {
GESTimelineObject parent;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -60,7 +63,10 @@ struct _GESTimelineOverlay {
struct _GESTimelineOverlayClass {
GESTimelineObjectClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_overlay_get_type (void);

View file

@ -70,7 +70,7 @@ typedef enum {
struct _GESTimelinePipeline {
GstPipeline parent;
/* <private> */
/*< private >*/
GESTimeline * timeline;
GstElement * playsink;
GstElement * encodebin;
@ -82,6 +82,9 @@ struct _GESTimelinePipeline {
GList *chains;
GstEncodingProfile *profile;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -92,7 +95,10 @@ struct _GESTimelinePipeline {
struct _GESTimelinePipelineClass {
GstPipelineClass parent_class;
/* <public> */
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_pipeline_get_type (void);

View file

@ -53,12 +53,14 @@ G_BEGIN_DECLS
struct _GESTimelineSource {
GESTimelineObject parent;
/*< private *>*/
/*< private >*/
gchar *text;
gchar *font_desc;
GESTextHAlign halign;
GESTextVAlign valign;
/*< public >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -68,7 +70,10 @@ struct _GESTimelineSource {
struct _GESTimelineSourceClass {
GESTimelineObjectClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_source_get_type (void);

View file

@ -59,6 +59,9 @@ struct _GESTimelineTestSource {
GESVideoTestPattern vpattern;
gdouble freq;
gdouble volume;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -69,7 +72,9 @@ struct _GESTimelineTestSource {
struct _GESTimelineTestSourceClass {
GESTimelineSourceClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_test_source_get_type (void);

View file

@ -59,6 +59,9 @@ struct _GESTimelineTextOverlay {
gchar *font_desc;
GESTextHAlign halign;
GESTextVAlign valign;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -70,6 +73,9 @@ struct _GESTimelineTextOverlayClass {
GESTimelineOverlayClass parent_class;
/*< public >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_text_overlay_get_type (void);

View file

@ -59,6 +59,9 @@ struct _GESTimelineTitleSource {
gchar *font_desc;
GESTextVAlign halign;
GESTextHAlign valign;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -69,7 +72,9 @@ struct _GESTimelineTitleSource {
struct _GESTimelineTitleSourceClass {
GESTimelineSourceClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_tl_title_src_get_type (void);

View file

@ -51,8 +51,13 @@ G_BEGIN_DECLS
*/
struct _GESTimelineTransition {
GESTimelineObject parent;
/*< public >*/
GESVideoTransitionType vtype;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -63,7 +68,10 @@ struct _GESTimelineTransition {
struct _GESTimelineTransitionClass {
GESTimelineObjectClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_transition_get_type (void);

View file

@ -62,6 +62,9 @@ struct _GESTimeline {
GList *pendingobjects;
/* Whether we are changing state asynchronously or not */
gboolean async_pending;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -78,6 +81,9 @@ struct _GESTimelineClass {
void (*track_removed) (GESTimeline *timeline, GESTrack * track);
void (*layer_added) (GESTimeline *timeline, GESTimelineLayer *layer);
void (*layer_removed) (GESTimeline *timeline, GESTimelineLayer *layer);
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_timeline_get_type (void);

View file

@ -55,6 +55,9 @@ struct _GESTrackAudioTestSource {
/*< private >*/
gdouble freq;
gdouble volume;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -66,7 +69,9 @@ struct _GESTrackAudioTestSource {
struct _GESTrackAudioTestSourceClass {
GESTrackSourceClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_audio_test_source_get_type (void);

View file

@ -61,7 +61,8 @@ struct _GESTrackAudioTransition {
GstController *b_controller;
GstInterpolationControlSource *b_control_source;
/*< public >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -73,7 +74,9 @@ struct _GESTrackAudioTransition {
struct _GESTrackAudioTransitionClass {
GESTrackTransitionClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_audio_transition_get_type (void);

View file

@ -53,6 +53,10 @@ struct _GESTrackFileSource {
/*< public >*/
gchar *uri;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -63,7 +67,9 @@ struct _GESTrackFileSource {
struct _GESTrackFileSourceClass {
GESTrackSourceClass parent_class;
/* <public> */
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_filesource_get_type (void);

View file

@ -53,6 +53,9 @@ struct _GESTrackImageSource {
/*< public >*/
gchar *uri;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -64,6 +67,9 @@ struct _GESTrackImageSourceClass {
GESTrackSourceClass parent_class;
/* <public> */
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_image_source_get_type (void);

View file

@ -132,6 +132,9 @@ struct _GESTrackObject {
GstElement *gnlobject;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -150,10 +153,6 @@ struct _GESTrackObject {
struct _GESTrackObjectClass {
GObjectClass parent_class;
/*< private >*/
/* signals */
void (*changed) (GESTrackObject * object);
/*< public >*/
/* virtual methods for subclasses */
gboolean (*create_gnl_object) (GESTrackObject * object);
@ -163,6 +162,13 @@ struct _GESTrackObjectClass {
void (*gnl_priority_changed) (GESTrackObject *object, guint priority);
void (*duration_changed) (GESTrackObject *object, guint64 duration);
void (*active_changed) (GESTrackObject *object, gboolean active);
/*< private >*/
/* signals */
void (*changed) (GESTrackObject * object);
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_object_get_type (void);

View file

@ -54,10 +54,13 @@ G_BEGIN_DECLS
*/
struct _GESTrackOperation {
/*< public >*/
GESTrackObject parent;
/*< private >*/
GstElement *element;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -69,7 +72,12 @@ struct _GESTrackOperation {
struct _GESTrackOperationClass {
GESTrackObjectClass parent_class;
GstElement *(*create_element) (GESTrackOperation *);
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_operation_get_type (void);

View file

@ -54,10 +54,13 @@ G_BEGIN_DECLS
*/
struct _GESTrackSource {
/*< public >*/
GESTrackObject parent;
/*< private >*/
GstElement *element;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -70,7 +73,12 @@ struct _GESTrackSource {
struct _GESTrackSourceClass {
GESTrackObjectClass parent_class;
GstElement *(*create_element) (GESTrackSource *);
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_source_get_type (void);

View file

@ -58,6 +58,9 @@ struct _GESTrackTextOverlay {
GESTextHAlign halign;
GESTextVAlign valign;
GstElement *text_el;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -69,6 +72,9 @@ struct _GESTrackTextOverlayClass {
GESTrackOperationClass parent_class;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_text_overlay_get_type (void);

View file

@ -58,6 +58,9 @@ struct _GESTrackTitleSource {
GESTextVAlign valign;
GstElement *text_el;
GstElement *background_el;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -69,6 +72,9 @@ struct _GESTrackTitleSourceClass {
GESTrackSourceClass parent_class;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_title_src_get_type (void);

View file

@ -62,7 +62,9 @@ struct _GESTrackTransition
{
GESTrackObject parent;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -71,10 +73,14 @@ struct _GESTrackTransition
*/
struct _GESTrackTransitionClass {
GESTrackObjectClass parent_class;
GESTrackObjectClass parent_class;
/*< public >*/
GstElement* (*create_element) (GESTrackTransition *self);
/* <public> */
GstElement* (*create_element) (GESTrackTransition *self);
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_transition_get_type (void);

View file

@ -53,6 +53,9 @@ struct _GESTrackVideoTestSource {
/*< private >*/
GESVideoTestPattern pattern;
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -63,7 +66,9 @@ struct _GESTrackVideoTestSource {
struct _GESTrackVideoTestSourceClass {
GESTrackSourceClass parent_class;
/* <public> */
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_video_test_source_get_type (void);

View file

@ -69,7 +69,8 @@ struct _GESTrackVideoTransition {
gdouble start_value;
gdouble end_value;
/*< public >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -81,7 +82,9 @@ struct _GESTrackVideoTransition {
struct _GESTrackVideoTransitionClass {
GESTrackTransitionClass parent_class;
/*< public >*/
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_video_transition_get_type (void);

View file

@ -54,7 +54,8 @@ G_BEGIN_DECLS
struct _GESTrack {
GstBin parent;
/*< public >*/ /* READ-ONLY */
/*< public >*/
/* READ-ONLY */
GESTrackType type;
/*< private >*/
@ -65,6 +66,9 @@ struct _GESTrack {
GstElement * composition; /* The composition associated with this track */
GstPad * srcpad; /* The source GhostPad */
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
/**
@ -74,6 +78,10 @@ struct _GESTrack {
struct _GESTrackClass {
GstBinClass parent_class;
/*< private >*/
/* Padding for API extension */
gpointer _ges_reserved[GES_PADDING];
};
GType ges_track_get_type (void);

View file

@ -21,6 +21,11 @@
#ifndef __GES_TYPES_H__
#define __GES_TYPES_H__
/* Padding */
#define GES_PADDING 4
/* Type definitions */
typedef struct _GESCustomTimelineSource GESCustomTimelineSource;
typedef struct _GESCustomTimelineSourceClass GESCustomTimelineSourceClass;