diff options
author | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-23 02:14:07 +0800 |
---|---|---|
committer | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2011-02-24 01:12:57 +0800 |
commit | 43351bae1eb2f338922577ffa6dcc7321e35a37b (patch) | |
tree | 2ff44c92b653e40d73a238cb26ca18887dec3148 | |
parent | 10edf350020350475ece049d9c8fd969f70cf5c5 (diff) | |
download | gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar.gz gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar.bz2 gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar.lz gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar.xz gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.tar.zst gsoc2013-empathy-43351bae1eb2f338922577ffa6dcc7321e35a37b.zip |
Don't require EmpathyContacts to start a call
-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 | ||||
-rw-r--r-- | src/empathy-call-factory.c | 3 | ||||
-rw-r--r-- | src/empathy-streamed-media-handler.c | 3 |
7 files changed, 30 insertions, 64 deletions
diff --git a/libempathy-gtk/empathy-call-utils.c b/libempathy-gtk/empathy-call-utils.c index d94e62400..d9c35e2cf 100644 --- a/libempathy-gtk/empathy-call-utils.c +++ b/libempathy-gtk/empathy-call-utils.c @@ -33,7 +33,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) { @@ -42,8 +42,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, @@ -53,7 +53,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) { @@ -62,8 +62,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, @@ -118,14 +118,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, @@ -135,8 +135,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 a9504e085..7bcec3810 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -339,7 +339,9 @@ 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, gtk_get_current_event_time ()); } @@ -370,7 +372,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, gtk_get_current_event_time ()); } diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c index fad18b3f3..a86aed966 100644 --- a/libempathy-gtk/empathy-individual-menu.c +++ b/libempathy-gtk/empathy-individual-menu.c @@ -543,7 +543,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, gtk_get_current_event_time ()); } @@ -585,7 +587,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, gtk_get_current_event_time ()); } diff --git a/libempathy-gtk/empathy-new-call-dialog.c b/libempathy-gtk/empathy-new-call-dialog.c index cbfbb9569..be266c715 100644 --- a/libempathy-gtk/empathy-new-call-dialog.c +++ b/libempathy-gtk/empathy-new-call-dialog.c @@ -58,11 +58,6 @@ typedef struct { gpointer user_data; } FilterCallbackData; -typedef struct { - gboolean video; - gint64 timestamp; -} ContactCallbackData; - struct _EmpathyNewCallDialogPriv { GtkWidget *check_video; }; @@ -82,41 +77,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); @@ -135,7 +95,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, gtk_get_current_event_time ()); + empathy_call_new_with_streams (contact_id, + account, TRUE, video, gtk_get_current_event_time ()); out: gtk_widget_destroy (GTK_WIDGET (dialog)); diff --git a/src/empathy-call-factory.c b/src/empathy-call-factory.c index 21d3a6594..76b28cf9a 100644 --- a/src/empathy-call-factory.c +++ b/src/empathy-call-factory.c @@ -244,7 +244,8 @@ empathy_call_factory_new_call_with_streams (EmpathyContact *contact, TpAccount *account; TpAccountChannelRequest *call_req; - call_request = empathy_call_create_call_request (contact, + call_request = empathy_call_create_call_request ( + empathy_contact_get_id (contact), initial_audio, initial_video); account = empathy_contact_get_account (contact); diff --git a/src/empathy-streamed-media-handler.c b/src/empathy-streamed-media-handler.c index 9d533b993..39e3e560d 100644 --- a/src/empathy-streamed-media-handler.c +++ b/src/empathy-streamed-media-handler.c @@ -808,7 +808,8 @@ empathy_streamed_media_handler_start_call (EmpathyStreamedMediaHandler *handler, g_assert (priv->contact != NULL); account = empathy_contact_get_account (priv->contact); - request = empathy_call_create_streamed_media_request (priv->contact, + request = empathy_call_create_streamed_media_request ( + empathy_contact_get_id (priv->contact), priv->initial_audio, priv->initial_video); req = tp_account_channel_request_new (account, request, timestamp); |