From b6fdc7be888034eb67e7b667a8d362105067a7ca Mon Sep 17 00:00:00 2001 From: Matthew Hoops Date: Fri, 5 Jun 2015 22:49:03 -0400 Subject: AUDIO: Make makeAIFFStream return a RewindableAudioStream All callers requiring SeekableAudioStream have been adapted by using dynamic_cast --- engines/sci/sound/audio.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'engines/sci') diff --git a/engines/sci/sound/audio.cpp b/engines/sci/sound/audio.cpp index 757d622962..fb9a3f17b9 100644 --- a/engines/sci/sound/audio.cpp +++ b/engines/sci/sound/audio.cpp @@ -391,7 +391,13 @@ Audio::RewindableAudioStream *AudioPlayer::getAudioStream(uint32 number, uint32 } else if (audioRes->size > 4 && READ_BE_UINT32(audioRes->data) == MKTAG('F','O','R','M')) { // AIFF detected Common::SeekableReadStream *waveStream = new Common::MemoryReadStream(audioRes->data, audioRes->size, DisposeAfterUse::NO); - audioSeekStream = Audio::makeAIFFStream(waveStream, DisposeAfterUse::YES); + Audio::RewindableAudioStream *rewindStream = Audio::makeAIFFStream(waveStream, DisposeAfterUse::YES); + audioSeekStream = dynamic_cast(rewindStream); + + if (!audioSeekStream) { + warning("AIFF file is not seekable"); + delete rewindStream; + } } else if (audioRes->size > 14 && READ_BE_UINT16(audioRes->data) == 1 && READ_BE_UINT16(audioRes->data + 2) == 1 && READ_BE_UINT16(audioRes->data + 4) == 5 && READ_BE_UINT32(audioRes->data + 10) == 0x00018051) { // Mac snd detected -- cgit v1.2.3