ges: Add padding to all public structures
authorEdward Hervey <edward.hervey@collabora.co.uk>
Mon, 29 Nov 2010 12:24:13 +0000 (13:24 +0100)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Mon, 29 Nov 2010 12:24:13 +0000 (13:24 +0100)
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).

29 files changed:
ges/ges-custom-timeline-source.h
ges/ges-formatter.h
ges/ges-keyfile-formatter.h
ges/ges-simple-timeline-layer.h
ges/ges-timeline-file-source.h
ges/ges-timeline-layer.h
ges/ges-timeline-object.h
ges/ges-timeline-overlay.h
ges/ges-timeline-pipeline.h
ges/ges-timeline-source.h
ges/ges-timeline-test-source.h
ges/ges-timeline-text-overlay.h
ges/ges-timeline-title-source.h
ges/ges-timeline-transition.h
ges/ges-timeline.h
ges/ges-track-audio-test-source.h
ges/ges-track-audio-transition.h
ges/ges-track-filesource.h
ges/ges-track-image-source.h
ges/ges-track-object.h
ges/ges-track-operation.h
ges/ges-track-source.h
ges/ges-track-text-overlay.h
ges/ges-track-title-source.h
ges/ges-track-transition.h
ges/ges-track-video-test-source.h
ges/ges-track-video-transition.h
ges/ges-track.h
ges/ges-types.h

index 40ec1f0..738e57a 100644 (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);
index 3575fa7..4a8fe64 100644 (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);
index c1c0a45..96d4d98 100644 (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);
index d8271f1..3c620ef 100644 (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);
index 281d35d..a5afd18 100644 (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);
index 61961d8..6983ca4 100644 (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);
index 0f27a9d..e12ae75 100644 (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);
index d988a64..ae9c3b7 100644 (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);
index 3872d47..31e3304 100644 (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);
index c0e186d..5510d19 100644 (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);
index 6e26ebe..fc87d53 100644 (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);
index 1616b80..f74cb81 100644 (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);
index 6a6e95c..86f1b13 100644 (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);
index 8027674..1073ab9 100644 (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);
index 9cf6b28..c833701 100644 (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);
index c70cc2f..8b6525a 100644 (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);
index 7468d62..1faac92 100644 (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);
index 0bdd0e3..b859258 100644 (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);
index 1a29dd1..b7a9fee 100644 (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);
index d2a1338..572401e 100644 (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);
index ba3a02a..0212c32 100644 (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);
index cd172a4..15a4a2a 100644 (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);
index 0870dc5..7e5a7ef 100644 (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);
index 49fbd01..fd12752 100644 (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);
index c6173cd..58b5503 100644 (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);
index b1f5950..331a6c1 100644 (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);
index cbadb20..dea060d 100644 (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);
index 7ad1e38..4bd3687 100644 (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);
index 003eba8..3873270 100644 (file)
 #ifndef __GES_TYPES_H__
 #define __GES_TYPES_H__
 
+/* Padding */
+#define GES_PADDING            4
+
+/* Type definitions */
+
 typedef struct _GESCustomTimelineSource GESCustomTimelineSource;
 typedef struct _GESCustomTimelineSourceClass GESCustomTimelineSourceClass;