diff options
author | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-23 02:14:07 +0800 |
---|---|---|
committer | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-06-09 17:20:05 +0800 |
commit | 5e797f1df68283302038c9723604c87f476a0656 (patch) | |
tree | ce3b7c3d4e7898897de6ba140611575315fdf83a /libempathy-gtk | |
parent | 0754b2673f0189e892074189535d3dfb6fd2a662 (diff) | |
download | gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar.gz gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar.bz2 gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar.lz gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar.xz gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.tar.zst gsoc2013-empathy-5e797f1df68283302038c9723604c87f476a0656.zip |
Don't require EmpathyContacts to start a call
Conflicts:
libempathy-gtk/empathy-contact-menu.c
libempathy-gtk/empathy-individual-menu.c
libempathy-gtk/empathy-new-call-dialog.c
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-call-utils.c | 18 | ||||
-rw-r--r-- | libempathy-gtk/empathy-call-utils.h | 11 | ||||
-rw-r--r-- | libempathy-gtk/empathy-contact-menu.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-menu.c | 8 | ||||
-rw-r--r-- | libempathy-gtk/empathy-new-call-dialog.c | 43 |
5 files changed, 26 insertions, 62 deletions
diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index c95b66236..2a4158539 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -35,7 +35,7 @@ #if HAVE_CALL GHashTable * -empathy_call_create_call_request (EmpathyContact *contact, +empathy_call_create_call_request (const gchar *contact, gboolean initial_audio, gboolean initial_video) { @@ -44,8 +44,8 @@ empathy_call_create_call_request (EmpathyContact *contact, TPY_IFACE_CHANNEL_TYPE_CALL, TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT, - TP_PROP_CHANNEL_TARGET_HANDLE, G_TYPE_UINT, - empathy_contact_get_handle (contact), + TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, + contact, TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_AUDIO, G_TYPE_BOOLEAN, initial_audio, TPY_PROP_CHANNEL_TYPE_CALL_INITIAL_VIDEO, G_TYPE_BOOLEAN, @@ -55,7 +55,7 @@ empathy_call_create_call_request (EmpathyContact *contact, #endif GHashTable * -empathy_call_create_streamed_media_request (EmpathyContact *contact, +empathy_call_create_streamed_media_request (const gchar *contact, gboolean initial_audio, gboolean initial_video) { @@ -64,8 +64,8 @@ empathy_call_create_streamed_media_request (EmpathyContact *contact, TP_IFACE_CHANNEL_TYPE_STREAMED_MEDIA, TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT, - TP_PROP_CHANNEL_TARGET_HANDLE, G_TYPE_UINT, - empathy_contact_get_handle (contact), + TP_PROP_CHANNEL_TARGET_ID, G_TYPE_STRING, + contact, TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_AUDIO, G_TYPE_BOOLEAN, initial_audio, TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, G_TYPE_BOOLEAN, @@ -121,14 +121,14 @@ create_call_channel_cb (GObject *source, #endif void -empathy_call_new_with_streams (EmpathyContact *contact, +empathy_call_new_with_streams (const gchar *contact, + TpAccount *account, gboolean initial_audio, gboolean initial_video, gint64 timestamp) { #if HAVE_CALL GHashTable *call_request, *streamed_media_request; - TpAccount *account; TpAccountChannelRequest *call_req, *streamed_media_req; call_request = empathy_call_create_call_request (contact, @@ -138,8 +138,6 @@ empathy_call_new_with_streams (EmpathyContact *contact, streamed_media_request = empathy_call_create_streamed_media_request ( contact, initial_audio, initial_video); - account = empathy_contact_get_account (contact); - call_req = tp_account_channel_request_new (account, call_request, timestamp); streamed_media_req = tp_account_channel_request_new (account, streamed_media_request, diff --git a/libempathy-gtk/empathy-call-utils.h b/libempathy-gtk/empathy-call-utils.h index 1bea52f6a..99a97f202 100644 --- a/libempathy-gtk/empathy-call-utils.h +++ b/libempathy-gtk/empathy-call-utils.h @@ -21,23 +21,20 @@ #ifndef __EMPATHY_CALL_UTILS_H__ #define __EMPATHY_CALL_UTILS_H__ -#include <libempathy/empathy-contact.h> - G_BEGIN_DECLS /* Calls */ -void empathy_call_new_with_streams (EmpathyContact *contact, +void empathy_call_new_with_streams (const gchar *contact, + TpAccount *account, gboolean initial_audio, gboolean initial_video, gint64 timestamp); -GHashTable * empathy_call_create_call_request ( - EmpathyContact *contact, +GHashTable * empathy_call_create_call_request (const gchar *contact, gboolean initial_audio, gboolean initial_video); -GHashTable * empathy_call_create_streamed_media_request ( - EmpathyContact *contact, +GHashTable * empathy_call_create_streamed_media_request (const gchar *contact, gboolean initial_audio, gboolean initial_video); diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c index 86b9f319e..60e7052ea 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -344,7 +344,9 @@ static void empathy_contact_audio_call_menu_item_activated (GtkMenuItem *item, EmpathyContact *contact) { - empathy_call_new_with_streams (contact, TRUE, FALSE, + empathy_call_new_with_streams (empathy_contact_get_id (contact), + empathy_contact_get_account (contact), + TRUE, FALSE, empathy_get_current_action_time ()); } @@ -375,7 +377,9 @@ static void empathy_contact_video_call_menu_item_activated (GtkMenuItem *item, EmpathyContact *contact) { - empathy_call_new_with_streams (contact, TRUE, TRUE, + empathy_call_new_with_streams (empathy_contact_get_id (contact), + empathy_contact_get_account (contact), + TRUE, TRUE, empathy_get_current_action_time ()); } diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c index 33e277135..a92e5bcd9 100644 --- a/libempathy-gtk/empathy-individual-menu.c +++ b/libempathy-gtk/empathy-individual-menu.c @@ -618,7 +618,9 @@ empathy_individual_audio_call_menu_item_activated (GtkMenuItem *item, { g_return_if_fail (EMPATHY_IS_CONTACT (contact)); - empathy_call_new_with_streams (contact, TRUE, FALSE, + empathy_call_new_with_streams (empathy_contact_get_id (contact), + empathy_contact_get_account (contact), + TRUE, FALSE, empathy_get_current_action_time ()); } @@ -660,7 +662,9 @@ empathy_individual_video_call_menu_item_activated (GtkMenuItem *item, { g_return_if_fail (EMPATHY_IS_CONTACT (contact)); - empathy_call_new_with_streams (contact, TRUE, TRUE, + empathy_call_new_with_streams (empathy_contact_get_id (contact), + empathy_contact_get_account (contact), + TRUE, TRUE, empathy_get_current_action_time ()); } diff --git a/libempathy-gtk/empathy-new-call-dialog.c b/libempathy-gtk/empathy-new-call-dialog.c index 0c0972de5..8fd273840 100644 --- a/libempathy-gtk/empathy-new-call-dialog.c +++ b/libempathy-gtk/empathy-new-call-dialog.c @@ -59,11 +59,6 @@ typedef struct { gpointer user_data; } FilterCallbackData; -typedef struct { - gboolean video; - gint64 timestamp; -} ContactCallbackData; - struct _EmpathyNewCallDialogPriv { GtkWidget *check_video; }; @@ -83,41 +78,6 @@ struct _EmpathyNewCallDialogPriv { */ static void -got_contact_cb (TpConnection *connection, - EmpathyContact *contact, - const GError *error, - gpointer user_data, - GObject *weak_object) -{ - ContactCallbackData *data = user_data; - - if (error != NULL) - g_warning ("Could not get contact: %s", error->message); - else - empathy_call_new_with_streams (contact, - TRUE, data->video, data->timestamp); - - g_slice_free (ContactCallbackData, data); -} - -static void -call_contact (TpAccount *account, - const gchar *contact_id, - gboolean video, - gint64 timestamp) -{ - ContactCallbackData *data = g_slice_new0 (ContactCallbackData); - - data->video = video; - data->timestamp = timestamp; - - empathy_tp_contact_factory_get_from_id (tp_account_get_connection (account), - contact_id, - got_contact_cb, data, - NULL, NULL); -} - -static void empathy_new_call_dialog_response (GtkDialog *dialog, int response_id) { EmpathyNewCallDialogPriv *priv = GET_PRIV (dialog); @@ -136,7 +96,8 @@ empathy_new_call_dialog_response (GtkDialog *dialog, int response_id) * we return from this function. */ video = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_video)); - call_contact (account, contact_id, video, + empathy_call_new_with_streams (contact_id, + account, TRUE, video, empathy_get_current_action_time ()); out: |