aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorMatthew Hoops2015-06-05 22:49:03 -0400
committerMatthew Hoops2015-06-06 17:20:41 -0400
commitb6fdc7be888034eb67e7b667a8d362105067a7ca (patch)
tree469f6a0c3c4c380ebeedf753a6554c7baa2f4c11 /engines/sci
parent7eb663a45b7c6f1ae65ce118fe059c6e4b62f1a8 (diff)
downloadscummvm-rg350-b6fdc7be888034eb67e7b667a8d362105067a7ca.tar.gz
scummvm-rg350-b6fdc7be888034eb67e7b667a8d362105067a7ca.tar.bz2
scummvm-rg350-b6fdc7be888034eb67e7b667a8d362105067a7ca.zip
AUDIO: Make makeAIFFStream return a RewindableAudioStream
All callers requiring SeekableAudioStream have been adapted by using dynamic_cast
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/audio.cpp8
1 files changed, 7 insertions, 1 deletions
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<Audio::SeekableAudioStream *>(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