colorbalance: Add ::get_balance_type() vfunc and deprecated value inside the interfac...
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Feb 2012 09:15:15 +0000 (10:15 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 22 Feb 2012 09:23:26 +0000 (10:23 +0100)
Values in class/interface structs are not supported by most bindings.

gst-libs/gst/interfaces/colorbalance.c
gst-libs/gst/interfaces/colorbalance.h

index 0bf52a9..464d737 100644 (file)
@@ -102,13 +102,15 @@ gst_color_balance_class_init (GstColorBalanceClass * klass)
 
     initialized = TRUE;
   }
-
+#ifndef GST_REMOVE_DEPRECATED
   klass->balance_type = GST_COLOR_BALANCE_SOFTWARE;
+#endif
 
   /* default virtual functions */
   klass->list_channels = NULL;
   klass->set_value = NULL;
   klass->get_value = NULL;
+  klass->get_balance_type = NULL;
 }
 
 /**
@@ -212,7 +214,14 @@ gst_color_balance_get_balance_type (GstColorBalance * balance)
 
   klass = GST_COLOR_BALANCE_GET_CLASS (balance);
 
+  if (klass->get_balance_type)
+    return klass->get_balance_type (balance);
+
+#ifndef GST_REMOVE_DEPRECATED
   return klass->balance_type;
+#else
+  g_return_val_if_reached (GST_COLOR_BALANCE_SOFTWARE);
+#endif
 }
 
 /**
index 62771b5..fd8ceaa 100644 (file)
@@ -80,7 +80,10 @@ typedef enum
 struct _GstColorBalanceClass {
   GTypeInterface klass;
 
+/* FIXME 0.11: Remove this */
+#ifndef GST_REMOVE_DEPRECATED
   GstColorBalanceType balance_type;
+#endif
 
   /* virtual functions */
   const GList * (* list_channels) (GstColorBalance        *balance);
@@ -96,6 +99,8 @@ struct _GstColorBalanceClass {
                           GstColorBalanceChannel *channel,
                           gint                    value);
 
+  GstColorBalanceType (*get_balance_type)  (GstColorBalance *balance);
+
   /*< private >*/
   gpointer _gst_reserved[GST_PADDING];
 };