00001 /* Copyright 2009 (c) ENSI de Bourges 00002 * 88 boulevard Lahitolle, 18020 Bourges Cedex, France 00003 * 00004 * This program is free software: you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation, either version 3 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00025 #ifndef __PLUGINS_H 00026 #define __PLUGINS_H 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 00031 #include <glib.h> 00032 00033 00034 00041 typedef struct { 00042 gchar *name; 00043 void *handle; 00044 } plugin_t; 00045 00046 00047 00056 GList *plugin_list_new (const gchar *); 00057 00058 00059 00067 void plugin_list_free (GList *list); 00068 00069 00070 00081 plugin_t *plugin_new (const gchar *, const gchar *); 00082 00083 00084 00096 void *plugin_get_symbol (plugin_t *, const char *, gboolean); 00097 00098 00099 00106 void plugin_free (plugin_t *); 00107 00108 00109 00119 plugin_t *plugin_list_find_custom_list (GList *, const gchar *); 00120 00121 00130 plugin_t *plugin_list_find (const gchar *); 00131 00132 00133 00142 gboolean plugin_exists (const gchar *); 00143 00144 00145 00154 gchar *plugin_get_display_name (plugin_t *); 00155 00156 00157 00166 GList *plugin_get_time_periods (plugin_t *); 00167 #ifdef __cplusplus 00168 } 00169 #endif 00170 #endif