summaryrefslogtreecommitdiff
path: root/vamphost/src/ofxVamphost.h
diff options
context:
space:
mode:
Diffstat (limited to 'vamphost/src/ofxVamphost.h')
-rw-r--r--vamphost/src/ofxVamphost.h49
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
+