aboutsummaryrefslogtreecommitdiff
path: root/queen/music.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2004-10-22 23:44:08 +0000
committerEugene Sandulenko2004-10-22 23:44:08 +0000
commit2c76a8e024565f8e35745f5b15ff1e63b8963805 (patch)
treeb86db26ea4aa14f8f3ed0c7c4e69b57c7a4f80ec /queen/music.cpp
parentc8495dbf23b88cd5a1bcfc8aea7d2ba37096bd90 (diff)
downloadscummvm-rg350-2c76a8e024565f8e35745f5b15ff1e63b8963805.tar.gz
scummvm-rg350-2c76a8e024565f8e35745f5b15ff1e63b8963805.tar.bz2
scummvm-rg350-2c76a8e024565f8e35745f5b15ff1e63b8963805.zip
Support MT-32 emu.
svn-id: r15657
Diffstat (limited to 'queen/music.cpp')
-rw-r--r--queen/music.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/queen/music.cpp b/queen/music.cpp
index a265cca85e..98054a33d6 100644
--- a/queen/music.cpp
+++ b/queen/music.cpp
@@ -42,7 +42,7 @@ static const byte mt32_to_gm[128] = {
47, 117, 127, 118, 118, 116, 115, 119, 115, 112, 55, 124, 123, 0, 14, 117 // 7x
};
- MusicPlayer::MusicPlayer(MidiDriver *driver, byte *data, uint32 size) : _driver(driver), _isPlaying(false), _looping(false), _randomLoop(false), _masterVolume(192), _queuePos(0), _musicData(data), _musicDataSize(size) {
+ MusicPlayer::MusicPlayer(MidiDriver *driver, byte *data, uint32 size) : _driver(driver), _isPlaying(false), _looping(false), _randomLoop(false), _masterVolume(192), _queuePos(0), _musicData(data), _musicDataSize(size), _passThrough(false) {
memset(_channel, 0, sizeof(_channel));
queueClear();
_lastSong = _currentSong = 0;
@@ -123,6 +123,11 @@ static const byte mt32_to_gm[128] = {
}
void MusicPlayer::send(uint32 b) {
+ if (_passThrough) {
+ _driver->send(b);
+ return;
+ }
+
byte channel = (byte)(b & 0x0F);
if ((b & 0xFFF0) == 0x07B0) {
// Adjust volume changes by master volume