diff src/gaim-client.c @ 11241:66f872f30e40

[gaim-migrate @ 13404] New shared library libgaim-client, which provides C bindings to communicate with gaim. committer: Tailor Script <tailor@pidgin.im>
author Piotr Zielinski <zielaj>
date Fri, 12 Aug 2005 16:56:45 +0000
parents
children 421a8523ad04
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/gaim-client.c	Fri Aug 12 16:56:45 2005 +0000
@@ -0,0 +1,56 @@
+#define DBUS_API_SUBJECT_TO_CHANGE
+
+#include <dbus/dbus-glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "dbus-gaim.h"
+#include "gaim-client-bindings.h"
+
+static DBusGConnection *bus;
+static DBusGProxy *gaim_proxy;
+
+#include "gaim-client-bindings.c"
+
+static void lose (const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2);
+static void lose_gerror (const char *prefix, GError *error) G_GNUC_NORETURN;
+
+static void
+lose (const char *str, ...)
+{
+  va_list args;
+
+  va_start (args, str);
+
+  vfprintf (stderr, str, args);
+  fputc ('\n', stderr);
+
+  va_end (args);
+
+  exit (1);
+}
+
+static void
+lose_gerror (const char *prefix, GError *error) 
+{
+  lose ("%s: %s", prefix, error->message);
+}
+
+void gaim_init(void) {
+  GError *error = NULL;
+
+  g_type_init ();
+
+  bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+  if (!bus) 
+    lose_gerror ("Couldn't connect to session bus", error);
+
+  gaim_proxy = dbus_g_proxy_new_for_name (bus,
+				    DBUS_SERVICE_GAIM,
+				    DBUS_PATH_GAIM,         
+				    DBUS_INTERFACE_GAIM);
+
+  if (!gaim_proxy)
+    lose_gerror ("Couldn't connect to the Gaim Service", error);
+}
+