XMMS2
src/include/xmms/xmms_plugin.h
Go to the documentation of this file.
00001 /*  XMMS2 - X Music Multiplexer System
00002  *  Copyright (C) 2003-2011 XMMS2 Team
00003  *
00004  *  PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
00005  *
00006  *  This library is free software; you can redistribute it and/or
00007  *  modify it under the terms of the GNU Lesser General Public
00008  *  License as published by the Free Software Foundation; either
00009  *  version 2.1 of the License, or (at your option) any later version.
00010  *
00011  *  This library is distributed in the hope that it will be useful,
00012  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  *  Lesser General Public License for more details.
00015  */
00016 
00017 
00018 
00019 
00020 #ifndef __XMMS_PLUGIN_H__
00021 #define __XMMS_PLUGIN_H__
00022 
00023 #include <glib.h>
00024 #include <xmmsc/xmmsc_idnumbers.h>
00025 #include "xmms_configuration.h"
00026 
00027 #define XMMS_PLUGIN_SHORTNAME_MAX_LEN 32
00028 
00029 G_BEGIN_DECLS
00030 
00031 typedef struct xmms_plugin_desc_St {
00032     xmms_plugin_type_t type;
00033     gint api_version;
00034     gchar shortname[XMMS_PLUGIN_SHORTNAME_MAX_LEN];
00035     const gchar *name;
00036     const gchar *version;
00037     const gchar *description;
00038     gboolean (*setup_func)(gpointer);
00039 } xmms_plugin_desc_t;
00040 
00041 #define XMMS_PLUGIN(type, api_ver, shname, name, ver, desc, setupfunc)  \
00042     xmms_plugin_desc_t XMMS_PLUGIN_DESC = {             \
00043         type,                           \
00044         api_ver,                        \
00045         shname,                         \
00046         name,                           \
00047         ver,                            \
00048         desc,                           \
00049         setupfunc                       \
00050     };
00051         
00052 G_END_DECLS
00053 
00054 #endif /* __XMMS_PLUGIN_H__ */