diff options
Diffstat (limited to 'vamphost/src/ofxVamphost.h')
| -rw-r--r-- | vamphost/src/ofxVamphost.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/vamphost/src/ofxVamphost.h b/vamphost/src/ofxVamphost.h new file mode 100644 index 0000000..2eb6a83 --- /dev/null +++ b/vamphost/src/ofxVamphost.h @@ -0,0 +1,49 @@ +#ifndef OFXVAMPHOST_H_ +#define OFXVAMPHOST_H_ + +#include <vamp-hostsdk/PluginHostAdapter.h> +#include <vamp-hostsdk/PluginInputDomainAdapter.h> +#include <vamp-hostsdk/PluginLoader.h> + +#include <map> +#include <math.h> + +using Vamp::Plugin; +using Vamp::PluginHostAdapter; +using Vamp::RealTime; +using Vamp::HostExt::PluginLoader; +using Vamp::HostExt::PluginWrapper; +using Vamp::HostExt::PluginInputDomainAdapter; + +#define HOST_VERSION "1.5" + +class Vamphost{ + //can load any vamp analysis plugin and present its data with a unified interface + public: + bool init(const std::string &soname,const std::string &id,const int &_channels,const int &_bits,const int &_samples,const int &_rate,const int &_outputNo=0,const std::string &_output=""); + void process_frame(unsigned char *data,int samples_in_frame); + void cleanup(); + + std::map<float,int> features; + //map<time,featureNo> + //this is the best way to store features: because map allows to search for the key below and above the present time + + private: + PluginLoader *loader; + PluginLoader::PluginKey key; + Plugin *plugin; + RealTime rt; + int channels,bits,samples,rate; + int bytes,stride; + float scale; + int blockSize,stepSize,overlapSize,finalStepsRemaining,currentStep,outputNo; + int in_block,blocks_processed; + std::string output; + float **plugbuf; + + int featureNo; + +}; + +#endif + |
