diff options
author | Max Horn | 2009-10-14 22:37:05 +0000 |
---|---|---|
committer | Max Horn | 2009-10-14 22:37:05 +0000 |
commit | 6a2985ba08fc030d93d625615d7b1b5604fbc98c (patch) | |
tree | e25a72cfb73129ded78f0b72269778b7f98fe868 /engines/sword1 | |
parent | a7e6f50ede79a0f7f1ca89ae6900d838cf4fe334 (diff) | |
download | scummvm-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.cpp | 39 |
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) { |