diff options
Diffstat (limited to 'engines/scumm/imuse_digi/dimuse.cpp')
-rw-r--r-- | engines/scumm/imuse_digi/dimuse.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/engines/scumm/imuse_digi/dimuse.cpp b/engines/scumm/imuse_digi/dimuse.cpp index 7e70268b12..c249dd57a9 100644 --- a/engines/scumm/imuse_digi/dimuse.cpp +++ b/engines/scumm/imuse_digi/dimuse.cpp @@ -188,9 +188,8 @@ void IMuseDigital::saveOrLoad(Serializer *ser) { track->mixerFlags |= Audio::Mixer::FLAG_LITTLE_ENDIAN; #endif - int32 streamBufferSize = track->iteration; track->stream2 = NULL; - track->stream = Audio::makeAppendableAudioStream(freq, track->mixerFlags, streamBufferSize); + track->stream = Audio::makeAppendableAudioStream(freq, track->mixerFlags); const int pan = (track->pan != 64) ? 2 * track->pan - 127 : 0; const int vol = track->vol / 1000; @@ -324,10 +323,10 @@ void IMuseDigital::callback() { if (_mixer->isReady()) { _mixer->setChannelVolume(track->handle, vol); _mixer->setChannelBalance(track->handle, pan); - track->stream->append(data, result); + track->stream->queueBuffer(data, result); track->regionOffset += result; - } - free(data); + } else + delete[] data; if (_sound->isEndOfRegion(track->soundHandle, track->curRegion)) { switchToNextRegion(track); |