aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorMatthew Hoops2015-06-05 22:49:03 -0400
committerMatthew Hoops2015-06-06 17:20:41 -0400
commitb6fdc7be888034eb67e7b667a8d362105067a7ca (patch)
tree469f6a0c3c4c380ebeedf753a6554c7baa2f4c11 /audio
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 'audio')
-rw-r--r--audio/decoders/aiff.cpp21
-rw-r--r--audio/decoders/aiff.h9
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);