From 19e5fc54b7ba6652129218c179e5075a1d3f7c09 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Mon, 11 Jun 2012 10:59:49 +0200 Subject: [PATCH] childproxy: use GstChildProxy instead of GObject on the public api Fix usage and also cleanup gst_object api use on gobjects. --- gst/gstbin.c | 5 ++- gst/gstchildproxy.c | 68 +++++++++++++++++---------------- gst/gstchildproxy.h | 16 ++++---- tests/check/gst/gstchildproxy.c | 4 +- 4 files changed, 48 insertions(+), 45 deletions(-) diff --git a/gst/gstbin.c b/gst/gstbin.c index 2903c9f882..5a0aeabbc8 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -1162,7 +1162,8 @@ no_state_recalc: elem_name); g_signal_emit (bin, gst_bin_signals[ELEMENT_ADDED], 0, element); - gst_child_proxy_child_added ((GObject *) bin, (GObject *) element, elem_name); + gst_child_proxy_child_added ((GstChildProxy *) bin, (GObject *) element, + elem_name); g_free (elem_name); @@ -1488,7 +1489,7 @@ no_state_recalc: elem_name); g_signal_emit (bin, gst_bin_signals[ELEMENT_REMOVED], 0, element); - gst_child_proxy_child_removed ((GObject *) bin, (GObject *) element, + gst_child_proxy_child_removed ((GstChildProxy *) bin, (GObject *) element, elem_name); g_free (elem_name); diff --git a/gst/gstchildproxy.c b/gst/gstchildproxy.c index 3e153f38bb..328f746e13 100644 --- a/gst/gstchildproxy.c +++ b/gst/gstchildproxy.c @@ -188,7 +188,7 @@ gst_child_proxy_lookup (GObject * object, const gchar * name, g_return_val_if_fail (G_IS_OBJECT (object), FALSE); g_return_val_if_fail (name != NULL, FALSE); - gst_object_ref (object); + g_object_ref (object); current = names = g_strsplit (name, "::", -1); while (current[1]) { @@ -206,7 +206,7 @@ gst_child_proxy_lookup (GObject * object, const gchar * name, GST_INFO ("no such object %s", current[0]); break; } - gst_object_unref (object); + g_object_unref (object); object = next; current++; } @@ -219,13 +219,13 @@ gst_child_proxy_lookup (GObject * object, const gchar * name, if (pspec) *pspec = spec; if (target) { - gst_object_ref (object); + g_object_ref (object); *target = object; } res = TRUE; } } - gst_object_unref (object); + g_object_unref (object); g_strfreev (names); return res; } @@ -240,21 +240,21 @@ gst_child_proxy_lookup (GObject * object, const gchar * name, * You are responsible for freeing it by calling g_value_unset() */ void -gst_child_proxy_get_property (GObject * object, const gchar * name, +gst_child_proxy_get_property (GstChildProxy * object, const gchar * name, GValue * value) { GParamSpec *pspec; GObject *target; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); g_return_if_fail (name != NULL); g_return_if_fail (G_IS_VALUE (value)); - if (!gst_child_proxy_lookup (object, name, &target, &pspec)) + if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec)) goto not_found; - g_object_get_property (G_OBJECT (target), pspec->name, value); - gst_object_unref (target); + g_object_get_property (target, pspec->name, value); + g_object_unref (target); return; @@ -275,7 +275,7 @@ not_found: * Gets properties of the parent object and its children. */ void -gst_child_proxy_get_valist (GObject * object, +gst_child_proxy_get_valist (GstChildProxy * object, const gchar * first_property_name, va_list var_args) { const gchar *name; @@ -284,18 +284,18 @@ gst_child_proxy_get_valist (GObject * object, GParamSpec *pspec; GObject *target; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); name = first_property_name; /* iterate over pairs */ while (name) { - if (!gst_child_proxy_lookup (object, name, &target, &pspec)) + if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec)) goto not_found; g_value_init (&value, pspec->value_type); - g_object_get_property (G_OBJECT (target), pspec->name, &value); - gst_object_unref (target); + g_object_get_property (target, pspec->name, &value); + g_object_unref (target); G_VALUE_LCOPY (&value, var_args, 0, &error); if (error) @@ -329,11 +329,12 @@ cant_copy: * Gets properties of the parent object and its children. */ void -gst_child_proxy_get (GObject * object, const gchar * first_property_name, ...) +gst_child_proxy_get (GstChildProxy * object, const gchar * first_property_name, + ...) { va_list var_args; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); va_start (var_args, first_property_name); gst_child_proxy_get_valist (object, first_property_name, var_args); @@ -349,21 +350,21 @@ gst_child_proxy_get (GObject * object, const gchar * first_property_name, ...) * Sets a single property using the GstChildProxy mechanism. */ void -gst_child_proxy_set_property (GObject * object, const gchar * name, +gst_child_proxy_set_property (GstChildProxy * object, const gchar * name, const GValue * value) { GParamSpec *pspec; GObject *target; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); g_return_if_fail (name != NULL); g_return_if_fail (G_IS_VALUE (value)); - if (!gst_child_proxy_lookup (object, name, &target, &pspec)) + if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec)) goto not_found; - g_object_set_property (G_OBJECT (target), pspec->name, value); - gst_object_unref (target); + g_object_set_property (target, pspec->name, value); + g_object_unref (target); return; not_found: @@ -383,7 +384,7 @@ not_found: * Sets properties of the parent object and its children. */ void -gst_child_proxy_set_valist (GObject * object, +gst_child_proxy_set_valist (GstChildProxy * object, const gchar * first_property_name, va_list var_args) { const gchar *name; @@ -392,13 +393,13 @@ gst_child_proxy_set_valist (GObject * object, GParamSpec *pspec; GObject *target; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); name = first_property_name; /* iterate over pairs */ while (name) { - if (!gst_child_proxy_lookup (object, name, &target, &pspec)) + if (!gst_child_proxy_lookup ((GObject *) object, name, &target, &pspec)) goto not_found; G_VALUE_COLLECT_INIT (&value, pspec->value_type, var_args, @@ -407,8 +408,8 @@ gst_child_proxy_set_valist (GObject * object, if (error) goto cant_copy; - g_object_set_property (G_OBJECT (target), pspec->name, &value); - gst_object_unref (target); + g_object_set_property (target, pspec->name, &value); + g_object_unref (target); g_value_unset (&value); name = va_arg (var_args, gchar *); @@ -426,7 +427,7 @@ cant_copy: g_warning ("error copying value %s in object %s: %s", pspec->name, (GST_IS_OBJECT (object) ? GST_OBJECT_NAME (object) : ""), error); g_value_unset (&value); - gst_object_unref (target); + g_object_unref (target); return; } } @@ -440,11 +441,12 @@ cant_copy: * Sets properties of the parent object and its children. */ void -gst_child_proxy_set (GObject * object, const gchar * first_property_name, ...) +gst_child_proxy_set (GstChildProxy * object, const gchar * first_property_name, + ...) { va_list var_args; - g_return_if_fail (G_IS_OBJECT (object)); + g_return_if_fail (GST_IS_CHILD_PROXY (object)); va_start (var_args, first_property_name); gst_child_proxy_set_valist (object, first_property_name, var_args); @@ -460,10 +462,10 @@ gst_child_proxy_set (GObject * object, const gchar * first_property_name, ...) * Emits the "child-added" signal. */ void -gst_child_proxy_child_added (GObject * object, GObject * child, +gst_child_proxy_child_added (GstChildProxy * object, GObject * child, const gchar * name) { - g_signal_emit (G_OBJECT (object), signals[CHILD_ADDED], 0, child, name); + g_signal_emit (object, signals[CHILD_ADDED], 0, child, name); } /** @@ -475,10 +477,10 @@ gst_child_proxy_child_added (GObject * object, GObject * child, * Emits the "child-removed" signal. */ void -gst_child_proxy_child_removed (GObject * object, GObject * child, +gst_child_proxy_child_removed (GstChildProxy * object, GObject * child, const gchar * name) { - g_signal_emit (G_OBJECT (object), signals[CHILD_REMOVED], 0, child, name); + g_signal_emit (object, signals[CHILD_REMOVED], 0, child, name); } /* gobject methods */ diff --git a/gst/gstchildproxy.h b/gst/gstchildproxy.h index 94e2011b14..0abce64af5 100644 --- a/gst/gstchildproxy.h +++ b/gst/gstchildproxy.h @@ -77,27 +77,27 @@ GObject * gst_child_proxy_get_child_by_index (GstChildProxy * parent, guint inde gboolean gst_child_proxy_lookup (GObject *object, const gchar *name, GObject **target, GParamSpec **pspec); -void gst_child_proxy_get_property (GObject * object, const gchar *name, +void gst_child_proxy_get_property (GstChildProxy * object, const gchar *name, GValue *value); -void gst_child_proxy_get_valist (GObject * object, +void gst_child_proxy_get_valist (GstChildProxy * object, const gchar * first_property_name, va_list var_args); -void gst_child_proxy_get (GObject * object, +void gst_child_proxy_get (GstChildProxy * object, const gchar * first_property_name, ...) G_GNUC_NULL_TERMINATED; -void gst_child_proxy_set_property (GObject * object, const gchar *name, +void gst_child_proxy_set_property (GstChildProxy * object, const gchar *name, const GValue *value); -void gst_child_proxy_set_valist (GObject* object, +void gst_child_proxy_set_valist (GstChildProxy* object, const gchar * first_property_name, va_list var_args); -void gst_child_proxy_set (GObject * object, +void gst_child_proxy_set (GstChildProxy * object, const gchar * first_property_name, ...) G_GNUC_NULL_TERMINATED; -void gst_child_proxy_child_added (GObject * object, GObject * child, +void gst_child_proxy_child_added (GstChildProxy * object, GObject * child, const gchar *name); -void gst_child_proxy_child_removed (GObject * object, GObject * child, +void gst_child_proxy_child_removed (GstChildProxy * object, GObject * child, const gchar *name); G_END_DECLS diff --git a/tests/check/gst/gstchildproxy.c b/tests/check/gst/gstchildproxy.c index 68b357df6b..b9bb6659db 100644 --- a/tests/check/gst/gstchildproxy.c +++ b/tests/check/gst/gstchildproxy.c @@ -29,7 +29,7 @@ GST_START_TEST (test_get) pipeline = gst_pipeline_new ("foo"); fail_unless (pipeline != NULL, "Could not create pipeline"); - gst_child_proxy_get (G_OBJECT (pipeline), "name", &name, NULL); + gst_child_proxy_get (GST_CHILD_PROXY (pipeline), "name", &name, NULL); fail_if (g_strcmp0 ("foo", name)); g_free (name); @@ -51,7 +51,7 @@ GST_START_TEST (test_child_get) gst_bin_add (GST_BIN (pipeline), elem); - gst_child_proxy_get (G_OBJECT (pipeline), "src::name", &name, NULL); + gst_child_proxy_get (GST_CHILD_PROXY (pipeline), "src::name", &name, NULL); fail_if (g_strcmp0 ("src", name)); g_free (name);