[telepathy-gabble/master] Add reason to JingleSession:terminated signal

Will Thompson will.thompson at collabora.co.uk
Mon Mar 23 05:47:56 PDT 2009


---
 src/jingle-factory.c |   10 ++++++----
 src/jingle-session.c |    8 +++++---
 src/media-channel.c  |    5 +++--
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/jingle-factory.c b/src/jingle-factory.c
index 82db3a3..ff71c3e 100644
--- a/src/jingle-factory.c
+++ b/src/jingle-factory.c
@@ -90,7 +90,8 @@ static GabbleJingleSession *create_session (GabbleJingleFactory *fac,
     const gchar *sid, TpHandle peer, const gchar *peer_resource);
 
 static void session_terminated_cb (GabbleJingleSession *sess,
-    gboolean local_terminator, GabbleJingleFactory *fac);
+    gboolean local_terminator, TpChannelGroupChangeReason reason,
+    GabbleJingleFactory *fac);
 
 static void connection_status_changed_cb (GabbleConnection *conn,
     guint status, guint reason, GabbleJingleFactory *self);
@@ -777,8 +778,7 @@ create_session (GabbleJingleFactory *fac,
   sess = gabble_jingle_session_new (priv->conn, sid, local_initiator, peer,
       peer_resource);
 
-  g_signal_connect (sess, "terminated",
-    (GCallback) session_terminated_cb, fac);
+  g_signal_connect (sess, "terminated", (GCallback) session_terminated_cb, fac);
 
   DEBUG ("new session %s @ %p created", sid, sess);
   register_session (fac, sid, sess);
@@ -833,7 +833,9 @@ gabble_jingle_factory_lookup_content_type (GabbleJingleFactory *self,
 
 static void
 session_terminated_cb (GabbleJingleSession *session,
-    gboolean local_terminator, GabbleJingleFactory *factory)
+                       gboolean local_terminator,
+                       TpChannelGroupChangeReason reason,
+                       GabbleJingleFactory *factory)
 {
   const gchar *sid;
   DEBUG ("removing terminated session");
diff --git a/src/jingle-session.c b/src/jingle-session.c
index 9b0002a..4f7b4bb 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -30,6 +30,7 @@
 
 #include "connection.h"
 #include "debug.h"
+#include "gabble-signals-marshal.h"
 #include "jingle-content.h"
 #include "jingle-factory.h"
 #include "namespaces.h"
@@ -372,8 +373,8 @@ gabble_jingle_session_class_init (GabbleJingleSessionClass *cls)
 
   signals[TERMINATED] = g_signal_new ("terminated",
         G_TYPE_FROM_CLASS (cls), G_SIGNAL_RUN_LAST,
-        0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN,
-        G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
+        0, NULL, NULL, gabble_marshal_VOID__BOOLEAN_UINT,
+        G_TYPE_NONE, 2, G_TYPE_BOOLEAN, G_TYPE_UINT);
 }
 
 typedef void (*HandlerFunc)(GabbleJingleSession *sess,
@@ -1522,7 +1523,8 @@ set_state (GabbleJingleSession *sess, JingleState state)
     }
 
   if (state == JS_STATE_ENDED)
-      g_signal_emit (sess, signals[TERMINATED], 0, priv->locally_terminated);
+    g_signal_emit (sess, signals[TERMINATED], 0, priv->locally_terminated,
+        TP_CHANNEL_GROUP_CHANGE_REASON_NONE);
 }
 
 void
diff --git a/src/media-channel.c b/src/media-channel.c
index 36a2bd1..f617e90 100644
--- a/src/media-channel.c
+++ b/src/media-channel.c
@@ -198,7 +198,8 @@ gabble_media_channel_init (GabbleMediaChannel *self)
 static void session_state_changed_cb (GabbleJingleSession *session,
     GParamSpec *arg1, GabbleMediaChannel *channel);
 static void session_terminated_cb (GabbleJingleSession *session,
-    gboolean local_terminator, gpointer user_data);
+    gboolean local_terminator, TpChannelGroupChangeReason reason,
+    gpointer user_data);
 static void session_new_content_cb (GabbleJingleSession *session,
     GabbleJingleContent *c, gpointer user_data);
 static void create_stream_from_content (GabbleMediaChannel *chan,
@@ -2031,12 +2032,12 @@ gabble_media_channel_remove_member (GObject *obj,
 static void
 session_terminated_cb (GabbleJingleSession *session,
                        gboolean local_terminator,
+                       TpChannelGroupChangeReason reason,
                        gpointer user_data)
 {
   GabbleMediaChannel *channel = (GabbleMediaChannel *) user_data;
   GabbleMediaChannelPrivate *priv = channel->priv;
   TpGroupMixin *mixin = TP_GROUP_MIXIN (channel);
-  guint reason = TP_CHANNEL_GROUP_CHANGE_REASON_NONE;
   guint terminator;
   JingleSessionState state;
   TpHandle peer;
-- 
1.5.6.5




More information about the telepathy-commits mailing list