00001 #ifndef __MIDIFILEWRITER__ 00002 #define __MIDIFILEWRITER__ 00003 00004 #include <list> 00005 #include "InPort.hxx" 00006 #include "MIDIMelody.hxx" 00007 #include "MIDITypes.hxx" 00008 #include "MIDIFileIOConfig.hxx" 00009 #include "Processing.hxx" 00010 00011 namespace CLAM 00012 { 00013 class MIDIFileWriter : public Processing 00014 { 00015 public: 00016 MIDIFileWriter(); 00017 MIDIFileWriter(const MIDIFileIOConfig& cfg); 00018 ~MIDIFileWriter(); 00019 00020 bool Do(); 00021 bool Do(const MIDISong& in); 00022 00023 const char * GetClassName() const {return "MIDIFileWriter";} 00024 00025 inline const ProcessingConfig &GetConfig() const { return mConfig;} 00026 bool ConcreteConfigure(const ProcessingConfig& c); 00027 00028 private: 00029 MIDIFileIOConfig mConfig; 00030 InPort<MIDISong> mInput; 00031 std::list<MIDIEvent> mEventList; 00032 00033 void BuildEventList(const MIDITrack& trk); 00034 }; 00035 } 00036 00037 #endif 00038