00001 /******************************************************************************* 00002 * Recorder.h (JackFX) 00003 ******************************************************************************/ 00004 00005 #ifndef _RECORDER_H_ 00006 #define _RECORDER_H_ 00007 00008 #include "common.h" 00009 #include "JackFX.h" 00010 00022 class Recorder : public ISoundElement 00023 { 00024 public: 00027 Recorder(); 00028 00031 ~Recorder(); 00032 00033 void Process(jack_nframes_t count); 00034 00035 void Clear(); 00036 void Play(); 00037 void Loop(bool looping); 00038 void Stop(); 00039 void Record(); 00040 00041 protected: 00042 private: 00043 bool m_recording; 00044 bool m_playing; 00045 bool m_looping; 00046 00047 list<SoundFrame*> m_frames; 00048 list<SoundFrame*>::iterator m_location; 00049 }; 00050 00051 #endif