From b76c0af2f4fe9cafeafdde70867e159e076b2752 Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Fri, 12 Aug 2011 21:33:45 +1000 Subject: CGE: Work on implementing MIDI music playback. Music playback is now sort of working, but it seems like only a beat track of the MIDI is getting played --- engines/cge/sound.h | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'engines/cge/sound.h') diff --git a/engines/cge/sound.h b/engines/cge/sound.h index 67b16fc888..9f7d20957e 100644 --- a/engines/cge/sound.h +++ b/engines/cge/sound.h @@ -30,14 +30,19 @@ #include "cge/wav.h" #include "cge/snddrv.h" -#include "cge/cge.h" #include "audio/audiostream.h" #include "audio/decoders/wave.h" #include "audio/fmopl.h" +#include "audio/mididrv.h" +#include "audio/midiparser.h" +#include "audio/midiplayer.h" #include "audio/mixer.h" +#include "common/memstream.h" namespace CGE { +class CGEEngine; + class Sound { public: SmpInfo _smpinf; @@ -74,8 +79,25 @@ public: DataCk *operator[](int ref); }; -void loadMidi(int ref); -void killMidi(); +class MusicPlayer { +private: + MidiDriver *_driver; + MidiParser *_midiParser; + byte *_data; + int _dataSize; + + // Start MIDI File + void sndMidiStart(); + + // Stop MIDI File + void sndMidiStop(); +public: + MusicPlayer(); + ~MusicPlayer(); + + void loadMidi(int ref); + void killMidi(); +}; } // End of namespace CGE -- cgit v1.2.3