00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00025 #include "cuf-global.h"
00026
00027 #ifndef _PLUGINS_MACROS_H_
00028 #define _PLUGINS_MACROS_H_
00029
00030
00031
00032
00033 #define __str(s) __strsub(s)
00034 #define __strsub(s) #s
00035
00036
00037
00038
00039 #define __cc(sa, sb) __ccsub(sa, sb)
00040 #define __ccsub(sa, sb) sa ## sb
00041 #define __cc3(sa, sb, sc) __cc3sub(sa, sb, sc)
00042 #define __cc3sub(sa, sb, sc) sa ## sb ## sc
00043
00044
00045
00046 #define __sub(s) s
00047
00048
00049
00050
00058 #define ptnstr __str(PLUGIN_TYPE_NAME)
00059
00067 #define plugin_register() \
00068 plugin_type_register (ptnstr, PLUGIN_TYPE_DESC, "plugin_" ptnstr "_info_get")
00069
00070
00071
00072
00078 #define PLUGIN_STRUCT \
00079 Plugin __cc (PLUGIN_NAME, _info) = {\
00080 NULL,\
00081 NULL,\
00082 __str (PLUGIN_NAME),\
00083 PLUGIN_DESC,\
00084 PLUGIN_CONFS_NUM,\
00085 PLUGIN_CONFS,\
00086 PLUGIN_FUNC_INIT,\
00087 PLUGIN_FUNC_CLEANUP,\
00088 &PLUGIN_REF\
00089 };
00090
00091
00097 #define PLUGIN_FUNC_INFO \
00098 Plugin *__cc3 (plugin_, PLUGIN_TYPE_NAME, _info_get) (void) {\
00099 return & __cc (PLUGIN_NAME, _info);\
00100 }\
00101
00102
00108 #define PLUGIN_STD \
00109 __sub (PLUGIN_STRUCT)\
00110 __sub (PLUGIN_FUNC_INFO)
00111
00112
00121 #define PCAddBool(n, d, def) \
00122 { n, d, PConfBool, (void *)#def, NULL, NULL }
00123
00132 #define PCAddChar(n, d, def) \
00133 { n, d, PConfChar, (void *)#def, NULL, NULL }
00134
00147 #define PCAddNum(n, d, t, min, max, s, def)\
00148 { n, d, PConf ## t, (void *)#min ":" #max ":" #s ":" #def, NULL, NULL }
00149
00158 #define PCAddString(n, d, def) \
00159 { n, d, PConfString, (void *)def, NULL, NULL }
00160
00172 #define PCAddEnum(n, d, l, def) \
00173 { n, d, PConfEnum, (void *)l ":" def, NULL, NULL }
00174
00175 #define pclen(p) (sizeof(p)/sizeof(PluginConfig))
00176
00186 #define pcdg(n, t) (*((t *)plugin_config_data_get (PLUGIN_CONFS_NUM, PLUGIN_CONFS, n)))
00187
00191 #define pcdgs(n) ((char *)plugin_config_data_get (PLUGIN_CONFS_NUM, PLUGIN_CONFS, n))
00192
00193
00194 #endif