From 5f6779c758764d859efe162ecb6fba579cc318f1 Mon Sep 17 00:00:00 2001 From: Sjoerd Simons Date: Tue, 3 Feb 2009 09:02:46 +0000 Subject: [PATCH] Switch to calling CallFactory to make calls Signed-off-by: Sjoerd Simons svn path=/trunk/; revision=2382 --- libempathy-gtk/empathy-contact-list-view.c | 7 ++++- libempathy-gtk/empathy-contact-menu.c | 15 +++++++-- libempathy-gtk/empathy-new-message-dialog.c | 6 +++- libempathy/empathy-utils.c | 34 +-------------------- libempathy/empathy-utils.h | 3 -- 5 files changed, 25 insertions(+), 40 deletions(-) diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c index 0083102f..b7a6601c 100644 --- a/libempathy-gtk/empathy-contact-list-view.c +++ b/libempathy-gtk/empathy-contact-list-view.c @@ -34,6 +34,7 @@ #include +#include #include #include #include @@ -571,7 +572,11 @@ contact_list_view_voip_activated_cb (EmpathyCellRendererActivatable *cell, -1); if (contact) { - empathy_start_call_with_contact (contact); + EmpathyCallFactory *factory; + + factory = empathy_call_factory_get (); + empathy_call_factory_new_call (factory, contact); + g_object_unref (contact); } } diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c index e3fb3c9f..ca820837 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -131,6 +132,16 @@ empathy_contact_chat_menu_item_new (EmpathyContact *contact) return item; } +static void +empathy_contact_call_menu_item_activated (GtkMenuItem *item, + EmpathyContact *contact) +{ + EmpathyCallFactory *factory; + + factory = empathy_call_factory_get (); + empathy_call_factory_new_call (factory, contact); +} + GtkWidget * empathy_contact_call_menu_item_new (EmpathyContact *contact) { @@ -146,8 +157,8 @@ empathy_contact_call_menu_item_new (EmpathyContact *contact) gtk_widget_set_sensitive (item, empathy_contact_can_voip (contact)); gtk_widget_show (image); - g_signal_connect_swapped (item, "activate", - G_CALLBACK (empathy_start_call_with_contact), + g_signal_connect (item, "activate", + G_CALLBACK (empathy_contact_call_menu_item_activated), contact); return item; diff --git a/libempathy-gtk/empathy-new-message-dialog.c b/libempathy-gtk/empathy-new-message-dialog.c index 9127e291..1db8db1b 100644 --- a/libempathy-gtk/empathy-new-message-dialog.c +++ b/libempathy-gtk/empathy-new-message-dialog.c @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -186,11 +187,15 @@ new_message_dialog_response_cb (GtkWidget *widget, if (response == 1) { EmpathyContactFactory *factory; EmpathyContact *contact; + EmpathyCallFactory *call_factory; factory = empathy_contact_factory_dup_singleton (); contact = empathy_contact_factory_get_from_id (factory, account, id); empathy_start_call_with_contact (contact); + call_factory = empathy_call_factory_get(); + empathy_call_factory_new_call (call_factory, contact); + g_object_unref (contact); g_object_unref (factory); } else if (response == 2) { @@ -307,4 +312,3 @@ empathy_new_message_dialog_show (GtkWindow *parent) return dialog->dialog; } - diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index bda638df..a476d9e5 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -453,37 +453,6 @@ empathy_proxy_equal (gconstpointer a, g_str_equal (proxy_a->bus_name, proxy_b->bus_name); } -static void -empathy_call_request_cb (EmpathyDispatchOperation *operation, - const GError *error, gpointer user_data) -{ - EmpathyContact *contact = EMPATHY_CONTACT (user_data); - - if (error != NULL) - { - DEBUG ("Failed to request streamed media channel %s", - error->message); - } - else - { - EmpathyTpCall *call = - EMPATHY_TP_CALL ( - empathy_dispatch_operation_get_channel_wrapper (operation)); - - empathy_tp_call_to (call, contact); - } - - g_object_unref (contact); -} - -void -empathy_start_call_with_contact (EmpathyContact *contact) -{ - g_object_ref (contact); - empathy_dispatcher_call_with_contact (contact, empathy_call_request_cb, - contact); -} - gboolean empathy_check_available_state (void) { @@ -495,10 +464,9 @@ empathy_check_available_state (void) g_object_unref (idle); if (presence != MC_PRESENCE_AVAILABLE && - presence != MC_PRESENCE_UNSET) { + presence != MC_PRESENCE_UNSET) { return FALSE; } return TRUE; } - diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h index 46fa193c..8684acc0 100644 --- a/libempathy/empathy-utils.h +++ b/libempathy/empathy-utils.h @@ -88,9 +88,6 @@ gboolean empathy_proxy_equal (gconstpointer a, gconstpointer b); guint empathy_proxy_hash (gconstpointer key); gboolean empathy_check_available_state (void); -/* Temporary utility function, should be replaces by better voip infrastructure - * soon */ -void empathy_start_call_with_contact (EmpathyContact *contact); G_END_DECLS -- 2.39.2