summaryrefslogtreecommitdiff
path: root/rotord/rotor.h
diff options
context:
space:
mode:
Diffstat (limited to 'rotord/rotor.h')
-rwxr-xr-xrotord/rotor.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/rotord/rotor.h b/rotord/rotor.h
index 11e1170..105ed98 100755
--- a/rotord/rotor.h
+++ b/rotord/rotor.h
@@ -183,7 +183,7 @@ namespace Rotor {
string type;
string output_type;
string ID;
- string check(map<string,string> &settings,string key){ if (settings.find(key)!=settings.end()) return settings[key]; else return "";};
+ string check(map<string,string> &settings,string key,string def=""){ if (settings.find(key)!=settings.end()) return settings[key]; else return def;};
void base_settings(map<string,string> &settings) {
description=check(settings,"description");
type=check(settings,"type");
@@ -225,7 +225,8 @@ namespace Rotor {
class Base_audio_processor: public Signal_node {
public:
virtual int process_frame(uint8_t *data,int samples)=0;
- virtual void init(int _channels,int _bits,int _samples,int _rate)=0;
+ virtual bool init(int _channels,int _bits,int _samples,int _rate)=0;
+ virtual void cleanup()=0;
int channels,bits,samples,rate;
};
//actual nodes-------------------------------------------------
@@ -236,9 +237,11 @@ namespace Rotor {
base_settings(settings);
soname=check(settings,"soname");
id=check(settings,"id");
+ outputNo=ofToInt(check(settings,"output","0"));
};
Audio_analysis* clone(map<string,string> &_settings) { return new Audio_analysis(_settings);};
- void init(int _channels,int _bits,int _samples,int _rate);
+ bool init(int _channels,int _bits,int _samples,int _rate);
+ void cleanup();
int process_frame(uint8_t *data,int samples_in_frame);
float get_output(const float &time) {
float t=time;
@@ -246,6 +249,7 @@ namespace Rotor {
}
private:
string soname,id;
+ int outputNo;
vampHost::Analyser analyser;
};
class Signal_divide: public Signal_node {
@@ -375,7 +379,8 @@ namespace Rotor {
delete[] data;
};
Audio_thumbnailer* clone(map<string,string> &_settings) { return new Audio_thumbnailer();};
- void init(int _channels,int _bits,int _samples,int _rate);
+ bool init(int _channels,int _bits,int _samples,int _rate);
+ void cleanup(){};
int process_frame(uint8_t *data,int samples_in_frame);
string print();
uint8_t *data;