00001
00002
00003
00004
00005
00012 #ifndef IPPLUGIN_H
00013 #define IPPLUGIN_H
00014
00015 #ifdef HAVE_CONFIG_H
00016 #include <config.h>
00017 #endif
00018
00019 #include <dlfcn.h>
00020 #include <assert.h>
00021 #include <string.h>
00022
00023 #include "improv_plugin.h"
00024 #include "plugin.h"
00025
00026 class ipPlugin : public Plugin
00027 {
00028 public:
00030 ipPlugin(const char* plugin_file);
00032 ~ipPlugin();
00033
00035 pluginReturnType processId(int id, Picture **in, Picture *out, float *params, void *result);
00037 void printInfo(void);
00039 bool isReady(void);
00041 void listOps(void);
00043 unsigned int getNumOps(void);
00045 bool getOpInfo(int id, char** category, char** name, unsigned int* num_inputs, unsigned int* num_params, char*** param_names, pluginResultType *resultType, size_t *resultSize);
00047 int getUniqueId(void);
00049 const char *getFileName(void);
00050
00051 private:
00053 const char* plugin_file;
00055 void* phandle;
00057 IP_Handle* iphandle;
00059 IP_Descriptor* desc;
00061 int init_plugin(void);
00063 IP_Descriptor* get_plugin_desc(void);
00064
00065 };
00066
00067 #endif