diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugger.cpp | 2 | ||||
| -rw-r--r-- | src/plugger.h | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/plugger.cpp b/src/plugger.cpp index 8b13789..f3bfa67 100644 --- a/src/plugger.cpp +++ b/src/plugger.cpp | |||
| @@ -1 +1 @@ | |||
| #include "plugger.h" | |||
diff --git a/src/plugger.h b/src/plugger.h index 57c2c0b..4faca92 100644 --- a/src/plugger.h +++ b/src/plugger.h | |||
| @@ -55,6 +55,22 @@ extern "C" { \ | |||
| 55 | (void (*)( void * ))(destroy ##classname) }; \ | 55 | (void (*)( void * ))(destroy ##classname) }; \ |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | #define PluginInterface3( structname, pluginname, classname, baseclass, name, ver, rev ) \ | ||
| 59 | extern "C" { \ | ||
| 60 | baseclass *create ##classname() \ | ||
| 61 | { \ | ||
| 62 | return new classname(); \ | ||
| 63 | } \ | ||
| 64 | void destroy ##classname( baseclass *pCls ) \ | ||
| 65 | { \ | ||
| 66 | delete pCls; \ | ||
| 67 | } \ | ||
| 68 | PluginInfo structname = { \ | ||
| 69 | #pluginname, name, ver, rev, \ | ||
| 70 | (void *(*)())(create ##classname), \ | ||
| 71 | (void (*)( void * ))(destroy ##classname) }; \ | ||
| 72 | } | ||
| 73 | |||
| 58 | template<class T> | 74 | template<class T> |
| 59 | class Plugger | 75 | class Plugger |
| 60 | { | 76 | { |
