aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/smush/imuse_channel.cpp
diff options
context:
space:
mode:
authorMax Horn2006-10-27 22:26:33 +0000
committerMax Horn2006-10-27 22:26:33 +0000
commitec653efc8bee4068046889456b1f25433dffe30f (patch)
treea6c8f64355d42703958482e92bccd766a2c653b5 /engines/scumm/smush/imuse_channel.cpp
parent9f85511537f460d70bf8b3b22ff77327554e752d (diff)
downloadscummvm-rg350-ec653efc8bee4068046889456b1f25433dffe30f.tar.gz
scummvm-rg350-ec653efc8bee4068046889456b1f25433dffe30f.tar.bz2
scummvm-rg350-ec653efc8bee4068046889456b1f25433dffe30f.zip
SCUMM: Unified some SMUSH audio channel code
svn-id: r24536
Diffstat (limited to 'engines/scumm/smush/imuse_channel.cpp')
-rw-r--r--engines/scumm/smush/imuse_channel.cpp33
1 files changed, 11 insertions, 22 deletions
diff --git a/engines/scumm/smush/imuse_channel.cpp b/engines/scumm/smush/imuse_channel.cpp
index c679c3f6ff..aca8bf6d4a 100644
--- a/engines/scumm/smush/imuse_channel.cpp
+++ b/engines/scumm/smush/imuse_channel.cpp
@@ -29,25 +29,10 @@
namespace Scumm {
-ImuseChannel::ImuseChannel(int32 track, int32 freq) :
- _track(track),
- _tbuffer(0),
- _tbufferSize(0),
- _sbuffer(0),
- _sbufferSize(0),
- _frequency(freq),
- _dataSize(-1),
- _inData(false) {
+ImuseChannel::ImuseChannel(int32 track) : SmushChannel(track) {
}
ImuseChannel::~ImuseChannel() {
- if (_tbuffer) {
- delete []_tbuffer;
- }
- if (_sbuffer) {
- warning("_sbuffer should be 0 !!!");
- delete []_sbuffer;
- }
}
bool ImuseChannel::isTerminated() const {
@@ -260,14 +245,16 @@ bool ImuseChannel::processBuffer() {
if (_inData) {
if (_dataSize < _tbufferSize) {
- int32 offset= _dataSize;
- while (handleSubTags(offset));
+ int32 offset = _dataSize;
+ while (handleSubTags(offset))
+ ;
_sbufferSize = _dataSize;
_sbuffer = _tbuffer;
if (offset < _tbufferSize) {
- int32 new_size = _tbufferSize - offset;
+ int new_size = _tbufferSize - offset;
_tbuffer = new byte[new_size];
- if (!_tbuffer) error("imuse_channel failed to allocate memory");
+ if (!_tbuffer)
+ error("imuse_channel failed to allocate memory");
memcpy(_tbuffer, _sbuffer + offset, new_size);
_tbufferSize = new_size;
} else {
@@ -286,12 +273,14 @@ bool ImuseChannel::processBuffer() {
}
} else {
int32 offset = 0;
- while (handleSubTags(offset));
+ while (handleSubTags(offset))
+ ;
if (_inData) {
_sbufferSize = _tbufferSize - offset;
assert(_sbufferSize);
_sbuffer = new byte[_sbufferSize];
- if (!_sbuffer) error("imuse_channel failed to allocate memory");
+ if (!_sbuffer)
+ error("imuse_channel failed to allocate memory");
memcpy(_sbuffer, _tbuffer + offset, _sbufferSize);
delete []_tbuffer;
_tbuffer = 0;