]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-contact.c
Merge branch 'call'
[empathy.git] / libempathy / empathy-contact.c
index a90b20eced50ed5c2b5a9622fe5223dcf2ff4f40..55bc40bdd5cae52fa6ef5d2994c770014bc6329b 100644 (file)
@@ -28,6 +28,7 @@
 #include <telepathy-glib/account-manager.h>
 #include <telepathy-glib/interfaces.h>
 #include <telepathy-glib/util.h>
+#include <telepathy-yell/telepathy-yell.h>
 
 #include <telepathy-logger/log-manager.h>
 
@@ -1660,6 +1661,29 @@ tp_caps_to_capabilities (TpCapabilities *caps)
                 TP_PROP_CHANNEL_INTERFACE_SMS_SMS_CHANNEL, NULL))
             capabilities |= EMPATHY_CAPABILITIES_SMS;
         }
+      else if (!tp_strdiff (chan_type,
+        TPY_IFACE_CHANNEL_TYPE_CALL))
+        {
+          guint j;
+
+          if (tp_asv_get_boolean (fixed_prop,
+              TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO, NULL))
+            capabilities |= EMPATHY_CAPABILITIES_AUDIO;
+
+          if (tp_asv_get_boolean (fixed_prop,
+              TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, NULL))
+            capabilities |= EMPATHY_CAPABILITIES_VIDEO;
+
+          for (j = 0; allowed_prop[j] != NULL; j++)
+            {
+              if (!tp_strdiff (allowed_prop[j],
+                    TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO))
+                capabilities |= EMPATHY_CAPABILITIES_AUDIO;
+              else if (!tp_strdiff (allowed_prop[j],
+                    TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO))
+                capabilities |= EMPATHY_CAPABILITIES_VIDEO;
+            }
+        }
     }
 
   return capabilities;