diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-02-24 15:05:15 +0100 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2014-02-26 10:32:36 +0100 |
commit | 25f83bd5627ab9812cd1e402863079b7b7fe368f (patch) | |
tree | 6dae0e3a5a6515ef08d4d8969372f379dbe5caab | |
parent | 6a1fee5ce2917c193e82288ddc9788d1192fbb84 (diff) |
call-utils: use TpAccountChannelRequest higher level API
https://bugzilla.gnome.org/show_bug.cgi?id=725070
-rw-r--r-- | libempathy-gtk/empathy-call-utils.c | 53 | ||||
-rw-r--r-- | libempathy-gtk/empathy-call-utils.h | 6 | ||||
-rw-r--r-- | src/empathy-call-handler.c | 7 |
3 files changed, 28 insertions, 38 deletions
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); } /** |