diff options
-rw-r--r-- | libempathy-gtk/empathy-contact-menu.c | 9 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-menu.c | 9 | ||||
-rw-r--r-- | libempathy/empathy-streamed-media-factory.c | 67 | ||||
-rw-r--r-- | libempathy/empathy-streamed-media-factory.h | 10 | ||||
-rw-r--r-- | libempathy/empathy-streamed-media-handler.c | 3 | ||||
-rw-r--r-- | libempathy/empathy-utils.c | 62 | ||||
-rw-r--r-- | libempathy/empathy-utils.h | 11 |
7 files changed, 80 insertions, 91 deletions
diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c index ac5d98f48..cff1bf4e5 100644 --- a/libempathy-gtk/empathy-contact-menu.c +++ b/libempathy-gtk/empathy-contact-menu.c @@ -27,7 +27,6 @@ #include <gtk/gtk.h> #include <telepathy-logger/log-manager.h> -#include <libempathy/empathy-streamed-media-factory.h> #include <libempathy/empathy-contact-manager.h> #include <libempathy/empathy-dispatcher.h> #include <libempathy/empathy-utils.h> @@ -248,8 +247,8 @@ empathy_contact_audio_call_menu_item_activated (GtkMenuItem *item, EmpathyContact *contact) { - empathy_streamed_media_factory_new_call_with_streams (contact, TRUE, FALSE, - gtk_get_current_event_time (), NULL); + empathy_call_new_with_streams (contact, TRUE, FALSE, + gtk_get_current_event_time ()); } GtkWidget * @@ -279,8 +278,8 @@ static void empathy_contact_video_call_menu_item_activated (GtkMenuItem *item, EmpathyContact *contact) { - empathy_streamed_media_factory_new_call_with_streams (contact, TRUE, TRUE, - gtk_get_current_event_time (), NULL); + empathy_call_new_with_streams (contact, TRUE, TRUE, + gtk_get_current_event_time ()); } GtkWidget * diff --git a/libempathy-gtk/empathy-individual-menu.c b/libempathy-gtk/empathy-individual-menu.c index faa4ff6aa..1dc463330 100644 --- a/libempathy-gtk/empathy-individual-menu.c +++ b/libempathy-gtk/empathy-individual-menu.c @@ -31,7 +31,6 @@ #include <folks/folks.h> #include <folks/folks-telepathy.h> -#include <libempathy/empathy-streamed-media-factory.h> #include <libempathy/empathy-dispatcher.h> #include <libempathy/empathy-individual-manager.h> #include <libempathy/empathy-chatroom-manager.h> @@ -543,8 +542,8 @@ empathy_individual_audio_call_menu_item_activated (GtkMenuItem *item, { g_return_if_fail (EMPATHY_IS_CONTACT (contact)); - empathy_streamed_media_factory_new_call_with_streams (contact, TRUE, FALSE, - gtk_get_current_event_time (), NULL); + empathy_call_new_with_streams (contact, TRUE, FALSE, + gtk_get_current_event_time ()); } GtkWidget * @@ -585,8 +584,8 @@ empathy_individual_video_call_menu_item_activated (GtkMenuItem *item, { g_return_if_fail (EMPATHY_IS_CONTACT (contact)); - empathy_streamed_media_factory_new_call_with_streams (contact, TRUE, TRUE, - gtk_get_current_event_time (), NULL); + empathy_call_new_with_streams (contact, TRUE, TRUE, + gtk_get_current_event_time ()); } GtkWidget * diff --git a/libempathy/empathy-streamed-media-factory.c b/libempathy/empathy-streamed-media-factory.c index 7e7785546..7c4dca763 100644 --- a/libempathy/empathy-streamed-media-factory.c +++ b/libempathy/empathy-streamed-media-factory.c @@ -192,73 +192,6 @@ empathy_streamed_media_factory_get (void) return EMPATHY_STREAMED_MEDIA_FACTORY (call_factory); } -GHashTable * -empathy_streamed_media_factory_create_request (EmpathyContact *contact, - gboolean initial_audio, - gboolean initial_video) -{ - return tp_asv_new ( - TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, - 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_TYPE_STREAMED_MEDIA_INITIAL_AUDIO, G_TYPE_BOOLEAN, - initial_audio, - TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, G_TYPE_BOOLEAN, - initial_video, - NULL); -} - -static void -create_media_channel_cb (GObject *source, - GAsyncResult *result, - gpointer user_data) -{ - GError *error = NULL; - - if (!tp_account_channel_request_create_channel_finish ( - TP_ACCOUNT_CHANNEL_REQUEST (source), result, &error)) - { - DEBUG ("Failed to create media channel: %s", error->message); - g_error_free (error); - } -} - -/** - * empathy_streamed_media_factory_new_call_with_streams: - * @factory: an #EmpathyStreamedMediaFactory - * @contact: an #EmpathyContact - * @initial_audio: if %TRUE the call will be started with audio - * @initial_video: if %TRUE the call will be started with video - * - * Initiate a new call with @contact. - */ -void -empathy_streamed_media_factory_new_call_with_streams (EmpathyContact *contact, - gboolean initial_audio, - gboolean initial_video, - gint64 timestamp, - gpointer user_data) -{ - GHashTable *request; - TpAccount *account; - TpAccountChannelRequest *req; - - request = empathy_streamed_media_factory_create_request (contact, initial_audio, - initial_video); - - account = empathy_contact_get_account (contact); - - req = tp_account_channel_request_new (account, request, timestamp); - - tp_account_channel_request_create_channel_async (req, NULL, NULL, - create_media_channel_cb, NULL); - - g_hash_table_unref (request); - g_object_unref (req); -} - static void create_streamed_media_handler (EmpathyStreamedMediaFactory *factory, EmpathyTpStreamedMedia *call) diff --git a/libempathy/empathy-streamed-media-factory.h b/libempathy/empathy-streamed-media-factory.h index ab433bb48..b1fbfaf1e 100644 --- a/libempathy/empathy-streamed-media-factory.h +++ b/libempathy/empathy-streamed-media-factory.h @@ -64,19 +64,9 @@ EmpathyStreamedMediaFactory *empathy_streamed_media_factory_initialise (void); EmpathyStreamedMediaFactory *empathy_streamed_media_factory_get (void); -void empathy_streamed_media_factory_new_call_with_streams (EmpathyContact *contact, - gboolean initial_audio, - gboolean initial_video, - gint64 timestamp, - gpointer user_data); - gboolean empathy_streamed_media_factory_register (EmpathyStreamedMediaFactory *self, GError **error); -GHashTable * empathy_streamed_media_factory_create_request (EmpathyContact *contact, - gboolean initial_audio, - gboolean initial_video); - G_END_DECLS #endif /* #ifndef __EMPATHY_STREAMED_MEDIA_FACTORY_H__*/ diff --git a/libempathy/empathy-streamed-media-handler.c b/libempathy/empathy-streamed-media-handler.c index 152cf644e..6172376a0 100644 --- a/libempathy/empathy-streamed-media-handler.c +++ b/libempathy/empathy-streamed-media-handler.c @@ -30,7 +30,6 @@ #include <telepathy-farsight/stream.h> #include "empathy-streamed-media-handler.h" -#include "empathy-streamed-media-factory.h" #include "empathy-marshal.h" #include "empathy-utils.h" @@ -806,7 +805,7 @@ empathy_streamed_media_handler_start_call (EmpathyStreamedMediaHandler *handler, g_assert (priv->contact != NULL); account = empathy_contact_get_account (priv->contact); - request = empathy_streamed_media_factory_create_request (priv->contact, + request = empathy_call_create_streamed_media_request (priv->contact, priv->initial_audio, priv->initial_video); req = tp_account_channel_request_new (account, request, timestamp); diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index d089c6fd5..b23071a29 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2003-2007 Imendio AB - * Copyright (C) 2007-2008 Collabora Ltd. + * Copyright (C) 2007-2011 Collabora Ltd. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -237,6 +237,66 @@ empathy_xml_node_find_child_prop_value (xmlNodePtr node, return found; } +GHashTable * +empathy_call_create_streamed_media_request (EmpathyContact *contact, + gboolean initial_audio, + gboolean initial_video) +{ + return tp_asv_new ( + TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, + 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_TYPE_STREAMED_MEDIA_INITIAL_AUDIO, G_TYPE_BOOLEAN, + initial_audio, + TP_PROP_CHANNEL_TYPE_STREAMED_MEDIA_INITIAL_VIDEO, G_TYPE_BOOLEAN, + initial_video, + NULL); +} + +static void +create_media_channel_cb (GObject *source, + GAsyncResult *result, + gpointer user_data) +{ + GError *error = NULL; + + if (!tp_account_channel_request_create_channel_finish (TP_ACCOUNT_CHANNEL_REQUEST (source), + result, + &error)) { + DEBUG ("Failed to create StreamedMedia channel: %s", error->message); + g_error_free (error); + } +} + +void +empathy_call_new_with_streams (EmpathyContact *contact, + gboolean initial_audio, + gboolean initial_video, + gint64 timestamp) +{ + GHashTable *request; + TpAccount *account; + TpAccountChannelRequest *req; + + request = empathy_call_create_streamed_media_request (contact, + initial_audio, + initial_video); + + account = empathy_contact_get_account (contact); + + req = tp_account_channel_request_new (account, request, timestamp); + + tp_account_channel_request_create_channel_async (req, NULL, NULL, + create_media_channel_cb, + NULL); + + g_hash_table_unref (request); + g_object_unref (req); +} + const gchar * empathy_presence_get_default_message (TpConnectionPresenceType presence) { diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h index f0ac666ed..0f5f968a5 100644 --- a/libempathy/empathy-utils.h +++ b/libempathy/empathy-utils.h @@ -1,7 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Copyright (C) 2003-2007 Imendio AB - * Copyright (C) 2007-2008 Collabora Ltd. + * Copyright (C) 2007-2011 Collabora Ltd. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -66,6 +66,15 @@ xmlNodePtr empathy_xml_node_find_child_prop_value (xmlNodePtr node, const gchar *prop_name, const gchar *prop_value); +/* Calls */ +void empathy_call_new_with_streams (EmpathyContact *contact, + gboolean initial_audio, + gboolean initial_video, + gint64 timestamp); +GHashTable * empathy_call_create_streamed_media_request (EmpathyContact *contact, + gboolean initial_audio, + gboolean initial_video); + /* Others */ const gchar * empathy_presence_get_default_message (TpConnectionPresenceType presence); const gchar * empathy_presence_to_str (TpConnectionPresenceType presence); |