aboutsummaryrefslogtreecommitdiff
path: root/engines/sword1
diff options
context:
space:
mode:
authorMax Horn2009-10-14 22:37:05 +0000
committerMax Horn2009-10-14 22:37:05 +0000
commit6a2985ba08fc030d93d625615d7b1b5604fbc98c (patch)
treee25a72cfb73129ded78f0b72269778b7f98fe868 /engines/sword1
parenta7e6f50ede79a0f7f1ca89ae6900d838cf4fe334 (diff)
downloadscummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.tar.gz
scummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.tar.bz2
scummvm-rg350-6a2985ba08fc030d93d625615d7b1b5604fbc98c.zip
Patch #2834677: Wave/ADPCM Endianness Fixes
svn-id: r45095
Diffstat (limited to 'engines/sword1')
-rw-r--r--engines/sword1/music.cpp39
1 files changed, 1 insertions, 38 deletions
diff --git a/engines/sword1/music.cpp b/engines/sword1/music.cpp
index e30ba96bb7..8c0315052f 100644
--- a/engines/sword1/music.cpp
+++ b/engines/sword1/music.cpp
@@ -120,43 +120,6 @@ int BaseAudioStream::readBuffer(int16 *buffer, const int numSamples) {
return retVal;
}
-class WaveAudioStream : public BaseAudioStream {
-public:
- WaveAudioStream(Common::SeekableReadStream *source, bool loop);
- virtual int readBuffer(int16 *buffer, const int numSamples);
-private:
- virtual void rewind();
-};
-
-WaveAudioStream::WaveAudioStream(Common::SeekableReadStream *source, bool loop) : BaseAudioStream(source, loop) {
- rewind();
-
- if (_samplesLeft == 0)
- _loop = false;
-}
-
-void WaveAudioStream::rewind() {
- int rate, size;
- byte flags;
-
- _sourceStream->seek(0);
-
- if (Audio::loadWAVFromStream(*_sourceStream, size, rate, flags)) {
- reinit(size, rate, flags);
- }
-}
-
-int WaveAudioStream::readBuffer(int16 *buffer, const int numSamples) {
- int retVal = BaseAudioStream::readBuffer(buffer, numSamples);
-
- if (_bitsPerSample == 16) {
- for (int i = 0; i < retVal; i++) {
- buffer[i] = (int16)READ_LE_UINT16(buffer + i);
- }
- }
-
- return retVal;
-}
class AiffAudioStream : public BaseAudioStream {
public:
@@ -252,7 +215,7 @@ bool MusicHandle::play(const char *fileBase, bool loop) {
if (!_audioSource) {
sprintf(fileName, "%s.wav", fileBase);
if (_file.open(fileName))
- _audioSource = new WaveAudioStream(&_file, loop);
+ _audioSource = Audio::makeWAVStream(&_file, false, loop ? 0 : 1);
}
if (!_audioSource) {