aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/midi.h
diff options
context:
space:
mode:
authorMax Horn2011-03-24 16:40:11 +0100
committerMax Horn2011-03-24 16:46:47 +0100
commite76a8a8eb6c68b1ffc048385c41cd1b542623449 (patch)
tree2b0882cac4df41bc065e4f9568560f7e32447597 /engines/m4/midi.h
parent94e7a231fe7a975886ba74bc1670cb4a34619316 (diff)
downloadscummvm-rg350-e76a8a8eb6c68b1ffc048385c41cd1b542623449.tar.gz
scummvm-rg350-e76a8a8eb6c68b1ffc048385c41cd1b542623449.tar.bz2
scummvm-rg350-e76a8a8eb6c68b1ffc048385c41cd1b542623449.zip
M4: Change MidiPlayer to derive from Audio::MidiPlayer
Also fix the _driver double delete regression I recently introduced
Diffstat (limited to 'engines/m4/midi.h')
-rw-r--r--engines/m4/midi.h27
1 files changed, 4 insertions, 23 deletions
diff --git a/engines/m4/midi.h b/engines/m4/midi.h
index cc3f62621d..e1f92cd4b6 100644
--- a/engines/m4/midi.h
+++ b/engines/m4/midi.h
@@ -28,32 +28,22 @@
#ifndef M4_MIDI_H
#define M4_MIDI_H
-#include "audio/mididrv.h"
-#include "audio/midiparser.h"
-#include "common/mutex.h"
+#include "audio/midiplayer.h"
namespace M4 {
-class MidiPlayer : public MidiDriver_BASE {
+class MidiPlayer : public Audio::MidiPlayer {
public:
- MidiPlayer(MadsM4Engine *vm, MidiDriver *driver);
+ MidiPlayer(MadsM4Engine *vm);
~MidiPlayer();
- bool isPlaying() const { return _isPlaying; }
-
- void setVolume(int volume);
- int getVolume() const { return _masterVolume; }
-
- void setNativeMT32(bool b) { _nativeMT32 = b; }
- bool hasNativeMT32() const{ return _nativeMT32; }
void playMusic(const char *name, int32 vol, bool loop, int32 trigger, int32 scene);
- void stopMusic();
+ virtual void stop();
void setGM(bool isGM) { _isGM = isGM; }
// MidiDriver_BASE interface implementation
virtual void send(uint32 b);
- virtual void metaEvent(byte type, byte *data, uint16 length);
protected:
static void onTimer(void *data);
@@ -61,23 +51,14 @@ protected:
MadsM4Engine *_vm;
byte *_midiData;
- MidiChannel *_channel[16];
- MidiDriver *_driver;
- MidiParser *_parser;
- byte _channelVolume[16];
- bool _nativeMT32;
bool _isGM;
- bool _isPlaying;
bool _randomLoop;
- byte _masterVolume;
byte *_musicData;
uint16 *_buf;
size_t _musicDataSize;
- Common::Mutex _mutex;
-
byte *convertHMPtoSMF(byte *data, uint32 inSize, uint32 &outSize);
};