diff options
author | Travis Howell | 2006-10-23 01:37:59 +0000 |
---|---|---|
committer | Travis Howell | 2006-10-23 01:37:59 +0000 |
commit | 99d6e6db5ce2c0fcb8c3884d7b834ab6728daa66 (patch) | |
tree | de10147775e39e456d316bfc0f822cdc30bb71d0 /engines/agos/res_snd.cpp | |
parent | f0a162e8bbfd06340ec63348f5fcfdaca7349bc1 (diff) | |
download | scummvm-rg350-99d6e6db5ce2c0fcb8c3884d7b834ab6728daa66.tar.gz scummvm-rg350-99d6e6db5ce2c0fcb8c3884d7b834ab6728daa66.tar.bz2 scummvm-rg350-99d6e6db5ce2c0fcb8c3884d7b834ab6728daa66.zip |
Add patch to make ProTracker a subclass of AudioStream, from madmoose
svn-id: r24465
Diffstat (limited to 'engines/agos/res_snd.cpp')
-rw-r--r-- | engines/agos/res_snd.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/agos/res_snd.cpp b/engines/agos/res_snd.cpp index 56d88351f0..f7b917b62c 100644 --- a/engines/agos/res_snd.cpp +++ b/engines/agos/res_snd.cpp @@ -30,6 +30,7 @@ #include "agos/agos.h" #include "agos/vga.h" +#include "sound/audiostream.h" #include "sound/mididrv.h" #include "sound/mods/protracker.h" @@ -118,8 +119,7 @@ void AGOSEngine::loadMusic(uint music) { if (getPlatform() == Common::kPlatformAtariST) { // TODO: Add support for music format used by Elvira 2 } else if (getPlatform() == Common::kPlatformAmiga) { - assert(_modPlayer); - _modPlayer->stop(); + _mixer->stopHandle(_modHandle); char filename[15]; File f; @@ -134,8 +134,10 @@ void AGOSEngine::loadMusic(uint music) { error("loadMusic: Can't load module from '%s'", filename); } + Audio::AudioStream *audioStream; if (!(getGameType() == GType_ELVIRA1 && getFeatures() & GF_DEMO) && getFeatures() & GF_CRUNCHED) { + uint srcSize = f.size(); byte *srcBuf = (byte *)malloc(srcSize); if (f.read(srcBuf, srcSize) != srcSize) @@ -147,11 +149,12 @@ void AGOSEngine::loadMusic(uint music) { free(srcBuf); Common::MemoryReadStream stream(dstBuf, dstSize); - _modPlayer->loadModuleStream(stream); + audioStream = Audio::makeProtrackerStream(&stream, _mixer->getOutputRate()); } else { - _modPlayer->loadModuleStream(f); + audioStream = Audio::makeProtrackerStream(&f, _mixer->getOutputRate()); } - _modPlayer->start(); + + _mixer->playInputStream(Audio::Mixer::kMusicSoundType, &_modHandle, audioStream); } else if (getGameType() == GType_SIMON2) { midi.stop(); _gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music - 1], SEEK_SET); |