diff options
Diffstat (limited to 'rotord/rotor.h')
| -rwxr-xr-x | rotord/rotor.h | 13 |
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; |
