diff options
Diffstat (limited to 'rotord/rotor.h')
| -rwxr-xr-x | rotord/rotor.h | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/rotord/rotor.h b/rotord/rotor.h index 21161a2..18b1f19 100755 --- a/rotord/rotor.h +++ b/rotord/rotor.h @@ -139,7 +139,7 @@ namespace Rotor { }; class Node{ - public:; + public: virtual Node* clone(map<string,string> &_settings)=0; UUID uid; //every usable node has a UUID int id; @@ -299,6 +299,20 @@ namespace Rotor { float framerate; float duration; }; + class base_audio_processor { + public: + base_audio_processor(); + base_audio_processor(int _channels,int _bits); + virtual bool process_chunk(char *data,int num_samples); + int channels,bits; + }; + class audio_thumbnailer: public base_audio_processor { + public: + audio_thumbnailer(int _channels,int _bits) { + channels=_channels; + bits=_bits; + }; + }; class Render_context: public Poco::Task { //Poco task object //manages a 'patchbay' //high level interfaces for the wizard @@ -314,15 +328,16 @@ namespace Rotor { void cancel(); //interrupt locking process int make_preview(int nodeID, float time); //starts a frame preview - returns status code - how to retrieve? int load_graph(Poco::UUID uid); - bool load_graph(string &graph_filename); //should eventually be as above + bool load_graph(string &graph_filename); //should eventually be as above UUID save_graph(); //returns UUID of saved graph - bool load_audio(string &filename); + bool load_audio(string &filename,vector<base_audio_processor*> processors); Render_requirements get_requirements(); - int load_video(int num,string &filename); //can be performance or clip + int load_video(int num,string &filename); //can be performance or clip private: int state; - float progress; //for a locking process: audio analysis or rendering + float progress; //for a locking process: audio analysis or rendering + //thread only does one thing at once std::deque<int> work_queue; Poco::Mutex mutex; //lock for access from parent thread std::string audio_filename; |
