[empathy] calls: only set InitialAudio or InitialVideo if they are true



commit e74ffbd34ba628cf44f94a065bc9f527b0a6507f
Author: Alban Crequy <alban crequy collabora co uk>
Date:   Thu Jul 25 14:10:04 2013 +0100

    calls: only set InitialAudio or InitialVideo if they are true
    
    Any genuinely voice-only CM might not include InitialVideo in its
    advertised RequestableChannelClass. Empathy must not add
    InitialVideo=false then but just not include it.

 libempathy-gtk/empathy-call-utils.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c
index ebf3204..ebb4c1d 100644
--- a/libempathy-gtk/empathy-call-utils.c
+++ b/libempathy-gtk/empathy-call-utils.c
@@ -75,18 +75,25 @@ empathy_call_create_call_request (const gchar *contact,
     gboolean initial_audio,
     gboolean initial_video)
 {
-  return tp_asv_new (
+  GHashTable *asv = tp_asv_new (
     TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING,
       TP_IFACE_CHANNEL_TYPE_CALL,
     TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT,
       TP_HANDLE_TYPE_CONTACT,
     TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING,
       contact,
-    TP_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO, G_TYPE_BOOLEAN,
-      initial_audio,
-    TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, G_TYPE_BOOLEAN,
-      initial_video,
     NULL);
+
+  /* Only add InitialAudio or InitialVideo if they are true: it should work
+   * with genuinely voice-only CMs. */
+  if (initial_audio)
+    tp_asv_set_boolean (asv, TP_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO,
+                        initial_audio);
+  if (initial_video)
+    tp_asv_set_boolean (asv, TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO,
+                        initial_video);
+
+  return asv;
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]