*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef __GST_CONTROL_BINDING_H__
#include <glib-object.h>
-#include <gst/gstcontrolsource.h>
-
G_BEGIN_DECLS
#define GST_TYPE_CONTROL_BINDING \
typedef struct _GstControlBinding GstControlBinding;
typedef struct _GstControlBindingClass GstControlBindingClass;
+typedef struct _GstControlBindingPrivate GstControlBindingPrivate;
-/**
- * GstControlBindingConvert:
- * @binding: the #GstControlBinding instance
- * @src_value: the value returned by the cotnrol source
- * @dest_value: the target GValue
- *
- * Function to map a control-value to the target GValue.
- */
+#include <gst/gstcontrolsource.h>
+
+/* FIXME(2.0): remove, this is unused */
typedef void (* GstControlBindingConvert) (GstControlBinding *binding, gdouble src_value, GValue *dest_value);
/**
*/
struct _GstControlBinding {
GstObject parent;
-
+
/*< public >*/
gchar *name;
GParamSpec *pspec;
/*< private >*/
+#ifndef GST_DISABLE_DEPRECATED
GstObject *object; /* GstObject owning the property
* (== parent when bound) */
+#else
+ gpointer __object;
+#endif
gboolean disabled;
- gpointer _gst_reserved[GST_PADDING];
+ union {
+ struct {
+ GstControlBindingPrivate *priv;
+ } abi;
+ gpointer _gst_reserved[GST_PADDING];
+ } ABI;
};
/**
* GstControlBindingClass:
* @parent_class: Parent class
+ * @sync_values: implementation for updating the target values
+ * @get_value: implementation to fetch a single control-value
+ * @get_value_array: implementation to fetch a series of control-values
+ * @get_g_value_array: implementation to fetch a series of control-values
+ * as g_values
*
* The class structure of #GstControlBinding.
*/
{
GstObjectClass parent_class;
- /* virtual methods */
+ /*< public >*/
gboolean (* sync_values) (GstControlBinding *binding, GstObject *object, GstClockTime timestamp, GstClockTime last_sync);
GValue * (* get_value) (GstControlBinding *binding, GstClockTime timestamp);
gboolean (* get_value_array) (GstControlBinding *binding, GstClockTime timestamp,GstClockTime interval, guint n_values, gpointer values);
#define GST_CONTROL_BINDING_PSPEC(cb) (((GstControlBinding *) cb)->pspec)
-GType gst_control_binding_get_type (void);
+GST_API
+GType gst_control_binding_get_type (void);
/* Functions */
+GST_API
gboolean gst_control_binding_sync_values (GstControlBinding * binding, GstObject *object,
GstClockTime timestamp, GstClockTime last_sync);
+GST_API
GValue * gst_control_binding_get_value (GstControlBinding *binding,
GstClockTime timestamp);
+GST_API
gboolean gst_control_binding_get_value_array (GstControlBinding *binding, GstClockTime timestamp,
GstClockTime interval, guint n_values, gpointer values);
+GST_API
gboolean gst_control_binding_get_g_value_array (GstControlBinding *binding, GstClockTime timestamp,
GstClockTime interval, guint n_values, GValue *values);
-
+GST_API
void gst_control_binding_set_disabled (GstControlBinding * binding, gboolean disabled);
+
+GST_API
gboolean gst_control_binding_is_disabled (GstControlBinding * binding);
+
+#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstControlBinding, gst_object_unref)
+#endif
+
G_END_DECLS
#endif /* __GST_CONTROL_BINDING_H__ */