mixer: Add ::get_mixer_type() vfunc and deprecate interface struct value
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Feb 2012 09:19:13 +0000 (10:19 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Feb 2012 09:23:26 +0000 (10:23 +0100)
gst-libs/gst/interfaces/mixer.c
gst-libs/gst/interfaces/mixer.h

index 0c6abf0..5b8aeed 100644 (file)
@@ -134,7 +134,9 @@ gst_mixer_class_init (GstMixerClass * klass)
   }
 #endif
 
+#ifndef GST_REMOVE_DEPRECATED
   klass->mixer_type = GST_MIXER_SOFTWARE;
+#endif
 
   /* default virtual functions */
   klass->list_tracks = NULL;
@@ -355,7 +357,14 @@ gst_mixer_get_mixer_type (GstMixer * mixer)
 {
   GstMixerClass *klass = GST_MIXER_GET_CLASS (mixer);
 
+  if (klass->get_mixer_type)
+    return klass->get_mixer_type (mixer);
+
+#ifndef GST_REMOVE_DEPRECATED
   return klass->mixer_type;
+#else
+  g_return_if_reached (GST_MIXER_TYPE_SOFTWARE);
+#endif
 }
 
 /**
index 71c8f75..b2a199c 100644 (file)
@@ -117,7 +117,10 @@ typedef enum
 struct _GstMixerClass {
   GTypeInterface klass;
 
+/* FIXME 0.11: Remove this */
+#ifndef GST_REMOVE_DEPRECATED
   GstMixerType mixer_type;
+#endif
 
   /* virtual functions */
   const GList *  (* list_tracks)   (GstMixer      *mixer);
@@ -166,8 +169,10 @@ struct _GstMixerClass {
 
   GstMixerFlags (* get_mixer_flags) (GstMixer *mixer);
 
+  GstMixerType  (* get_mixer_type)  (GstMixer *mixer);
+
   /*< private >*/
-  gpointer _gst_reserved[GST_PADDING-1];
+  gpointer _gst_reserved[GST_PADDING];
 };
 
 GType           gst_mixer_get_type      (void);