mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-01 16:35:20 +00:00
Switch SCUMM from AppendableAudioStream to QueuingAudioStream
svn-id: r47183
This commit is contained in:
parent
f720d99b0a
commit
c489259353
@ -202,7 +202,7 @@ void IMuseDigital::saveOrLoad(Serializer *ser) {
|
||||
track->mixerFlags |= kFlagLittleEndian;
|
||||
#endif
|
||||
|
||||
track->stream = Audio::makeAppendableAudioStream(freq, makeMixerFlags(track->mixerFlags));
|
||||
track->stream = Audio::makeQueuingAudioStream(freq, track->mixerFlags & kFlagStereo);
|
||||
|
||||
_mixer->playInputStream(track->getType(), &track->mixChanHandle, track->stream, -1, track->getVol(), track->getPan());
|
||||
_mixer->pauseHandle(track->mixChanHandle, true);
|
||||
@ -344,7 +344,7 @@ void IMuseDigital::callback() {
|
||||
curFeedSize = feedSize;
|
||||
|
||||
if (_mixer->isReady()) {
|
||||
track->stream->queueBuffer(tmpSndBufferPtr, curFeedSize);
|
||||
track->stream->queueBuffer(tmpSndBufferPtr, curFeedSize, makeMixerFlags(track->mixerFlags));
|
||||
track->regionOffset += curFeedSize;
|
||||
} else
|
||||
delete[] tmpSndBufferPtr;
|
||||
|
@ -172,7 +172,7 @@ void IMuseDigital::startSound(int soundId, const char *soundName, int soundType,
|
||||
track->dataMod12Bit = otherTrack->dataMod12Bit;
|
||||
}
|
||||
|
||||
track->stream = Audio::makeAppendableAudioStream(freq, makeMixerFlags(track->mixerFlags));
|
||||
track->stream = Audio::makeQueuingAudioStream(freq, track->mixerFlags & kFlagStereo);
|
||||
_mixer->playInputStream(track->getType(), &track->mixChanHandle, track->stream, -1, track->getVol(), track->getPan());
|
||||
}
|
||||
|
||||
@ -372,7 +372,7 @@ Track *IMuseDigital::cloneToFadeOutTrack(Track *track, int fadeDelay) {
|
||||
fadeTrack->volFadeUsed = true;
|
||||
|
||||
// Create an appendable output buffer
|
||||
fadeTrack->stream = Audio::makeAppendableAudioStream(_sound->getFreq(fadeTrack->soundDesc), makeMixerFlags(fadeTrack->mixerFlags));
|
||||
fadeTrack->stream = Audio::makeQueuingAudioStream(_sound->getFreq(fadeTrack->soundDesc), track->mixerFlags & kFlagStereo);
|
||||
_mixer->playInputStream(track->getType(), &fadeTrack->mixChanHandle, fadeTrack->stream, -1, fadeTrack->getVol(), fadeTrack->getPan());
|
||||
fadeTrack->used = true;
|
||||
|
||||
|
@ -76,7 +76,7 @@ struct Track {
|
||||
|
||||
ImuseDigiSndMgr::SoundDesc *soundDesc; // sound handle used by iMuse sound manager
|
||||
Audio::SoundHandle mixChanHandle; // sound mixer's channel handle
|
||||
Audio::AppendableAudioStream *stream; // sound mixer's audio stream handle for *.la1 and *.bun
|
||||
Audio::QueuingAudioStream *stream; // sound mixer's audio stream handle for *.la1 and *.bun
|
||||
|
||||
Track() : soundId(-1), used(false), stream(NULL) {
|
||||
}
|
||||
|
@ -122,12 +122,12 @@ bool SmushMixer::handleFrame() {
|
||||
if (_mixer->isReady()) {
|
||||
// Stream the data
|
||||
if (!_channels[i].stream) {
|
||||
_channels[i].stream = Audio::makeAppendableAudioStream(_channels[i].chan->getRate(), flags);
|
||||
_channels[i].stream = Audio::makeQueuingAudioStream(_channels[i].chan->getRate(), stereo);
|
||||
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_channels[i].handle, _channels[i].stream);
|
||||
}
|
||||
_mixer->setChannelVolume(_channels[i].handle, vol);
|
||||
_mixer->setChannelBalance(_channels[i].handle, pan);
|
||||
_channels[i].stream->queueBuffer(data, size); // The stream will free the buffer for us
|
||||
_channels[i].stream->queueBuffer(data, size, flags); // The stream will free the buffer for us
|
||||
} else
|
||||
delete[] data;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ private:
|
||||
int id;
|
||||
SmushChannel *chan;
|
||||
Audio::SoundHandle handle;
|
||||
Audio::AppendableAudioStream *stream;
|
||||
Audio::QueuingAudioStream *stream;
|
||||
} _channels[NUM_CHANNELS];
|
||||
|
||||
int _soundFrequency;
|
||||
|
@ -469,10 +469,10 @@ void SmushPlayer::handleIACT(int32 subSize, Common::SeekableReadStream &b) {
|
||||
} while (--count);
|
||||
|
||||
if (!_IACTstream) {
|
||||
_IACTstream = Audio::makeAppendableAudioStream(22050, Audio::Mixer::FLAG_STEREO | Audio::Mixer::FLAG_16BITS);
|
||||
_IACTstream = Audio::makeQueuingAudioStream(22050, true);
|
||||
_vm->_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_IACTchannel, _IACTstream);
|
||||
}
|
||||
_IACTstream->queueBuffer(output_data, 0x1000);
|
||||
_IACTstream->queueBuffer(output_data, 0x1000, Audio::Mixer::FLAG_STEREO | Audio::Mixer::FLAG_16BITS);
|
||||
|
||||
bsize -= len;
|
||||
d_src += len;
|
||||
|
@ -65,7 +65,7 @@ private:
|
||||
uint32 _frame;
|
||||
|
||||
Audio::SoundHandle _IACTchannel;
|
||||
Audio::AppendableAudioStream *_IACTstream;
|
||||
Audio::QueuingAudioStream *_IACTstream;
|
||||
|
||||
Audio::SoundHandle _compressedFileSoundHandle;
|
||||
bool _compressedFileMode;
|
||||
|
Loading…
x
Reference in New Issue
Block a user