X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=libempathy-gtk%2Fempathy-call-utils.c;h=a235e7b999a25fed1a3200169481c715953bd8b2;hp=9f72ce9bbe203e54e117ff15881171395add9403;hb=912bbee404f948ae85d8c5705857b7dde0595ea0;hpb=66e393b7b8632ca69b4e4c81801c521d79713b78 diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index 9f72ce9b..a235e7b9 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -19,19 +19,16 @@ */ #include "config.h" +#include "empathy-call-utils.h" #include - #include +#include -#include - -#include "empathy-call-utils.h" - -#include +#include "empathy-request-util.h" #define DEBUG_FLAG EMPATHY_DEBUG_OTHER -#include +#include "empathy-debug.h" static const gchar * get_error_display_message (GError *error) @@ -79,18 +76,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 @@ -109,9 +113,8 @@ create_call_channel_cb (GObject *source, show_call_error (error); } -/* Try to request a Call channel and fallback to StreamedMedia if that fails */ -static void -call_new_with_streams (const gchar *contact, +void +empathy_call_new_with_streams (const gchar *contact, TpAccount *account, gboolean initial_audio, gboolean initial_video, @@ -130,22 +133,11 @@ call_new_with_streams (const gchar *contact, g_hash_table_unref (call_request); tp_account_channel_request_create_channel_async (call_req, - EMPATHY_CALL_BUS_NAME, NULL, create_call_channel_cb, NULL); + EMPATHY_CALL_TP_BUS_NAME, NULL, create_call_channel_cb, NULL); g_object_unref (call_req); } -void -empathy_call_new_with_streams (const gchar *contact, - TpAccount *account, - gboolean initial_audio, - gboolean initial_video, - gint64 timestamp) -{ - call_new_with_streams (contact, account, initial_audio, initial_video, - timestamp); -} - /* Copied from telepathy-yell call-channel.c */ void empathy_call_channel_send_video (TpCallChannel *self,