diff options
Diffstat (limited to 'engines/queen/music.cpp')
-rw-r--r-- | engines/queen/music.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/engines/queen/music.cpp b/engines/queen/music.cpp index 93d6527622..600956ada5 100644 --- a/engines/queen/music.cpp +++ b/engines/queen/music.cpp @@ -23,6 +23,7 @@ #include "common/config-manager.h" #include "common/events.h" +#include "queen/midiadlib.h" #include "queen/music.h" #include "queen/queen.h" #include "queen/resource.h" @@ -33,8 +34,6 @@ namespace Queen { -extern MidiDriver *C_Player_CreateAdLibMidiDriver(Audio::Mixer *); - MidiMusic::MidiMusic(QueenEngine *vm) : _isPlaying(false), _isLooping(false), _randomLoop(false), _masterVolume(192), @@ -69,7 +68,7 @@ MidiMusic::MidiMusic(QueenEngine *vm) // if (READ_LE_UINT16(_musicData + 2) != infoOffset) { // defaultAdLibVolume = _musicData[infoOffset]; // } - _driver = C_Player_CreateAdLibMidiDriver(vm->_mixer); + _driver = new AdLibMidiDriver(g_system->getMixer()); } else { _driver = MidiDriver::createMidi(dev); if (_nativeMT32) { @@ -117,6 +116,9 @@ void MidiMusic::setVolume(int volume) { if (_channelsTable[i]) _channelsTable[i]->volume(_channelsVolume[i] * _masterVolume / 255); } + + if (_adlib) + static_cast<AdLibMidiDriver*>(_driver)->setVolume(volume); } void MidiMusic::playSong(uint16 songNum) { |