diff options
author | Alban Crequy <alban.crequy@collabora.co.uk> | 2013-07-25 21:10:04 +0800 |
---|---|---|
committer | Alban Crequy <alban.crequy@collabora.co.uk> | 2013-07-25 23:47:37 +0800 |
commit | e74ffbd34ba628cf44f94a065bc9f527b0a6507f (patch) | |
tree | 233f608277e56464597eb1276d16a4ac9ce9f171 /libempathy-gtk | |
parent | e6a71b9f7681a4547a68d8a3f06bbe4325d00a04 (diff) | |
download | gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar.gz gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar.bz2 gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar.lz gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar.xz gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.tar.zst gsoc2013-empathy-e74ffbd34ba628cf44f94a065bc9f527b0a6507f.zip |
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.
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | 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 ebf320471..ebb4c1d5d 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 |