diff options
author | Max Horn | 2006-10-28 00:18:13 +0000 |
---|---|---|
committer | Max Horn | 2006-10-28 00:18:13 +0000 |
commit | 48e5ec67ffcc3f45816507d53d7b276414a31867 (patch) | |
tree | cf4b88062da3f829b45aadb980c3bf25c64006cd /engines/scumm/smush/imuse_channel.cpp | |
parent | d90762c430d9ee20ca4137d324aac5dc8308fdd6 (diff) | |
download | scummvm-rg350-48e5ec67ffcc3f45816507d53d7b276414a31867.tar.gz scummvm-rg350-48e5ec67ffcc3f45816507d53d7b276414a31867.tar.bz2 scummvm-rg350-48e5ec67ffcc3f45816507d53d7b276414a31867.zip |
SCUMM: Further SMUSH audio channel cleanup; this time unified some code, and got rid of one set of memory buffers
svn-id: r24542
Diffstat (limited to 'engines/scumm/smush/imuse_channel.cpp')
-rw-r--r-- | engines/scumm/smush/imuse_channel.cpp | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/engines/scumm/smush/imuse_channel.cpp b/engines/scumm/smush/imuse_channel.cpp index d05192eadd..b9600f36e8 100644 --- a/engines/scumm/smush/imuse_channel.cpp +++ b/engines/scumm/smush/imuse_channel.cpp @@ -246,36 +246,16 @@ bool ImuseChannel::handleSubTags(int32 &offset) { return false; } -int32 ImuseChannel::getAvailableSoundDataSize(void) const { - int32 ret = _sbufferSize; - if (_channels == 2) ret /= 2; - if (_bitsize > 8) ret /= 2; - return ret; -} - -void ImuseChannel::getSoundData(int16 *snd, int32 size) { - if (_dataSize <= 0 || _bitsize <= 8) error("invalid call to imuse_channel::read_sound_data()"); - if (_channels == 2) size *= 2; - - memcpy(snd, _sbuffer, size * 2); +byte *ImuseChannel::getSoundData() { + byte *tmp = _sbuffer; - delete []_sbuffer; - assert(_sbufferSize == 2 * size); - _sbuffer = 0; - _sbufferSize = 0; + assert(_dataSize > 0); _dataSize -= _srbufferSize; -} - -void ImuseChannel::getSoundData(int8 *snd, int32 size) { - if (_dataSize <= 0 || _bitsize > 8) error("invalid call to imuse_channel::read_sound_data()"); - if (_channels == 2) size *= 2; - - memcpy(snd, _sbuffer, size); - delete []_sbuffer; _sbuffer = 0; _sbufferSize = 0; - _dataSize -= _srbufferSize; + + return tmp; } } // End of namespace Scumm |