Reorder params to Audio::makeRawMemoryStream

svn-id: r47492
This commit is contained in:
Max Horn 2010-01-23 23:55:35 +00:00
parent 9369c9f3c5
commit 4b996e7de7
34 changed files with 75 additions and 71 deletions

View file

@ -292,7 +292,7 @@ Audio::AudioStream *RawSound::makeAudioStream(uint sound) {
assert(buffer); assert(buffer);
_file->read(buffer, size); _file->read(buffer, size);
return Audio::makeRawMemoryStream(buffer, size, DisposeAfterUse::YES, 22050, _flags); return Audio::makeRawMemoryStream(buffer, size, 22050, _flags);
} }
void RawSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, bool loop, int vol) { void RawSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, bool loop, int vol) {
@ -737,7 +737,7 @@ void Sound::playRawData(byte *soundData, uint sound, uint size, uint freq) {
if (_vm->getPlatform() == Common::kPlatformPC) if (_vm->getPlatform() == Common::kPlatformPC)
flags = Audio::FLAG_UNSIGNED; flags = Audio::FLAG_UNSIGNED;
Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, size, DisposeAfterUse::YES, freq, flags); Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, size, freq, flags);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_effectsHandle, stream); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_effectsHandle, stream);
} }

View file

@ -845,7 +845,7 @@ void PaulaSound::update() {
void PaulaSound::playSoundChannel(int channel, int frequency, uint8 *data, int size, int volume) { void PaulaSound::playSoundChannel(int channel, int frequency, uint8 *data, int size, int volume) {
assert(frequency > 0); assert(frequency > 0);
frequency = PAULA_FREQ / frequency; frequency = PAULA_FREQ / frequency;
Audio::AudioStream *stream = Audio::makeRawMemoryStream(data, size, DisposeAfterUse::YES, frequency, 0); Audio::AudioStream *stream = Audio::makeRawMemoryStream(data, size, frequency, 0);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_channelsTable[channel], stream); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_channelsTable[channel], stream);
_mixer->setChannelVolume(_channelsTable[channel], volume * Audio::Mixer::kMaxChannelVolume / 63); _mixer->setChannelVolume(_channelsTable[channel], volume * Audio::Mixer::kMaxChannelVolume / 63);
} }

View file

@ -202,7 +202,7 @@ void Sound::playSoundBuffer(Audio::SoundHandle *handle, const SoundSample &buffe
// Don't use DisposeAfterUse::YES, because our caching system deletes samples by itself. // Don't use DisposeAfterUse::YES, because our caching system deletes samples by itself.
Audio::AudioStream *stream = Audio::makeLoopingAudioStream( Audio::AudioStream *stream = Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(buffer._data, buffer._length, DisposeAfterUse::NO, buffer._frequency, flags), Audio::makeRawMemoryStream(buffer._data, buffer._length, buffer._frequency, flags, DisposeAfterUse::NO),
loop ? 0 : 1); loop ? 0 : 1);
_mixer->playInputStream(soundType, handle, stream, -1, volume); _mixer->playInputStream(soundType, handle, stream, -1, volume);
} }

View file

@ -185,7 +185,7 @@ void DrasculaEngine::playFile(const char *fname) {
if (ConfMan.getBool("speech_mute")) if (ConfMan.getBool("speech_mute"))
memset(soundData, 0x80, soundSize); // Mute speech but keep the pause memset(soundData, 0x80, soundSize); // Mute speech but keep the pause
Audio::AudioStream *stream = Audio::makeRawMemoryStream(soundData, soundSize - 64, DisposeAfterUse::YES, Audio::AudioStream *stream = Audio::makeRawMemoryStream(soundData, soundSize - 64,
11025, Audio::FLAG_UNSIGNED); 11025, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_soundHandle, stream); _mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_soundHandle, stream);
} else } else

View file

@ -3925,8 +3925,8 @@ void SoundTowns::playSoundEffect(uint8 track) {
uint32 outputRate = uint32(11025 * calculatePhaseStep(note, sfxRootNoteOffs, sfxRate, 11025, 0x2000)); uint32 outputRate = uint32(11025 * calculatePhaseStep(note, sfxRootNoteOffs, sfxRate, 11025, 0x2000));
_currentSFX = Audio::makeRawMemoryStream(sfxPlaybackBuffer, playbackBufferSize, DisposeAfterUse::YES, _currentSFX = Audio::makeRawMemoryStream(sfxPlaybackBuffer, playbackBufferSize,
outputRate, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN); outputRate, Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, _currentSFX); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, _currentSFX);
} }
@ -4297,8 +4297,8 @@ int32 SoundTownsPC98_v2::voicePlay(const char *file, Audio::SoundHandle *handle,
uint32 outputRate = uint32(11025 * SoundTowns::calculatePhaseStep(0x3c, 0x3c, sfxRate, 11025, 0x2000)); uint32 outputRate = uint32(11025 * SoundTowns::calculatePhaseStep(0x3c, 0x3c, sfxRate, 11025, 0x2000));
_currentSFX = Audio::makeRawMemoryStream(sfx, outsize, DisposeAfterUse::YES, outputRate, _currentSFX = Audio::makeRawMemoryStream(sfx, outsize, outputRate,
Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN); Audio::FLAG_UNSIGNED | Audio::FLAG_LITTLE_ENDIAN);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_soundChannels[h], _currentSFX); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_soundChannels[h], _currentSFX);
if (handle) if (handle)
*handle = _soundChannels[h]; *handle = _soundChannels[h];

View file

@ -94,7 +94,7 @@ void Sound::playSound(const char *soundName, int volume, bool loop, int channel)
// Sound format is 8bit mono, unsigned, 11025kHz // Sound format is 8bit mono, unsigned, 11025kHz
Audio::AudioStream *stream = Audio::makeLoopingAudioStream( Audio::AudioStream *stream = Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(buffer, bufferSize, DisposeAfterUse::YES, 11025, Audio::FLAG_UNSIGNED), Audio::makeRawMemoryStream(buffer, bufferSize, 11025, Audio::FLAG_UNSIGNED),
loop ? 0 : 1); loop ? 0 : 1);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);
} }
@ -146,7 +146,7 @@ void Sound::playVoice(const char *soundName, int volume) {
_vm->res()->toss(soundName); _vm->res()->toss(soundName);
// Voice format is 8bit mono, unsigned, 11025kHz // Voice format is 8bit mono, unsigned, 11025kHz
Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, soundStream->size(), DisposeAfterUse::YES, 11025, Audio::FLAG_UNSIGNED); Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, soundStream->size(), 11025, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);
} }
@ -260,7 +260,7 @@ void Sound::playDSRSound(int soundIndex, int volume, bool loop) {
// Play sound // Play sound
Audio::AudioStream *stream = Audio::makeLoopingAudioStream( Audio::AudioStream *stream = Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(buffer, Audio::makeRawMemoryStream(buffer,
_dsrFile.dsrEntries[soundIndex]->uncompSize, DisposeAfterUse::YES, _dsrFile.dsrEntries[soundIndex]->uncompSize,
_dsrFile.dsrEntries[soundIndex]->frequency, Audio::FLAG_UNSIGNED), _dsrFile.dsrEntries[soundIndex]->frequency, Audio::FLAG_UNSIGNED),
loop ? 0 : 1); loop ? 0 : 1);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &handle->handle, stream, -1, volume);

View file

@ -262,7 +262,7 @@ void SoundResource::load(byte *source, int size) {
Audio::AudioStream *SoundResource::getAudioStream(int soundRate, bool loop) { Audio::AudioStream *SoundResource::getAudioStream(int soundRate, bool loop) {
Audio::RewindableAudioStream *stream = Audio::RewindableAudioStream *stream =
Audio::makeRawMemoryStream(_soundData, _soundSize, DisposeAfterUse::NO, soundRate, Audio::FLAG_UNSIGNED); Audio::makeRawMemoryStream(_soundData, _soundSize, soundRate, Audio::FLAG_UNSIGNED, DisposeAfterUse::NO);
if (loop) if (loop)
return Audio::makeLoopingAudioStream(stream, 0); return Audio::makeLoopingAudioStream(stream, 0);

View file

@ -454,7 +454,7 @@ Audio::AudioStream *Sound::makeMohawkWaveStream(Common::SeekableReadStream *stre
if (data_chunk.channels == 2) if (data_chunk.channels == 2)
flags |= Audio::FLAG_STEREO; flags |= Audio::FLAG_STEREO;
return Audio::makeRawMemoryStream(data_chunk.audio_data, data_chunk.size, DisposeAfterUse::YES, data_chunk.sample_rate, flags); return Audio::makeRawMemoryStream(data_chunk.audio_data, data_chunk.size, data_chunk.sample_rate, flags);
} else if (data_chunk.encoding == kCodecADPCM) { } else if (data_chunk.encoding == kCodecADPCM) {
Common::MemoryReadStream *dataStream = new Common::MemoryReadStream(data_chunk.audio_data, data_chunk.size, DisposeAfterUse::YES); Common::MemoryReadStream *dataStream = new Common::MemoryReadStream(data_chunk.audio_data, data_chunk.size, DisposeAfterUse::YES);
uint32 blockAlign = data_chunk.channels * data_chunk.bitsPerSample / 8; uint32 blockAlign = data_chunk.channels * data_chunk.bitsPerSample / 8;
@ -494,7 +494,7 @@ Audio::AudioStream *Sound::makeOldMohawkWaveStream(Common::SeekableReadStream *s
stream->read(data, size); stream->read(data, size);
delete stream; delete stream;
return Audio::makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED); return Audio::makeRawMemoryStream(data, size, rate, Audio::FLAG_UNSIGNED);
} }
SndHandle *Sound::getHandle() { SndHandle *Sound::getHandle() {

View file

@ -1170,7 +1170,7 @@ Audio::AudioStream *QTPlayer::createAudioStream(Common::SeekableReadStream *stre
byte *data = (byte *)malloc(dataSize); byte *data = (byte *)malloc(dataSize);
stream->read(data, dataSize); stream->read(data, dataSize);
delete stream; delete stream;
return Audio::makeRawMemoryStream(data, dataSize, DisposeAfterUse::YES, _streams[_audioStreamIndex]->sample_rate, flags); return Audio::makeRawMemoryStream(data, dataSize, _streams[_audioStreamIndex]->sample_rate, flags);
} else if (_streams[_audioStreamIndex]->codec_tag == MKID_BE('ima4')) { } else if (_streams[_audioStreamIndex]->codec_tag == MKID_BE('ima4')) {
// Riven uses this codec (as do some Myst ME videos) // Riven uses this codec (as do some Myst ME videos)
return Audio::makeADPCMStream(stream, true, stream->size(), Audio::kADPCMApple, _streams[_audioStreamIndex]->sample_rate, _streams[_audioStreamIndex]->channels, 34); return Audio::makeADPCMStream(stream, true, stream->size(), Audio::kADPCMApple, _streams[_audioStreamIndex]->sample_rate, _streams[_audioStreamIndex]->channels, 34);

View file

@ -416,7 +416,7 @@ Audio::AudioStream *DosSoundMan_br::loadChannelData(const char *filename, Channe
int rate = 11025; int rate = 11025;
ch->stream = Audio::makeLoopingAudioStream( ch->stream = Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(data, dataSize, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED), Audio::makeRawMemoryStream(data, dataSize, rate, Audio::FLAG_UNSIGNED),
looping ? 0 : 1); looping ? 0 : 1);
return ch->stream; return ch->stream;
} }
@ -477,7 +477,7 @@ Audio::AudioStream *AmigaSoundMan_br::loadChannelData(const char *filename, Chan
// TODO: Confirm sound rate // TODO: Confirm sound rate
int rate = 11025; int rate = 11025;
input = Audio::makeRawMemoryStream((byte *)data, dataSize, DisposeAfterUse::YES, rate, 0); input = Audio::makeRawMemoryStream((byte *)data, dataSize, rate, 0);
} else { } else {
input = Audio::make8SVXStream(*stream, looping); input = Audio::make8SVXStream(*stream, looping);
} }

View file

@ -377,7 +377,7 @@ Audio::AudioStream *AmigaSoundMan_ns::loadChannelData(const char *filename, Chan
if (!scumm_stricmp("beep", filename)) { if (!scumm_stricmp("beep", filename)) {
int rate = 11934; int rate = 11934;
ch->volume = 160; ch->volume = 160;
input = Audio::makeRawMemoryStream((byte *)beepSoundBuffer, beepSoundBufferSize, DisposeAfterUse::NO, rate, 0); input = Audio::makeRawMemoryStream((byte *)beepSoundBuffer, beepSoundBufferSize, rate, 0, DisposeAfterUse::NO);
} else { } else {
Common::SeekableReadStream *stream = _vm->_disk->loadSound(filename); Common::SeekableReadStream *stream = _vm->_disk->loadSound(filename);
input = Audio::make8SVXStream(*stream, looping); input = Audio::make8SVXStream(*stream, looping);

View file

@ -330,7 +330,7 @@ void SBSound::playSoundData(Common::File *f, uint32 size, Audio::SoundHandle *so
f->read(sound, size); f->read(sound, size);
Audio::Mixer::SoundType type = (soundHandle == &_speechHandle) ? Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType; Audio::Mixer::SoundType type = (soundHandle == &_speechHandle) ? Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType;
Audio::AudioStream *stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, 11840, Audio::FLAG_UNSIGNED); Audio::AudioStream *stream = Audio::makeRawMemoryStream(sound, size, 11840, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(type, soundHandle, stream); _mixer->playInputStream(type, soundHandle, stream);
} }
} }
@ -614,7 +614,7 @@ void AmigaSound::playSound(const char *base) {
if (soundData) { if (soundData) {
f->read(soundData, soundSize); f->read(soundData, soundSize);
Audio::AudioStream *stream = Audio::makeRawMemoryStream(soundData, soundSize, DisposeAfterUse::YES, 11025, 0); Audio::AudioStream *stream = Audio::makeRawMemoryStream(soundData, soundSize, 11025, 0);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, stream); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, stream);
} }
} }

View file

@ -73,7 +73,7 @@ void Sound::playSoundBuffer(Audio::SoundHandle *handle, const SoundBuffer &buffe
Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType; Audio::Mixer::kSpeechSoundType : Audio::Mixer::kSFXSoundType;
if (!buffer.isCompressed) { if (!buffer.isCompressed) {
stream = Audio::makeRawMemoryStream(buffer.buffer, buffer.size, DisposeAfterUse::YES, buffer.frequency, buffer.flags); stream = Audio::makeRawMemoryStream(buffer.buffer, buffer.size, buffer.frequency, buffer.flags);
} else { } else {
Common::SeekableReadStream *memStream = new Common::MemoryReadStream(buffer.buffer, buffer.size, DisposeAfterUse::YES); Common::SeekableReadStream *memStream = new Common::MemoryReadStream(buffer.buffer, buffer.size, DisposeAfterUse::YES);

View file

@ -245,7 +245,7 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32
} }
if (data) if (data)
audioStream = Audio::makeRawMemoryStream(data, size, DisposeAfterUse::YES, _audioRate, flags); audioStream = Audio::makeRawMemoryStream(data, size, _audioRate, flags);
if (audioStream) { if (audioStream) {
*sampleLen = (flags & Audio::FLAG_16BITS ? size >> 1 : size) * 60 / _audioRate; *sampleLen = (flags & Audio::FLAG_16BITS ? size >> 1 : size) * 60 / _audioRate;

View file

@ -552,7 +552,7 @@ static Audio::AudioStream *makeStream(byte *data, int size, int rate) {
// Convert stream format flags // Convert stream format flags
int flags = Audio::FLAG_UNSIGNED; int flags = Audio::FLAG_UNSIGNED;
return Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, flags, 0, 0); return Audio::makeRawMemoryStream(sound, size, rate, flags);
} }
Audio::AudioStream *Sci0SongIterator::getAudioStream() { Audio::AudioStream *Sci0SongIterator::getAudioStream() {

View file

@ -184,7 +184,7 @@ void SciMusic::soundInitSnd(MusicEntry *pSnd) {
// Amiga SCI1 games had signed sound data // Amiga SCI1 games had signed sound data
if (_soundVersion >= SCI_VERSION_1_EARLY && ((SciEngine *)g_engine)->getPlatform() == Common::kPlatformAmiga) if (_soundVersion >= SCI_VERSION_1_EARLY && ((SciEngine *)g_engine)->getPlatform() == Common::kPlatformAmiga)
flags = 0; flags = 0;
pSnd->pStreamAud = Audio::makeRawMemoryStream(channelData, track->digitalSampleSize, DisposeAfterUse::NO, track->digitalSampleRate, flags); pSnd->pStreamAud = Audio::makeRawMemoryStream(channelData, track->digitalSampleSize, track->digitalSampleRate, flags, DisposeAfterUse::NO);
delete pSnd->pLoopStream; delete pSnd->pLoopStream;
pSnd->pLoopStream = 0; pSnd->pLoopStream = 0;
pSnd->soundType = Audio::Mixer::kSFXSoundType; pSnd->soundType = Audio::Mixer::kSFXSoundType;

View file

@ -171,7 +171,8 @@ void CUP_Player::updateSfx() {
uint32 soundSize = READ_BE_UINT32(soundData + 4); uint32 soundSize = READ_BE_UINT32(soundData + 4);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &sfxChannel->handle, _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &sfxChannel->handle,
Audio::makeLoopingAudioStream( Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(soundData + 8, soundSize - 8, DisposeAfterUse::NO, 11025, Audio::FLAG_UNSIGNED), Audio::makeRawMemoryStream(soundData + 8, soundSize - 8,
11025, Audio::FLAG_UNSIGNED, DisposeAfterUse::NO),
(sfx->flags & kSfxFlagLoop) ? 0 : 1 (sfx->flags & kSfxFlagLoop) ? 0 : 1
) )
); );

View file

@ -574,7 +574,7 @@ void SoundHE::playHESound(int soundID, int heOffset, int heChannel, int heFlags)
musicFile.close(); musicFile.close();
if (_vm->_game.heversion == 70) { if (_vm->_game.heversion == 70) {
stream = Audio::makeRawMemoryStream(spoolPtr, size, DisposeAfterUse::NO, 11025, flags); stream = Audio::makeRawMemoryStream(spoolPtr, size, 11025, flags, DisposeAfterUse::NO);
_mixer->playInputStream(type, &_heSoundChannels[heChannel], stream, soundID); _mixer->playInputStream(type, &_heSoundChannels[heChannel], stream, soundID);
return; return;
} }
@ -667,9 +667,9 @@ void SoundHE::playHESound(int soundID, int heOffset, int heChannel, int heFlags)
#ifdef SCUMM_LITTLE_ENDIAN #ifdef SCUMM_LITTLE_ENDIAN
flags |= Audio::FLAG_LITTLE_ENDIAN; flags |= Audio::FLAG_LITTLE_ENDIAN;
#endif #endif
stream = Audio::makeRawMemoryStream(sound + heOffset, size - heOffset, DisposeAfterUse::YES, rate, flags); stream = Audio::makeRawMemoryStream(sound + heOffset, size - heOffset, rate, flags);
} else { } else {
stream = Audio::makeRawMemoryStream(ptr + memStream.pos() + heOffset, size - heOffset, DisposeAfterUse::YES, rate, flags); stream = Audio::makeRawMemoryStream(ptr + memStream.pos() + heOffset, size - heOffset, rate, flags);
} }
_mixer->playInputStream(type, &_heSoundChannels[heChannel], _mixer->playInputStream(type, &_heSoundChannels[heChannel],
Audio::makeLoopingAudioStream(stream, (heFlags & 1) ? 0 : 1), soundID); Audio::makeLoopingAudioStream(stream, (heFlags & 1) ? 0 : 1), soundID);
@ -729,7 +729,7 @@ void SoundHE::playHESound(int soundID, int heOffset, int heChannel, int heFlags)
_mixer->stopHandle(_heSoundChannels[heChannel]); _mixer->stopHandle(_heSoundChannels[heChannel]);
stream = Audio::makeRawMemoryStream(ptr + heOffset + 8, size, DisposeAfterUse::NO, rate, flags); stream = Audio::makeRawMemoryStream(ptr + heOffset + 8, size, rate, flags, DisposeAfterUse::NO);
_mixer->playInputStream(type, &_heSoundChannels[heChannel], _mixer->playInputStream(type, &_heSoundChannels[heChannel],
Audio::makeLoopingAudioStream(stream, (heFlags & 1) ? 0 : 1), soundID); Audio::makeLoopingAudioStream(stream, (heFlags & 1) ? 0 : 1), soundID);
} }
@ -750,7 +750,7 @@ void SoundHE::playHESound(int soundID, int heOffset, int heChannel, int heFlags)
_mixer->stopID(_currentMusic); _mixer->stopID(_currentMusic);
_currentMusic = soundID; _currentMusic = soundID;
stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, 0); stream = Audio::makeRawMemoryStream(sound, size, rate, 0);
_mixer->playInputStream(Audio::Mixer::kMusicSoundType, NULL, stream, soundID); _mixer->playInputStream(Audio::Mixer::kMusicSoundType, NULL, stream, soundID);
} }
else if (READ_BE_UINT32(ptr) == MKID_BE('MIDI')) { else if (READ_BE_UINT32(ptr) == MKID_BE('MIDI')) {

View file

@ -95,7 +95,7 @@ void Player_MOD::startChannel(int id, void *data, int size, int rate, uint8 vol,
_channels[i].pan = pan; _channels[i].pan = pan;
_channels[i].freq = rate; _channels[i].freq = rate;
_channels[i].ctr = 0; _channels[i].ctr = 0;
_channels[i].input = Audio::makeRawMemoryStream_OLD((const byte*)data, size, DisposeAfterUse::YES, rate, 0, loopStart, loopEnd); _channels[i].input = Audio::makeRawMemoryStream_OLD((const byte*)data, size, rate, 0, loopStart, loopEnd);
// read the first sample // read the first sample
_channels[i].input->readBuffer(&_channels[i].pos, 1); _channels[i].input->readBuffer(&_channels[i].pos, 1);
} }

View file

@ -203,7 +203,7 @@ void Sound::playSound(int soundID) {
sound = (byte *)malloc(size); sound = (byte *)malloc(size);
memcpy(sound, ptr, size); memcpy(sound, ptr, size);
stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED); stream = Audio::makeRawMemoryStream(sound, size, rate, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID);
} }
// WORKAROUND bug # 1311447 // WORKAROUND bug # 1311447
@ -226,7 +226,7 @@ void Sound::playSound(int soundID) {
// Allocate a sound buffer, copy the data into it, and play // Allocate a sound buffer, copy the data into it, and play
sound = (byte *)malloc(size); sound = (byte *)malloc(size);
memcpy(sound, ptr, size); memcpy(sound, ptr, size);
stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED); stream = Audio::makeRawMemoryStream(sound, size, rate, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID);
} }
// Support for sampled sound effects in Monkey Island 1 and 2 // Support for sampled sound effects in Monkey Island 1 and 2
@ -298,7 +298,7 @@ void Sound::playSound(int soundID) {
// Allocate a sound buffer, copy the data into it, and play // Allocate a sound buffer, copy the data into it, and play
sound = (byte *)malloc(size); sound = (byte *)malloc(size);
memcpy(sound, ptr + 6, size); memcpy(sound, ptr + 6, size);
stream = Audio::makeRawMemoryStream(sound, size, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED); stream = Audio::makeRawMemoryStream(sound, size, rate, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID);
} }
else if ((_vm->_game.platform == Common::kPlatformFMTowns && _vm->_game.version == 3) || READ_BE_UINT32(ptr) == MKID_BE('SOUN') || READ_BE_UINT32(ptr) == MKID_BE('TOWS')) { else if ((_vm->_game.platform == Common::kPlatformFMTowns && _vm->_game.version == 3) || READ_BE_UINT32(ptr) == MKID_BE('SOUN') || READ_BE_UINT32(ptr) == MKID_BE('TOWS')) {
@ -349,7 +349,7 @@ void Sound::playSound(int soundID) {
} }
size -= waveSize; size -= waveSize;
stream = Audio::makeRawMemoryStream_OLD(sound, waveSize, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED, loopStart, loopEnd); stream = Audio::makeRawMemoryStream_OLD(sound, waveSize, rate, Audio::FLAG_UNSIGNED, loopStart, loopEnd);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, 255, 0); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, 255, 0);
} }
break; break;
@ -440,7 +440,7 @@ void Sound::playSound(int soundID) {
} }
memcpy(sound, ptr + READ_BE_UINT16(ptr + 8), size); memcpy(sound, ptr + READ_BE_UINT16(ptr + 8), size);
stream = Audio::makeRawMemoryStream_OLD(sound, size, DisposeAfterUse::YES, rate, 0, loopStart, loopEnd); stream = Audio::makeRawMemoryStream_OLD(sound, size, rate, 0, loopStart, loopEnd);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, vol, 0); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, NULL, stream, soundID, vol, 0);
} }
else { else {

View file

@ -739,8 +739,7 @@ bool Intro::nextPart(uint16 *&data) {
// directly, but this will have to do for now. // directly, but this will have to do for now.
memset(vData, 127, sizeof(DataFileHeader)); memset(vData, 127, sizeof(DataFileHeader));
stream = Audio::makeRawMemoryStream(vData, _skyDisk->_lastLoadedFileSize, DisposeAfterUse::YES, stream = Audio::makeRawMemoryStream(vData, _skyDisk->_lastLoadedFileSize, 11025, Audio::FLAG_UNSIGNED);
11025, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_voice, stream, SOUND_VOICE); _mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_voice, stream, SOUND_VOICE);
return true; return true;
case WAITVOICE: case WAITVOICE:
@ -756,14 +755,12 @@ bool Intro::nextPart(uint16 *&data) {
return true; return true;
case LOOPBG: case LOOPBG:
_mixer->stopID(SOUND_BG); _mixer->stopID(SOUND_BG);
stream = Audio::makeRawMemoryStream(_bgBuf + 256, _bgSize - 768, DisposeAfterUse::YES, stream = Audio::makeRawMemoryStream(_bgBuf + 256, _bgSize - 768, 11025, Audio::FLAG_UNSIGNED);
11025, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSfx, Audio::makeLoopingAudioStream(stream, 0), SOUND_BG); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSfx, Audio::makeLoopingAudioStream(stream, 0), SOUND_BG);
return true; return true;
case PLAYBG: case PLAYBG:
_mixer->stopID(SOUND_BG); _mixer->stopID(SOUND_BG);
stream = Audio::makeRawMemoryStream(_bgBuf + 256, _bgSize - 768, DisposeAfterUse::YES, stream = Audio::makeRawMemoryStream(_bgBuf + 256, _bgSize - 768, 11025, Audio::FLAG_UNSIGNED);
11025, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSfx, stream, SOUND_BG); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_bgSfx, stream, SOUND_BG);
return true; return true;
case STOPBG: case STOPBG:

View file

@ -1045,7 +1045,7 @@ void Sound::playSound(uint32 id, byte *sound, uint32 size, Audio::SoundHandle *h
_mixer->stopID(id); _mixer->stopID(id);
Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, size, DisposeAfterUse::YES, 11025, flags); Audio::AudioStream *stream = Audio::makeRawMemoryStream(buffer, size, 11025, flags);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, handle, stream, id); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, handle, stream, id);
} }
@ -1117,7 +1117,8 @@ void Sound::playSound(uint16 sound, uint16 volume, uint8 channel) {
loopEnd = dataSize; loopEnd = dataSize;
} }
Audio::AudioStream *stream = Audio::makeRawMemoryStream_OLD(_soundData + dataOfs, dataSize, DisposeAfterUse::NO, sampleRate, Audio::FLAG_UNSIGNED, loopSta, loopEnd); Audio::AudioStream *stream = Audio::makeRawMemoryStream_OLD(_soundData + dataOfs, dataSize, sampleRate,
Audio::FLAG_UNSIGNED, loopSta, loopEnd, DisposeAfterUse::NO);
if (channel == 0) if (channel == 0)
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_ingameSound0, stream, SOUND_CH0, volume, 0); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_ingameSound0, stream, SOUND_CH0, volume, 0);
@ -1245,7 +1246,7 @@ bool Sound::startSpeech(uint16 textNum) {
_mixer->stopID(SOUND_SPEECH); _mixer->stopID(SOUND_SPEECH);
Audio::AudioStream *stream = Audio::makeRawMemoryStream(playBuffer, speechSize, DisposeAfterUse::YES, rate, Audio::FLAG_UNSIGNED); Audio::AudioStream *stream = Audio::makeRawMemoryStream(playBuffer, speechSize, rate, Audio::FLAG_UNSIGNED);
_mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_ingameSpeech, stream, SOUND_SPEECH); _mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_ingameSpeech, stream, SOUND_SPEECH);
return true; return true;
} }

View file

@ -271,7 +271,7 @@ void Sound::playSample(QueueElement *elem) {
if (READ_LE_UINT16(sampleData + 0x16) == 2) if (READ_LE_UINT16(sampleData + 0x16) == 2)
flags |= Audio::FLAG_STEREO; flags |= Audio::FLAG_STEREO;
Audio::AudioStream *stream = Audio::makeLoopingAudioStream( Audio::AudioStream *stream = Audio::makeLoopingAudioStream(
Audio::makeRawMemoryStream(sampleData + 0x2C, size, DisposeAfterUse::NO, 11025, flags), Audio::makeRawMemoryStream(sampleData + 0x2C, size, 11025, flags, DisposeAfterUse::NO),
(_fxList[elem->id].type == FX_LOOP) ? 0 : 1); (_fxList[elem->id].type == FX_LOOP) ? 0 : 1);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &elem->handle, stream, elem->id, volume, pan); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &elem->handle, stream, elem->id, volume, pan);
} }
@ -360,7 +360,7 @@ bool Sound::startSpeech(uint16 roomNo, uint16 localNo) {
uint32 size; uint32 size;
int16 *data = uncompressSpeech(index + _cowHeaderSize, sampleSize, &size); int16 *data = uncompressSpeech(index + _cowHeaderSize, sampleSize, &size);
if (data) { if (data) {
stream = Audio::makeRawMemoryStream((byte *)data, size, DisposeAfterUse::YES, 11025, SPEECH_FLAGS); stream = Audio::makeRawMemoryStream((byte *)data, size, 11025, SPEECH_FLAGS);
_mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_speechHandle, stream, SOUND_SPEECH_ID, speechVol, speechPan); _mixer->playInputStream(Audio::Mixer::kSpeechSoundType, &_speechHandle, stream, SOUND_SPEECH_ID, speechVol, speechPan);
} }
} else if (_cowMode == CowPSX && sampleSize != 0xffffffff) { } else if (_cowMode == CowPSX && sampleSize != 0xffffffff) {

View file

@ -898,7 +898,7 @@ void TeenAgentEngine::playSoundNow(byte id) {
in->read(data, size); in->read(data, size);
//debug(0, "playing %u samples...", size); //debug(0, "playing %u samples...", size);
Audio::AudioStream *stream = Audio::makeRawMemoryStream(data, size, DisposeAfterUse::YES, 11025, 0); Audio::AudioStream *stream = Audio::makeRawMemoryStream(data, size, 11025, 0);
_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_soundHandle, stream); _mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_soundHandle, stream);
} }

View file

@ -154,7 +154,7 @@ bool SoundManager::playSample(int id, Audio::Mixer::SoundType type, Audio::Sound
#endif #endif
break; break;
default: default:
sampleStream = Audio::makeRawMemoryStream(sampleBuf, sampleLen, DisposeAfterUse::YES, 22050, Audio::FLAG_UNSIGNED); sampleStream = Audio::makeRawMemoryStream(sampleBuf, sampleLen, 22050, Audio::FLAG_UNSIGNED);
break; break;
} }
if (sampleStream) { if (sampleStream) {

View file

@ -599,7 +599,7 @@ Audio::RewindableAudioStream *AnimationSequencePlayer::loadSound(int index, Anim
uint8 *sampleData = (uint8 *)malloc(size); uint8 *sampleData = (uint8 *)malloc(size);
if (sampleData) { if (sampleData) {
f.read(sampleData, size); f.read(sampleData, size);
stream = Audio::makeRawMemoryStream(sampleData, size, DisposeAfterUse::YES, rate, flags); stream = Audio::makeRawMemoryStream(sampleData, size, rate, flags);
} }
} }
break; break;

View file

@ -173,7 +173,7 @@ SeekableAudioStream *makeAIFFStream(Common::SeekableReadStream &stream) {
stream.read(data, size); stream.read(data, size);
// Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES.
return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); return makeRawMemoryStream(data, size, rate, flags);
} }
} // End of namespace Audio } // End of namespace Audio

View file

@ -253,7 +253,7 @@ bool SubSeekableAudioStream::seek(const Timestamp &where) {
void QueuingAudioStream::queueBuffer(byte *data, uint32 size, DisposeAfterUse::Flag disposeAfterUse, byte flags) { void QueuingAudioStream::queueBuffer(byte *data, uint32 size, DisposeAfterUse::Flag disposeAfterUse, byte flags) {
AudioStream *stream = makeRawMemoryStream(data, size, disposeAfterUse, getRate(), flags); AudioStream *stream = makeRawMemoryStream(data, size, getRate(), flags, disposeAfterUse);
queueAudioStream(stream, DisposeAfterUse::YES); queueAudioStream(stream, DisposeAfterUse::YES);
} }

View file

@ -108,7 +108,7 @@ AudioStream *make8SVXStream(Common::ReadStream &input, bool loop) {
A8SVXLoader loader; A8SVXLoader loader;
loader.load(input); loader.load(input);
SeekableAudioStream *stream = Audio::makeRawMemoryStream((byte *)loader._data, loader._dataSize, DisposeAfterUse::YES, loader._header.samplesPerSec, 0); SeekableAudioStream *stream = Audio::makeRawMemoryStream((byte *)loader._data, loader._dataSize, loader._header.samplesPerSec, 0);
uint32 loopStart = 0, loopEnd = 0; uint32 loopStart = 0, loopEnd = 0;
if (loop) { if (loop) {

View file

@ -329,8 +329,9 @@ bool RawDiskStream<stereo, is16Bit, isUnsigned, isLE>::seek(const Timestamp &whe
return new RawMemoryStream<STEREO, false, UNSIGNED, false>(rate, ptr, len, autoFree) return new RawMemoryStream<STEREO, false, UNSIGNED, false>(rate, ptr, len, autoFree)
SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len,
DisposeAfterUse::Flag autoFree, int rate, byte flags,
int rate, byte flags) { DisposeAfterUse::Flag autoFree
) {
const bool isStereo = (flags & Audio::FLAG_STEREO) != 0; const bool isStereo = (flags & Audio::FLAG_STEREO) != 0;
const bool is16Bit = (flags & Audio::FLAG_16BITS) != 0; const bool is16Bit = (flags & Audio::FLAG_16BITS) != 0;
const bool isUnsigned = (flags & Audio::FLAG_UNSIGNED) != 0; const bool isUnsigned = (flags & Audio::FLAG_UNSIGNED) != 0;
@ -360,10 +361,11 @@ SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len,
AudioStream *makeRawMemoryStream_OLD(const byte *ptr, uint32 len, AudioStream *makeRawMemoryStream_OLD(const byte *ptr, uint32 len,
DisposeAfterUse::Flag autoFree,
int rate, byte flags, int rate, byte flags,
uint loopStart, uint loopEnd) { uint loopStart, uint loopEnd,
SeekableAudioStream *s = makeRawMemoryStream(ptr, len, autoFree, rate, flags); DisposeAfterUse::Flag autoFree
) {
SeekableAudioStream *s = makeRawMemoryStream(ptr, len, rate, flags, autoFree);
if (loopStart != loopEnd) { if (loopStart != loopEnd) {
const bool isStereo = (flags & Audio::FLAG_STEREO) != 0; const bool isStereo = (flags & Audio::FLAG_STEREO) != 0;

View file

@ -70,16 +70,18 @@ enum RawFlags {
* then this buffer will be deallocated using free(). So do not * then this buffer will be deallocated using free(). So do not
* use a buffer allocated with new[]! * use a buffer allocated with new[]!
* *
* @param ptr Data * @param ptr pointer to a buffer containing audio data
* @param len Length of the data (in bytes!) * @param len length of the buffer in bytes
* @param rate The sample rate of the data. * @param rate sample rate of the data
* @param flags Flags combination. * @param flags audio format flags combination
* @see Mixer::RawFlags * @see Mixer::RawFlags
* @param autofreeBuffer whether the data buffer should be destroyed after playback
* @return The new SeekableAudioStream (or 0 on failure). * @return The new SeekableAudioStream (or 0 on failure).
*/ */
SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len,
DisposeAfterUse::Flag autofreeBuffer, int rate, byte flags,
int rate, byte flags); DisposeAfterUse::Flag autofreeBuffer = DisposeAfterUse::YES
);
/** /**
* NOTE: * NOTE:
@ -93,9 +95,10 @@ SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len,
* of the data. * of the data.
*/ */
AudioStream *makeRawMemoryStream_OLD(const byte *ptr, uint32 len, AudioStream *makeRawMemoryStream_OLD(const byte *ptr, uint32 len,
DisposeAfterUse::Flag autofreeBuffer,
int rate, byte flags, int rate, byte flags,
uint loopStart, uint loopEnd); uint loopStart, uint loopEnd,
DisposeAfterUse::Flag autofreeBuffer = DisposeAfterUse::YES
);
/** /**

View file

@ -524,7 +524,7 @@ AudioStream *makeShortenStream(Common::SeekableReadStream &stream) {
return 0; return 0;
// Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES.
return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); return makeRawMemoryStream(data, size, rate, flags);
} }
} // End of namespace Audio } // End of namespace Audio

View file

@ -353,7 +353,7 @@ AudioStream *makeVOCStream(Common::SeekableReadStream &stream, byte flags, uint
if (!data) if (!data)
return 0; return 0;
return makeRawMemoryStream_OLD(data, size, DisposeAfterUse::YES, rate, flags, loopStart, loopEnd); return makeRawMemoryStream_OLD(data, size, rate, flags, loopStart, loopEnd);
#endif #endif
} }
@ -368,7 +368,7 @@ SeekableAudioStream *makeVOCStream(Common::SeekableReadStream &stream, byte flag
if (!data) if (!data)
return 0; return 0;
return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); return makeRawMemoryStream(data, size, rate, flags);
#endif #endif
} }

View file

@ -189,7 +189,7 @@ RewindableAudioStream *makeWAVStream(Common::SeekableReadStream *stream, Dispose
delete stream; delete stream;
// Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES.
return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); return makeRawMemoryStream(data, size, rate, flags);
} }
} // End of namespace Audio } // End of namespace Audio