[telepathy-gabble/master] Generalize gabble_jingle_session_send_held

Will Thompson will.thompson at collabora.co.uk
Wed May 27 07:29:14 PDT 2009


---
 src/jingle-session.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/jingle-session.c b/src/jingle-session.c
index 53dde13..944038c 100644
--- a/src/jingle-session.c
+++ b/src/jingle-session.c
@@ -515,6 +515,8 @@ action_is_allowed (JingleAction action, JingleState state)
   return FALSE;
 }
 
+static void gabble_jingle_session_send_rtp_info (GabbleJingleSession *sess,
+    const gchar *name);
 static void set_state (GabbleJingleSession *sess, JingleState state,
     TpChannelGroupChangeReason termination_reason);
 static GabbleJingleContent *_get_any_content (GabbleJingleSession *session);
@@ -2003,24 +2005,23 @@ content_ready_cb (GabbleJingleContent *c, gpointer user_data)
   try_session_initiate_or_accept (sess);
 }
 
-void
-gabble_jingle_session_send_held (GabbleJingleSession *sess,
-                                 gboolean held)
+static void
+gabble_jingle_session_send_rtp_info (GabbleJingleSession *sess,
+    const gchar *name)
 {
   LmMessage *message;
   LmMessageNode *jingle, *notification;
 
   if (sess->priv->dialect != JINGLE_DIALECT_V032)
     {
-      DEBUG ("FIXME: fake hold for Ye Olde Jingle and GTalk.");
+      DEBUG ("Not sending <%s/>; not using modern Jingle", name);
       return;
     }
 
   message = gabble_jingle_session_new_message (sess,
       JINGLE_ACTION_SESSION_INFO, &jingle);
 
-  notification = lm_message_node_add_child (jingle,
-      (held ? "hold" : "active"), NULL);
+  notification = lm_message_node_add_child (jingle, name, NULL);
   lm_message_node_set_attributes (notification, "xmlns", NS_JINGLE_RTP_INFO,
       NULL);
 
@@ -2028,6 +2029,13 @@ gabble_jingle_session_send_held (GabbleJingleSession *sess,
   gabble_jingle_session_send (sess, message, NULL, NULL);
 }
 
+void
+gabble_jingle_session_send_held (GabbleJingleSession *sess,
+    gboolean held)
+{
+  gabble_jingle_session_send_rtp_info (sess, (held ? "hold" : "active"));
+}
+
 gboolean
 gabble_jingle_session_get_remote_hold (GabbleJingleSession *sess)
 {
-- 
1.5.6.5




More information about the telepathy-commits mailing list