From 4158f4dc3be8e245cbc06dba8e0c879b2580c983 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 20 Jun 2001 23:43:00 +0000 Subject: [PATCH] Added some signal shims. Original commit message from CVS: Added some signal shims. Fixed the queue state_change stuff. --- gst/gobject2gtk.h | 9 +++++++++ gst/gstqueue.c | 12 +++++------- plugins/elements/gstqueue.c | 12 +++++------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gst/gobject2gtk.h b/gst/gobject2gtk.h index 2fe4cf9a23..912f0cc088 100644 --- a/gst/gobject2gtk.h +++ b/gst/gobject2gtk.h @@ -13,6 +13,7 @@ #define G_TYPE_CHECK_CLASS_TYPE GTK_CHECK_CLASS_TYPE #define G_TYPE_FROM_CLASS(klass) (((GtkObjectClass *)(klass))->type) #define G_OBJECT_GET_CLASS(object) (GTK_OBJECT(object)->klass) +#define G_OBJECT_TYPE GTK_OBJECT_TYPE #define G_OBJECT_CLASS_TYPE(gclass) (gclass->type) // types @@ -156,6 +157,14 @@ gtk_signal_connect((GtkObject *)object,name,func,func_data) g_signal_emit_by_name(object,name,data,self) \ gtk_signal_emit_by_name ((GtkObject *)object,name,data,self) +#define \ +g_signal_handler_has_pending(object,name,data,may_block) \ +gtk_signal_handler_pending ((GtkObject *)object,name,may_block) + +#define g_signal_lookup gtk_signal_lookup +#define g_signal_handler_block gtk_signal_handler_block +#define g_signal_handler_unblock gtk_signal_handler_unblock + diff --git a/gst/gstqueue.c b/gst/gstqueue.c index 0d70581103..0444701972 100644 --- a/gst/gstqueue.c +++ b/gst/gstqueue.c @@ -439,12 +439,11 @@ gst_queue_change_state (GstElement *element) gst_queue_flush (queue); } -/* FIXME FIXME FIXME FIXME FIXME!!!! // if we haven't failed already, give the parent class a chance to ;-) if (GST_ELEMENT_CLASS (parent_class)->change_state) { gboolean valid_handler = FALSE; - guint state_change_id = gtk_signal_lookup("state_change", G_OBJECT_TYPE(element)); + guint state_change_id = g_signal_lookup("state_change", G_OBJECT_TYPE(element)); // determine whether we need to block the parent (element) class' // STATE_CHANGE signal so we can UNLOCK before returning. we block @@ -455,23 +454,22 @@ gst_queue_change_state (GstElement *element) // if element change_state() emits other signals, they need to be blocked // as well. if (state_change_id && - gtk_signal_handler_pending(G_OBJECT(element), state_change_id, FALSE)) + g_signal_handler_has_pending(G_OBJECT(element), state_change_id, 0, FALSE)) valid_handler = TRUE; if (valid_handler) - gtk_signal_handler_block(G_OBJECT(element), state_change_id); + g_signal_handler_block(G_OBJECT(element), state_change_id); ret = GST_ELEMENT_CLASS (parent_class)->change_state (element); if (valid_handler) - gtk_signal_handler_unblock(G_OBJECT(element), state_change_id); + g_signal_handler_unblock(G_OBJECT(element), state_change_id); // UNLOCK, *then* emit signal (if there's one there) GST_UNLOCK(queue); if (valid_handler) - gtk_signal_emit(G_OBJECT (element), state_change_id, GST_STATE(element)); + g_signal_emit(G_OBJECT (element), state_change_id, 0, GST_STATE(element)); } else -*/ { ret = GST_STATE_SUCCESS; GST_UNLOCK(queue); diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c index 0d70581103..0444701972 100644 --- a/plugins/elements/gstqueue.c +++ b/plugins/elements/gstqueue.c @@ -439,12 +439,11 @@ gst_queue_change_state (GstElement *element) gst_queue_flush (queue); } -/* FIXME FIXME FIXME FIXME FIXME!!!! // if we haven't failed already, give the parent class a chance to ;-) if (GST_ELEMENT_CLASS (parent_class)->change_state) { gboolean valid_handler = FALSE; - guint state_change_id = gtk_signal_lookup("state_change", G_OBJECT_TYPE(element)); + guint state_change_id = g_signal_lookup("state_change", G_OBJECT_TYPE(element)); // determine whether we need to block the parent (element) class' // STATE_CHANGE signal so we can UNLOCK before returning. we block @@ -455,23 +454,22 @@ gst_queue_change_state (GstElement *element) // if element change_state() emits other signals, they need to be blocked // as well. if (state_change_id && - gtk_signal_handler_pending(G_OBJECT(element), state_change_id, FALSE)) + g_signal_handler_has_pending(G_OBJECT(element), state_change_id, 0, FALSE)) valid_handler = TRUE; if (valid_handler) - gtk_signal_handler_block(G_OBJECT(element), state_change_id); + g_signal_handler_block(G_OBJECT(element), state_change_id); ret = GST_ELEMENT_CLASS (parent_class)->change_state (element); if (valid_handler) - gtk_signal_handler_unblock(G_OBJECT(element), state_change_id); + g_signal_handler_unblock(G_OBJECT(element), state_change_id); // UNLOCK, *then* emit signal (if there's one there) GST_UNLOCK(queue); if (valid_handler) - gtk_signal_emit(G_OBJECT (element), state_change_id, GST_STATE(element)); + g_signal_emit(G_OBJECT (element), state_change_id, 0, GST_STATE(element)); } else -*/ { ret = GST_STATE_SUCCESS; GST_UNLOCK(queue);