diff options
author | Matthew Hoops | 2015-06-05 22:49:03 -0400 |
---|---|---|
committer | Matthew Hoops | 2015-06-06 17:20:41 -0400 |
commit | b6fdc7be888034eb67e7b667a8d362105067a7ca (patch) | |
tree | 469f6a0c3c4c380ebeedf753a6554c7baa2f4c11 /audio | |
parent | 7eb663a45b7c6f1ae65ce118fe059c6e4b62f1a8 (diff) | |
download | scummvm-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 'audio')
-rw-r--r-- | audio/decoders/aiff.cpp | 21 | ||||
-rw-r--r-- | audio/decoders/aiff.h | 9 |
2 files changed, 8 insertions, 22 deletions
diff --git a/audio/decoders/aiff.cpp b/audio/decoders/aiff.cpp index 3a5849f6fd..7d6ed43575 100644 --- a/audio/decoders/aiff.cpp +++ b/audio/decoders/aiff.cpp @@ -33,6 +33,7 @@ #include "common/substream.h" #include "common/textconsole.h" +#include "audio/audiostream.h" #include "audio/decoders/aiff.h" #include "audio/decoders/raw.h" #include "audio/decoders/3do.h" @@ -71,13 +72,7 @@ static const uint32 kVersionAIFC = MKTAG('A', 'I', 'F', 'C'); // Codecs static const uint32 kCodecPCM = MKTAG('N', 'O', 'N', 'E'); // very original -// temporary Wrapper -// TODO: adjust all calling code to use makeAIFFAudioStream() and dynamic_cast -SeekableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse) { - return dynamic_cast<Audio::SeekableAudioStream *>(makeAIFFAudioStream(stream, disposeAfterUse)); -} - -AudioStream *makeAIFFAudioStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse) { +RewindableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse) { if (stream->readUint32BE() != MKTAG('F', 'O', 'R', 'M')) { warning("makeAIFFStream: No 'FORM' header"); @@ -192,8 +187,6 @@ AudioStream *makeAIFFAudioStream(Common::SeekableReadStream *stream, DisposeAfte return 0; } - bool stereo = channels > 1 ? true : false; - switch (codec) { case kCodecPCM: case MKTAG('t', 'w', 'o', 's'): @@ -202,7 +195,7 @@ AudioStream *makeAIFFAudioStream(Common::SeekableReadStream *stream, DisposeAfte byte rawFlags = 0; if (bitsPerSample == 16) rawFlags |= Audio::FLAG_16BITS; - if (stereo) + if (channels == 2) rawFlags |= Audio::FLAG_STEREO; if (codec == MKTAG('s', 'o', 'w', 't')) rawFlags |= Audio::FLAG_LITTLE_ENDIAN; @@ -210,9 +203,7 @@ AudioStream *makeAIFFAudioStream(Common::SeekableReadStream *stream, DisposeAfte return makeRawStream(dataStream, rate, rawFlags); } case MKTAG('i', 'm', 'a', '4'): - // TODO: QT IMA ADPCM is not Seekable - // Need to make this function return only an AudioStream and adapt - // calling code to use dynamic_cast. + // TODO: Use QT IMA ADPCM warning("Unhandled AIFF-C QT IMA ADPCM compression"); break; case MKTAG('Q', 'D', 'M', '2'): @@ -222,10 +213,10 @@ AudioStream *makeAIFFAudioStream(Common::SeekableReadStream *stream, DisposeAfte break; case MKTAG('A', 'D', 'P', '4'): // ADP4 on 3DO - return make3DO_ADP4AudioStream(dataStream, rate, stereo); + return make3DO_ADP4AudioStream(dataStream, rate, channels == 2); case MKTAG('S', 'D', 'X', '2'): // SDX2 on 3DO - return make3DO_SDX2AudioStream(dataStream, rate, stereo); + return make3DO_SDX2AudioStream(dataStream, rate, channels == 2); default: warning("Unhandled AIFF-C compression tag '%s'", tag2str(codec)); } diff --git a/audio/decoders/aiff.h b/audio/decoders/aiff.h index 14bfd05ad9..3af2efb4c9 100644 --- a/audio/decoders/aiff.h +++ b/audio/decoders/aiff.h @@ -42,8 +42,7 @@ class SeekableReadStream; namespace Audio { -class AudioStream; -class SeekableAudioStream; +class RewindableAudioStream; /** * Try to load an AIFF from the given seekable stream and create an AudioStream @@ -53,11 +52,7 @@ class SeekableAudioStream; * @param disposeAfterUse whether to delete the stream after use * @return a new SeekableAudioStream, or NULL, if an error occurred */ -SeekableAudioStream *makeAIFFStream( - Common::SeekableReadStream *stream, - DisposeAfterUse::Flag disposeAfterUse); - -AudioStream *makeAIFFAudioStream( +RewindableAudioStream *makeAIFFStream( Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse); |