comparison libpurple/plugins/debug_example.c @ 19953:0715328a0be3

Add the debug example plugin
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sat, 08 Sep 2007 04:16:05 +0000
parents
children bdffee131b80
comparison
equal deleted inserted replaced
19952:9500ab76c8dc 19953:0715328a0be3
1 /*
2 * Debug Example Plugin
3 *
4 * Copyright (C) 2007, John Bailey <rekkanoryo@pidgin.im>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 * 02111-1301, USA.
20 *
21 */
22
23 #ifdef HAVE_CONFIG_H
24 # include <config.h>
25 #endif
26
27 /* We're including glib.h again for the gboolean type. */
28 #include <glib.h>
29
30 /* This is the required definition of PURPLE_PLUGINS as required for a plugin,
31 * but we protect it with an #ifndef because config.h may define it for us
32 * already and this would cause an unneeded compiler warning. */
33 #ifndef PURPLE_PLUGINS
34 # define PURPLE_PLUGINS
35 #endif
36
37 /* Here we're including the necessary libpurple headers for this plugin. Note
38 * that we're including them in alphabetical order. This isn't necessary but
39 * we do this throughout our source for consistency. */
40 #include "debug.h"
41 #include "plugin.h"
42 #include "version.h"
43
44 /* It's more convenient to type PLUGIN_ID all the time than it is to type
45 * "core-debugexample", so define this convenience macro. */
46 #define PLUGIN_ID "core-debugexample"
47
48 /* Common practice in third-party plugins is to define convenience macros for
49 * many of the fields of the plugin info struct, so we'll do that for the
50 * purposes of demonstration. */
51 #define PLUGIN_AUTHOR "John Bailey <rekkanoryo@ipidgin.im>"
52
53 /* As we've covered before, libpurple calls this function, if present, when it
54 * loads the plugin. Here we're using it to show off the capabilities of the
55 * debug API and just blindly returning TRUE to tell libpurple it's safe to
56 * continue loading. */
57 static gboolean
58 plugin_load(PurplePlugin *plugin)
59 {
60 /* Define these for convenience--we're just using them to show the
61 * similarities of the debug functions to the standard printf(). */
62 gint i = 256;
63 gfloat f = 512.1024;
64 const gchar *s = "example string";
65
66 /* Introductory message */
67 purple_debug_info(PLUGIN_ID,
68 "Called plugin_load. Beginning debug demonstration\n");
69
70 /* Show off the debug API a bit */
71 purple_debug_misc(PLUGIN_ID,
72 "MISC level debug message. i = %d, f = %f, s = %s\n", i, f, s);
73
74 purple_debug_info(PLUGIN_ID,
75 "INFO level debug message. i = %d, f = %f, s = %s\n", i, f, s);
76
77 purple_debug_warning(PLUGIN_ID,
78 "WARNING level debug message. i = %d, f = %f, s = %s\n", i, f, s);
79
80 purple_debug_error(PLUGIN_ID,
81 "ERROR level debug message. i = %d, f = %f, s = %s\n", i, f, s);
82
83 purple_debug_fatal(PLUGIN_ID,
84 "FATAL level debug message. i = %d, f = %f, s = %s\n", i, f, s);
85
86 /* Now just return TRUE to tell libpurple to finish loading. */
87 return TRUE;
88 }
89
90 static PurplePluginInfo info = {
91 PURPLE_PLUGIN_MAGIC, /* magic number */
92 PURPLE_MAJOR_VERSION, /* purple major */
93 PURPLE_MINOR_VERSION, /* purple minor */
94 PURPLE_PLUGIN_STANDARD, /* plugin type */
95 NULL, /* UI requirement */
96 0, /* flags */
97 NULL, /* dependencies */
98 PURPLE_PRIORITY_DEFAULT, /* priority */
99
100 PLUGIN_ID, /* id */
101 "Debug API Example", /* name */
102 VERSION, /* version */
103 "Debug API Example", /* summary */
104 "Debug API Example", /* description */
105 PLUGIN_AUTHOR, /* author */
106 "http://pidgin.im", /* homepage */
107
108 plugin_load, /* load */
109 NULL, /* unload */
110 NULL, /* destroy */
111
112 NULL, /* ui info */
113 NULL, /* extra info */
114 NULL, /* prefs info */
115 NULL, /* actions */
116 NULL, /* reserved */
117 NULL, /* reserved */
118 NULL, /* reserved */
119 NULL /* reserved */
120 };
121
122 static void
123 init_plugin(PurplePlugin *plugin)
124 {
125 }
126
127 PURPLE_INIT_PLUGIN(debugexample, init_plugin, info)
128