CLAM-Development  1.4.0
MIDIFileWriter.hxx
Go to the documentation of this file.
1 #ifndef __MIDIFILEWRITER__
2 #define __MIDIFILEWRITER__
3 
4 #include <list>
5 #include "InPort.hxx"
6 #include "MIDIMelody.hxx"
7 #include "MIDITypes.hxx"
8 #include "MIDIFileIOConfig.hxx"
9 #include "Processing.hxx"
10 
11 namespace CLAM
12 {
13  class MIDIFileWriter : public Processing
14  {
15  public:
17  MIDIFileWriter(const MIDIFileIOConfig& cfg);
19 
20  bool Do();
21  bool Do(const MIDISong& in);
22 
23  const char * GetClassName() const {return "MIDIFileWriter";}
24 
25  inline const ProcessingConfig &GetConfig() const { return mConfig;}
26  bool ConcreteConfigure(const ProcessingConfig& c);
27 
28  private:
29  MIDIFileIOConfig mConfig;
30  InPort<MIDISong> mInput;
31  std::list<MIDIEvent> mEventList;
32 
33  void BuildEventList(const MIDITrack& trk);
34  };
35 }
36 
37 #endif
38