[empathy] Move a couple of call-related functions to empathy-utils.h



commit 2104fdf4bd3b020e2dca0d397ce445423f463704
Author: Emilio Pozuelo Monfort <emilio pozuelo collabora co uk>
Date:   Wed Feb 9 16:48:34 2011 +0000

    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.

 libempathy-gtk/empathy-contact-menu.c       |    9 ++--
 libempathy-gtk/empathy-individual-menu.c    |    9 ++--
 libempathy/empathy-streamed-media-factory.c |   67 ---------------------------
 libempathy/empathy-streamed-media-factory.h |   10 ----
 libempathy/empathy-streamed-media-handler.c |    3 +-
 libempathy/empathy-utils.c                  |   62 ++++++++++++++++++++++++-
 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 ac5d98f..cff1bf4 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 faa4ff6..1dc4633 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 7e77855..7c4dca7 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 ab433bb..b1fbfaf 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 152cf64..6172376 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 d089c6f..b23071a 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 f0ac666..0f5f968 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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]