00001 #ifndef __MIDIFILEREADER__ 00002 #define __MIDIFILEREADER__ 00003 00004 #include "OutPort.hxx" 00005 #include "MIDITypes.hxx" 00006 #include "MIDIFileIOConfig.hxx" 00007 #include "Processing.hxx" 00008 00009 namespace CLAM 00010 { 00011 class MIDIFileReader : public Processing 00012 { 00013 public: 00014 MIDIFileReader(); 00015 MIDIFileReader(const MIDIFileIOConfig& cfg); 00016 ~MIDIFileReader(); 00017 00018 bool Do(); 00019 bool Do(MIDISong& out); 00020 00021 const char * GetClassName() const {return "MIDIFileReader";} 00022 00023 inline const ProcessingConfig &GetConfig() const { return mConfig;} 00024 bool ConcreteConfigure(const ProcessingConfig& c); 00025 00026 private: 00027 MIDIFileIOConfig mConfig; 00028 OutPort<MIDISong> mOutput; 00029 00030 std::string GetEventName(TMIDIByte b); 00031 }; 00032 } 00033 00034 #endif 00035