mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 04:28:37 +00:00
Switch makeADPCMStream to DisposeAfterUse::Flag
svn-id: r47736
This commit is contained in:
parent
7f4aa161bc
commit
21e1cc4cf8
@ -465,7 +465,7 @@ Audio::AudioStream *Sound::makeMohawkWaveStream(Common::SeekableReadStream *stre
|
||||
} else if (data_chunk.encoding == kCodecADPCM) {
|
||||
Common::MemoryReadStream *dataStream = new Common::MemoryReadStream(data_chunk.audio_data, data_chunk.size, DisposeAfterUse::YES);
|
||||
uint32 blockAlign = data_chunk.channels * data_chunk.bitsPerSample / 8;
|
||||
return Audio::makeADPCMStream(dataStream, true, data_chunk.size, Audio::kADPCMIma, data_chunk.sample_rate, data_chunk.channels, blockAlign);
|
||||
return Audio::makeADPCMStream(dataStream, DisposeAfterUse::YES, data_chunk.size, Audio::kADPCMIma, data_chunk.sample_rate, data_chunk.channels, blockAlign);
|
||||
} else if (data_chunk.encoding == kCodecMPEG2) {
|
||||
#ifdef USE_MAD
|
||||
Common::MemoryReadStream *dataStream = new Common::MemoryReadStream(data_chunk.audio_data, data_chunk.size, DisposeAfterUse::YES);
|
||||
|
@ -1173,7 +1173,7 @@ Audio::AudioStream *QTPlayer::createAudioStream(Common::SeekableReadStream *stre
|
||||
return Audio::makeRawStream(data, dataSize, _streams[_audioStreamIndex]->sample_rate, flags);
|
||||
} else if (_streams[_audioStreamIndex]->codec_tag == MKID_BE('ima4')) {
|
||||
// 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, DisposeAfterUse::YES, stream->size(), Audio::kADPCMApple, _streams[_audioStreamIndex]->sample_rate, _streams[_audioStreamIndex]->channels, 34);
|
||||
} else if (_streams[_audioStreamIndex]->codec_tag == MKID_BE('QDM2')) {
|
||||
// Several Myst ME videos use this codec
|
||||
return new QDM2Stream(stream, _streams[_audioStreamIndex]->extradata);
|
||||
|
@ -306,7 +306,7 @@ bool SndRes::load(ResourceContext *context, uint32 resourceId, SoundBuffer &buff
|
||||
case kSoundVOX:
|
||||
buffer.size = soundResourceLength * 4;
|
||||
if (!onlyHeader) {
|
||||
voxStream = Audio::makeADPCMStream(&readS, false, soundResourceLength, Audio::kADPCMOki);
|
||||
voxStream = Audio::makeADPCMStream(&readS, DisposeAfterUse::NO, soundResourceLength, Audio::kADPCMOki);
|
||||
buffer.buffer = (byte *)malloc(buffer.size);
|
||||
voxStream->readBuffer((int16*)buffer.buffer, soundResourceLength * 2);
|
||||
delete voxStream;
|
||||
|
@ -643,7 +643,7 @@ void SoundHE::playHESound(int soundID, int heOffset, int heChannel, int heFlags)
|
||||
|
||||
_mixer->stopHandle(_heSoundChannels[heChannel]);
|
||||
if (compType == 17) {
|
||||
Audio::AudioStream *voxStream = Audio::makeADPCMStream(&memStream, false, size, Audio::kADPCMMSIma, rate, (flags & Audio::FLAG_STEREO) ? 2 : 1, blockAlign);
|
||||
Audio::AudioStream *voxStream = Audio::makeADPCMStream(&memStream, DisposeAfterUse::NO, size, Audio::kADPCMMSIma, rate, (flags & Audio::FLAG_STEREO) ? 2 : 1, blockAlign);
|
||||
|
||||
// FIXME: Get rid of this crude hack to turn a ADPCM stream into a raw stream.
|
||||
// It seems it is only there to allow looping -- if that is true, we certainly
|
||||
|
@ -877,7 +877,7 @@ bool PCMMusicPlayer::getNextChunk() {
|
||||
sampleStream = new Common::MemoryReadStream(buffer, sampleCLength, DisposeAfterUse::YES);
|
||||
|
||||
delete _curChunk;
|
||||
_curChunk = makeADPCMStream(sampleStream, true, sampleCLength,
|
||||
_curChunk = makeADPCMStream(sampleStream, DisposeAfterUse::YES, sampleCLength,
|
||||
Audio::kADPCMTinsel8, 22050, 1, 32);
|
||||
|
||||
_state = S_MID;
|
||||
|
@ -34,7 +34,7 @@ namespace Audio {
|
||||
class ADPCMInputStream : public RewindableAudioStream {
|
||||
private:
|
||||
Common::SeekableReadStream *_stream;
|
||||
bool _disposeAfterUse;
|
||||
DisposeAfterUse::Flag _disposeAfterUse;
|
||||
int32 _startpos;
|
||||
int32 _endpos;
|
||||
int _channels;
|
||||
@ -82,7 +82,7 @@ private:
|
||||
int16 decodeTinsel(int16, double);
|
||||
|
||||
public:
|
||||
ADPCMInputStream(Common::SeekableReadStream *stream, bool disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign);
|
||||
ADPCMInputStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign);
|
||||
~ADPCMInputStream();
|
||||
|
||||
int readBuffer(int16 *buffer, const int numSamples);
|
||||
@ -114,7 +114,7 @@ public:
|
||||
// In addition, also MS IMA ADPCM is supported. See
|
||||
// <http://wiki.multimedia.cx/index.php?title=Microsoft_IMA_ADPCM>.
|
||||
|
||||
ADPCMInputStream::ADPCMInputStream(Common::SeekableReadStream *stream, bool disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign)
|
||||
ADPCMInputStream::ADPCMInputStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign)
|
||||
: _stream(stream), _disposeAfterUse(disposeAfterUse), _channels(channels), _type(type), _blockAlign(blockAlign), _rate(rate) {
|
||||
|
||||
if (type == kADPCMMSIma && blockAlign == 0)
|
||||
@ -142,7 +142,7 @@ ADPCMInputStream::ADPCMInputStream(Common::SeekableReadStream *stream, bool disp
|
||||
}
|
||||
|
||||
ADPCMInputStream::~ADPCMInputStream() {
|
||||
if (_disposeAfterUse)
|
||||
if (_disposeAfterUse == DisposeAfterUse::YES)
|
||||
delete _stream;
|
||||
}
|
||||
|
||||
@ -626,7 +626,7 @@ int16 ADPCMInputStream::decodeTinsel(int16 code, double eVal) {
|
||||
return (int16) CLIP<double>(sample, -32768.0, 32767.0);
|
||||
}
|
||||
|
||||
RewindableAudioStream *makeADPCMStream(Common::SeekableReadStream *stream, bool disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign) {
|
||||
RewindableAudioStream *makeADPCMStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, typesADPCM type, int rate, int channels, uint32 blockAlign) {
|
||||
return new ADPCMInputStream(stream, disposeAfterUse, size, type, rate, channels, blockAlign);
|
||||
}
|
||||
|
||||
|
@ -75,7 +75,7 @@ enum typesADPCM {
|
||||
*/
|
||||
RewindableAudioStream *makeADPCMStream(
|
||||
Common::SeekableReadStream *stream,
|
||||
bool disposeAfterUse,
|
||||
DisposeAfterUse::Flag disposeAfterUse,
|
||||
uint32 size, typesADPCM type,
|
||||
int rate = 22050,
|
||||
int channels = 2,
|
||||
|
Loading…
Reference in New Issue
Block a user