]> git.0d.be Git - empathy.git/commitdiff
Signal closed from the call-handler
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Mon, 16 Feb 2009 21:24:38 +0000 (21:24 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Mon, 16 Feb 2009 21:24:38 +0000 (21:24 +0000)
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
svn path=/trunk/; revision=2478

libempathy/empathy-call-handler.c
src/empathy-call-window.c

index 40abf0d60259dfb40724bc08e1bb6b6997bbc3fe..aecf655beb899229e8647c207466217962d54d45 100644 (file)
@@ -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);
 }
index dbeda722ee22c6a85ebeda4e9f35f5d49b343a7c..24d88e6465bc2ca57bd13f22f9f157422f862226 100644 (file)
@@ -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",