From df9360528982684759437320d4d1277ccee10bba Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Mon, 16 Feb 2009 21:24:38 +0000 Subject: [PATCH] Signal closed from the call-handler Signed-off-by: Sjoerd Simons svn path=/trunk/; revision=2478 --- libempathy/empathy-call-handler.c | 17 +++++++++++++++++ src/empathy-call-window.c | 18 ++---------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/libempathy/empathy-call-handler.c b/libempathy/empathy-call-handler.c index 40abf0d6..aecf655b 100644 --- a/libempathy/empathy-call-handler.c +++ b/libempathy/empathy-call-handler.c @@ -39,6 +39,7 @@ enum { CONFERENCE_ADDED, SRC_PAD_ADDED, SINK_PAD_ADDED, + CLOSED, LAST_SIGNAL }; @@ -208,6 +209,13 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass) _empathy_marshal_VOID__OBJECT_UINT, G_TYPE_NONE, 2, GST_TYPE_PAD, G_TYPE_UINT); + + signals[CLOSED] = + g_signal_new ("closed", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); } EmpathyCallHandler * @@ -293,6 +301,13 @@ empathy_call_handler_tf_channel_stream_created_cb (TfChannel *tfchannel, gst_object_unref (spad); } +static void +empathy_call_handler_tf_channel_closed_cb (TfChannel *tfchannel, + EmpathyCallHandler *handler) +{ + g_signal_emit (G_OBJECT (handler), signals[CLOSED], 0); +} + static void empathy_call_handler_start_tpfs (EmpathyCallHandler *self) { @@ -310,6 +325,8 @@ empathy_call_handler_start_tpfs (EmpathyCallHandler *self) G_CALLBACK (empathy_call_handler_tf_channel_session_created_cb), self); g_signal_connect (priv->tfchannel, "stream-created", G_CALLBACK (empathy_call_handler_tf_channel_stream_created_cb), self); + g_signal_connect (priv->tfchannel, "closed", + G_CALLBACK (empathy_call_handler_tf_channel_closed_cb), self); g_object_unref (channel); } diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index dbeda722..24d88e64 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -103,11 +103,6 @@ static void empathy_call_window_hangup (EmpathyCallWindow *window); static void empathy_call_window_status_message (EmpathyCallWindow *window, gchar *message); -static void -empathy_call_window_session_created_cb (TfChannel *tfchannel, - FsConference *conference, FsParticipant *participant, - gpointer user_data); - static void empathy_call_window_setup_menubar (EmpathyCallWindow *self) { @@ -467,15 +462,6 @@ empathy_call_window_channel_closed_cb (TfChannel *channel, gpointer user_data) empathy_call_window_status_message (self, _("Disconnected")); } -static void -empathy_call_window_session_created_cb (TfChannel *tfchannel, - FsConference *conference, FsParticipant *participant, - gpointer user_data) -{ - g_signal_connect (G_OBJECT (tfchannel), "closed", - G_CALLBACK (empathy_call_window_channel_closed_cb), user_data); -} - static void empathy_call_window_src_added_cb (EmpathyCallHandler *handler, GstPad *src, guint media_type, gpointer user_data) @@ -552,8 +538,8 @@ empathy_call_window_realized_cb (GtkWidget *widget, EmpathyCallWindow *window) g_signal_connect (priv->handler, "conference-added", G_CALLBACK (empathy_call_window_conference_added_cb), window); - g_signal_connect (priv->handler, "session-created", - G_CALLBACK (empathy_call_window_session_created_cb), window); + g_signal_connect (priv->handler, "closed", + G_CALLBACK (empathy_call_window_channel_closed_cb), window); g_signal_connect (priv->handler, "src-pad-added", G_CALLBACK (empathy_call_window_src_added_cb), window); g_signal_connect (priv->handler, "sink-pad-added", -- 2.39.2