libpurple/plugins/dbus-example.c

changeset 39348
575c76975ad6
parent 39347
46b9615d1b08
child 39349
c28414267b99
--- a/libpurple/plugins/dbus-example.c	Tue Oct 02 16:23:35 2018 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- *   This is an example of a purple dbus plugin.  After enabling this
- *   plugin, the following commands should work from the command line:
- *
- *   prompt$ purple-send DbusExampleGetHelloObject
- *
- *     returns, say: int32 74
- *
- *   prompt$ purple-send DbusExampleGetText int32:74
- *
- *     returns: string "Hello."
- *
- *   prompt$ purple-send DbusExampleSetText int32:74 string:Bye!
- *
- *   prompt$ purple-send DbusExampleGetText int32:74
- *
- *     returns: string "Bye!"
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here.  Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
- */
-
-/* When writing a third-party plugin, do not include libpurple's internal.h
- * included below. This file is for internal libpurple use only. We're including
- * it here for our own convenience. */
-#include "internal.h"
-
-/* This file defines PURPLE_PLUGINS and includes all the libpurple headers */
-#include <purple.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define DBUS_API_SUBJECT_TO_CHANGE
-#include "dbus-maybe.h"
-#include "dbus-bindings.h"
-
-typedef struct {
-	char *text;
-} PurpleText;
-
-/* This makes the structure PurpleText visible to the purple-dbus type
-   system.  It defines PurpleText as a type with no parent.  From now
-   on, we will be able to register pointers to structures of this
-   type.  You to dbus-define types you want to be directly accessible
-   by external applications. */
-PURPLE_DBUS_DEFINE_TYPE(PurpleText)
-
-/* Here we make four functions accessible to other applications by
-   DBus.  These functions can access types defined in purple proper
-   (PurpleBuddy) as well as the types defined in the plugin (PurpleText).  */
-DBUS_EXPORT PurpleText* dbus_example_get_hello_object(void);
-DBUS_EXPORT void dbus_example_set_text(PurpleText *obj, const char *text);
-DBUS_EXPORT const char *dbus_example_get_text(PurpleText *obj);
-DBUS_EXPORT const char *dbus_example_get_buddy_name(PurpleBuddy *buddy);
-
-/* This file has been generated by the #dbus-analize-functions.py
-   script.  It contains dbus wrappers for the four functions declared
-   above. */
-#include "dbus-example-bindings.ch"
-
-/* This is the PurpleText object we want to make publicly visible. */
-static PurpleText hello;
-
-/* Here come the definitions of the four exported functions. */
-DBUS_EXPORT PurpleText* dbus_example_get_hello_object(void)
-{
-	return &hello;
-}
-
-DBUS_EXPORT void dbus_example_set_text(PurpleText *obj, const char *text)
-{
-	if (obj != NULL) {
-		g_free(obj->text);
-		obj->text = g_strdup(text);
-	}
-}
-
-DBUS_EXPORT const char *dbus_example_get_text(PurpleText *obj)
-{
-	if (obj != NULL)
-		return obj->text;
-	else
-		return NULL;
-}
-
-DBUS_EXPORT const char *dbus_example_get_buddy_name(PurpleBuddy *buddy)
-{
-	return purple_buddy_get_name(buddy);
-}
-
-/* And now standard plugin stuff */
-
-static PurplePluginInfo *
-plugin_query(GError **error)
-{
-	const gchar * const authors[] = {
-		"Piotr Zielinski (http://cl.cam.ac.uk/~pz215)",
-		NULL
-	};
-
-	return purple_plugin_info_new(
-		"id",           "dbus-example",
-		"name",         N_("DBus Example"),
-		"version",      DISPLAY_VERSION,
-		"category",     N_("Example"),
-		"summary",      N_("DBus Plugin Example"),
-		"description",  N_("DBus Plugin Example"),
-		"authors",      authors,
-		"website",      PURPLE_WEBSITE,
-		"abi-version",  PURPLE_ABI_VERSION,
-		NULL
-	);
-}
-
-static gboolean
-plugin_load(PurplePlugin *plugin, GError **error)
-{
-	PURPLE_DBUS_RETURN_FALSE_IF_DISABLED(plugin);
-
-	/* First, we have to register our four exported functions with the
-	   main purple dbus loop.  Without this statement, the purple dbus
-	   code wouldn't know about our functions. */
-	PURPLE_DBUS_REGISTER_BINDINGS(plugin);
-
-	/* Then, we register the hello object of type PurpleText.  Note that
-	   pointer registrations / unregistrations are completely dynamic;
-	   they don't have to be made when the plugin is loaded /
-	   unloaded.  Without this statement the dbus purple code wouldn't
-	   know about the hello object.  */
-	PURPLE_DBUS_REGISTER_POINTER(&hello, PurpleText);
-
-	hello.text = g_strdup("Hello.");
-
-	return TRUE;
-}
-
-
-static gboolean
-plugin_unload(PurplePlugin *plugin, GError **error)
-{
-	g_free(hello.text);
-
-	/* It is necessary to unregister all pointers registered by the module. */
-	PURPLE_DBUS_UNREGISTER_POINTER(&hello);
-
-	return TRUE;
-}
-
-PURPLE_PLUGIN_INIT(dbus_example, plugin_query, plugin_load, plugin_unload);

mercurial