aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/smush/imuse_channel.cpp
diff options
context:
space:
mode:
authorMax Horn2006-10-28 00:18:13 +0000
committerMax Horn2006-10-28 00:18:13 +0000
commit48e5ec67ffcc3f45816507d53d7b276414a31867 (patch)
treecf4b88062da3f829b45aadb980c3bf25c64006cd /engines/scumm/smush/imuse_channel.cpp
parentd90762c430d9ee20ca4137d324aac5dc8308fdd6 (diff)
downloadscummvm-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.cpp30
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