aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/03_tp_glib.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/03_tp_glib.patch')
-rw-r--r--debian/patches/03_tp_glib.patch119
1 files changed, 119 insertions, 0 deletions
diff --git a/debian/patches/03_tp_glib.patch b/debian/patches/03_tp_glib.patch
new file mode 100644
index 0000000..82e35ae
--- /dev/null
+++ b/debian/patches/03_tp_glib.patch
@@ -0,0 +1,119 @@
+=== modified file 'configure.ac'
+--- configure.ac 2009-12-08 13:36:06 +0000
++++ configure.ac 2009-12-08 13:40:34 +0000
+@@ -37,10 +37,10 @@
+ AC_SUBST(APPLET_LIBS)
+
+ DBUSMENUGLIB_REQUIRED_VERSION=0.1.1
+-LIBEMPATHY_REQUIRED_VERSION=2.27.0
++TELEPATHYGLIB_REQUIRED_VERSION=0.9.0
+
+ PKG_CHECK_MODULES(STATUSSERVICE, dbusmenu-glib >= $DBUSMENUGLIB_REQUIRED_VERSION
+- libempathy >= $LIBEMPATHY_REQUIRED_VERSION)
++ telepathy-glib >= $TELEPATHYGLIB_REQUIRED_VERSION)
+
+ AC_SUBST(STATUSERVICE_CFLAGS)
+ AC_SUBST(STATUSERVICE_LIBS)
+
+=== modified file 'src/status-provider-mc5.c'
+--- src/status-provider-mc5.c 2009-12-08 13:38:42 +0000
++++ src/status-provider-mc5.c 2009-12-08 16:01:06 +0000
+@@ -24,7 +24,7 @@
+ #include "config.h"
+ #endif
+
+-#include "libempathy/empathy-account-manager.h"
++#include <telepathy-glib/account-manager.h>
+
+ #include "status-provider.h"
+ #include "status-provider-mc5.h"
+@@ -65,7 +65,7 @@
+
+ typedef struct _StatusProviderMC5Private StatusProviderMC5Private;
+ struct _StatusProviderMC5Private {
+- EmpathyAccountManager * manager;
++ TpAccountManager * manager;
+ StatusProviderStatus status;
+ DBusGProxy * dbus_proxy;
+ };
+@@ -83,7 +83,7 @@
+ /* Internal Funcs */
+ static void set_status (StatusProvider * sp, StatusProviderStatus status);
+ static StatusProviderStatus get_status (StatusProvider * sp);
+-static void presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp);
++static void presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp);
+ static void dbus_namechange (DBusGProxy * proxy, const gchar * name, const gchar * prev, const gchar * new, StatusProviderMC5 * self);
+ static void mc5_exists_cb (DBusGProxy * proxy, gboolean exists, GError * error, gpointer userdata);
+
+@@ -109,25 +109,41 @@
+ return;
+ }
+
+-/* Build our empathy account manager instance if we don't
++/* Build our telepathy account manager instance if we don't
+ have one. */
+ static void
+ build_eam (StatusProviderMC5 * self)
+ {
+ StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(self);
++ static TpDBusDaemon *daemon = NULL;
++ GError *error = NULL;
+
+ if (priv->manager != NULL) {
+ return;
+ }
+-
+- priv->manager = EMPATHY_ACCOUNT_MANAGER(g_object_new(EMPATHY_TYPE_ACCOUNT_MANAGER, NULL));
+- g_signal_connect(G_OBJECT(priv->manager), "global-presence-changed", G_CALLBACK(presence_changed), self);
++ /* the daemon is used to communicate via DBus */
++ daemon = tp_dbus_daemon_dup(&error);
++
++ if (daemon == NULL)
++ {
++ g_debug("Cannot create DBus daemon: %s\n", error->message);
++ g_error_free(error);
++ return;
++ }
++
++ priv->manager = TP_ACCOUNT_MANAGER (g_object_new (TP_TYPE_ACCOUNT_MANAGER,
++ "dbus-daemon", daemon,
++ "dbus-connection", ((TpProxy *) daemon)->dbus_connection,
++ "bus-name", "org.freedesktop.Telepathy.MissionControl5",
++ "object-path", "/org/freedesktop/Telepathy/AccountManager",
++ NULL));
++ g_signal_connect(G_OBJECT(priv->manager), "most-available-presence-changed", G_CALLBACK(presence_changed), self);
+
+ return;
+ }
+
+ /* Creating an instance of the status provider. We set the variables
+- and create an EmpathyAccountManager object. It does all the hard
++ and create an TpAccountManager object. It does all the hard
+ work in this module of tracking MissionControl and enumerating the
+ accounts and all that jazz. */
+ static void
+@@ -266,8 +282,7 @@
+ StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp);
+
+ build_eam(STATUS_PROVIDER_MC5(sp));
+-
+- empathy_account_manager_request_global_presence(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], "");
++ tp_account_manager_set_all_requested_presences(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], "");
+
+ return;
+ }
+@@ -287,11 +302,11 @@
+ return priv->status;
+ }
+
+-/* A signal handler for when the EmpatyAccountManager believes
++/* A signal handler for when the TpAccountManager believes
+ that the global status has changed. It roughly calculates this
+ by finding the most available of all accounts that are active. */
+ static void
+-presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp)
++presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp)
+ {
+ StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp);
+
+