#ifndef _MIDISEQ_SEQUENCER_HPP_ #define _MIDISEQ_SEQUENCER_HPP_ #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _MIDISEQ_MIDIBLOCK_HPP_ #include #endif #ifndef _MIDISEQ_MIDIOUTDEVICE_HPP_ #include #endif class MIDISequencer { public: MIDISequencer(); virtual ~MIDISequencer(); void setData(MIDIBlock &midiData); bool sequence(MIDIOutputDevice &midiDevice); private: SmartPointer mMIDIData; DWORD mTrackIndices[MIDIBlock::MaxTracks]; }; inline void MIDISequencer::setData(MIDIBlock &midiData) { mMIDIData=&midiData; ::memset(&mTrackIndices,0,sizeof(mTrackIndices)); } #endif