Mercurial > pidgin
diff libpurple/purple-client.c @ 15925:5b065c7ff5cd
merge of '04076a446ca2bc48c37d00b8b255bc1311b6c51c'
and '8a20c90142cacba36041509da3a0e11499df3ebc'
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Mon, 26 Mar 2007 01:55:33 +0000 |
parents | c6e563dfaa7a |
children | d4464c354346 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-client.c Mon Mar 26 01:55:33 2007 +0000 @@ -0,0 +1,81 @@ +#define DBUS_API_SUBJECT_TO_CHANGE + +#include <dbus/dbus-glib.h> +#include <stdio.h> +#include <stdlib.h> + +#include "dbus-purple.h" +#include "purple-client-bindings.h" + +static DBusGConnection *bus; +static DBusGProxy *purple_proxy; + +static GList *garray_int_to_glist(GArray *array) +{ + GList *list = NULL; + int i; + + for (i = 0; i < array->len; i++) + list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); + + g_array_free(array, TRUE); + return list; +} + +static GSList *garray_int_to_gslist(GArray *array) +{ + GSList *list = NULL; + int i; + + for (i = 0; i < array->len; i++) + list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); + + g_array_free(array, TRUE); + return list; +} + +#include "purple-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 purple_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); + + purple_proxy = dbus_g_proxy_new_for_name (bus, + DBUS_SERVICE_PURPLE, + DBUS_PATH_PURPLE, + DBUS_INTERFACE_PURPLE); + + if (!purple_proxy) + lose_gerror ("Couldn't connect to the Purple Service", error); +} +