]> git.0d.be Git - empathy.git/commitdiff
calls: only set InitialAudio or InitialVideo if they are true
authorAlban Crequy <alban.crequy@collabora.co.uk>
Thu, 25 Jul 2013 13:10:04 +0000 (14:10 +0100)
committerAlban Crequy <alban.crequy@collabora.co.uk>
Thu, 25 Jul 2013 15:47:37 +0000 (16:47 +0100)
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

index ebf320471eaa8b56bfd97a92497128ccf857f55b..ebb4c1d5dce45b6e57ab8734119d32f46a2adcd7 100644 (file)
@@ -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