From 81d4c56683303021aed05b9f5bf57abb1b154d8c Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Fri, 5 Apr 2013 17:05:38 +0100 Subject: making audio analysis adapter --- rotord/rotor.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'rotord/rotor.h') 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 &settings,string key){ if (settings.find(key)!=settings.end()) return settings[key]; else return "";}; + string check(map &settings,string key,string def=""){ if (settings.find(key)!=settings.end()) return settings[key]; else return def;}; void base_settings(map &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 &_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 &_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; -- cgit v1.2.3