From: Guillaume Desmottes Date: Mon, 24 Feb 2014 14:05:15 +0000 (+0100) Subject: call-utils: use TpAccountChannelRequest higher level API X-Git-Url: https://git.0d.be/?p=empathy.git;a=commitdiff_plain;h=25f83bd5627ab9812cd1e402863079b7b7fe368f call-utils: use TpAccountChannelRequest higher level API https://bugzilla.gnome.org/show_bug.cgi?id=725070 --- diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index 261205b0..c6380ba8 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -71,30 +71,6 @@ show_call_error (GError *error) gtk_widget_show (dialog); } -GHashTable * -empathy_call_create_call_request (const gchar *contact, - gboolean initial_video) -{ - 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, - TRUE, - NULL); - - /* Only add InitialVideo if it is true: it should work - * with genuinely voice-only CMs. */ - if (initial_video) - tp_asv_set_boolean (asv, TP_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, - initial_video); - - return asv; -} - static void create_call_channel_cb (GObject *source, GAsyncResult *result, @@ -111,21 +87,36 @@ create_call_channel_cb (GObject *source, show_call_error (error); } +TpAccountChannelRequest * +empathy_call_create_call_request (TpAccount *account, + const gchar *contact, + gboolean initial_video, + gint64 timestamp) +{ + TpAccountChannelRequest *call_req; + + if (initial_video) + call_req = tp_account_channel_request_new_audio_video_call (account, + timestamp); + else + call_req = tp_account_channel_request_new_audio_call (account, timestamp); + + tp_account_channel_request_set_target_id (call_req, TP_HANDLE_TYPE_CONTACT, + contact); + + return call_req; +} + void empathy_call_new_with_streams (const gchar *contact, TpAccount *account, gboolean initial_video, gint64 timestamp) { - GHashTable *call_request; TpAccountChannelRequest *call_req; - /* Call */ - call_request = empathy_call_create_call_request (contact, initial_video); - - call_req = tp_account_channel_request_new (account, call_request, timestamp); - - g_hash_table_unref (call_request); + call_req = empathy_call_create_call_request (account, contact, initial_video, + timestamp); tp_account_channel_request_create_channel_async (call_req, EMPATHY_CALL_TP_BUS_NAME, NULL, create_call_channel_cb, NULL); diff --git a/libempathy-gtk/empathy-call-utils.h b/libempathy-gtk/empathy-call-utils.h index d8656e89..e35c7e3f 100644 --- a/libempathy-gtk/empathy-call-utils.h +++ b/libempathy-gtk/empathy-call-utils.h @@ -31,8 +31,10 @@ void empathy_call_new_with_streams (const gchar *contact, gboolean initial_video, gint64 timestamp); -GHashTable * empathy_call_create_call_request (const gchar *contact, - gboolean initial_video); +TpAccountChannelRequest * empathy_call_create_call_request (TpAccount *account, + const gchar *contact, + gboolean initial_video, + gint64 timestamp); TpSendingState empathy_call_channel_get_video_state (TpCallChannel *self); void empathy_call_channel_send_video (TpCallChannel *self, diff --git a/src/empathy-call-handler.c b/src/empathy-call-handler.c index 4351dedc..2935c2a7 100644 --- a/src/empathy-call-handler.c +++ b/src/empathy-call-handler.c @@ -887,7 +887,6 @@ empathy_call_handler_start_call (EmpathyCallHandler *handler, EmpathyCallHandlerPriv *priv = GET_PRIV (handler); TpAccountChannelRequest *req; TpAccount *account; - GHashTable *request; if (priv->call != NULL) { @@ -917,16 +916,14 @@ empathy_call_handler_start_call (EmpathyCallHandler *handler, g_assert (priv->contact != NULL); account = empathy_contact_get_account (priv->contact); - request = empathy_call_create_call_request ( - empathy_contact_get_id (priv->contact), priv->initial_video); - req = tp_account_channel_request_new (account, request, timestamp); + req = empathy_call_create_call_request (account, + empathy_contact_get_id (priv->contact), priv->initial_video, timestamp); tp_account_channel_request_create_and_handle_channel_async (req, NULL, empathy_call_handler_request_cb, handler); g_object_unref (req); - g_hash_table_unref (request); } /**