diff options
author | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-10 00:48:34 +0800 |
---|---|---|
committer | Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk> | 2011-02-10 17:24:55 +0800 |
commit | 2104fdf4bd3b020e2dca0d397ce445423f463704 (patch) | |
tree | 70b7c1d771c95828322c2254f199e4759fd3db6f /libempathy | |
parent | f22e466ab6e525a148145f66aed3ce4a0f23128a (diff) | |
download | gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar.gz gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar.bz2 gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar.lz gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar.xz gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.tar.zst gsoc2013-empathy-2104fdf4bd3b020e2dca0d397ce445423f463704.zip |
Move a couple of call-related functions to empathy-utils.h
Since the rest of the call stuff will only be compiled for
empathy-av so we don't link every binary against farsight.
Diffstat (limited to 'libempathy')
-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 |
5 files changed, 72 insertions, 81 deletions
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); |