aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/imuse_digi/dimuse.cpp
diff options
context:
space:
mode:
authorMax Horn2008-01-05 22:57:36 +0000
committerMax Horn2008-01-05 22:57:36 +0000
commit56ad5f493e5ead7915b687d1d25e73adee5ffbff (patch)
tree2ce8f4a3720e83a74dfb74355673f22b0cf5a6e6 /engines/scumm/imuse_digi/dimuse.cpp
parent7ebdffb0cd1bb7f8bcaa2359d8a94c7a109b5104 (diff)
downloadscummvm-rg350-56ad5f493e5ead7915b687d1d25e73adee5ffbff.tar.gz
scummvm-rg350-56ad5f493e5ead7915b687d1d25e73adee5ffbff.tar.bz2
scummvm-rg350-56ad5f493e5ead7915b687d1d25e73adee5ffbff.zip
Play SOU data instantly, not slightly delayed -> allows us to get rid of Track::streamSou & Track::mixerStreamRunning (have not yet removed the latter to avoid introducing a new savegame version)
svn-id: r30268
Diffstat (limited to 'engines/scumm/imuse_digi/dimuse.cpp')
-rw-r--r--engines/scumm/imuse_digi/dimuse.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/engines/scumm/imuse_digi/dimuse.cpp b/engines/scumm/imuse_digi/dimuse.cpp
index 25091e5309..c79cc833ee 100644
--- a/engines/scumm/imuse_digi/dimuse.cpp
+++ b/engines/scumm/imuse_digi/dimuse.cpp
@@ -39,7 +39,7 @@
namespace Scumm {
IMuseDigital::Track::Track()
- : soundId(-1), used(false), stream(NULL), streamSou(NULL) {
+ : soundId(-1), used(false), stream(NULL) {
}
void IMuseDigital::timer_handler(void *refCon) {
@@ -129,7 +129,7 @@ void IMuseDigital::saveOrLoad(Serializer *ser) {
MKLINE(Track, used, sleByte, VER(31)),
MKLINE(Track, toBeRemoved, sleByte, VER(31)),
MKLINE(Track, souStreamUsed, sleByte, VER(31)),
- MKLINE(Track, mixerStreamRunning, sleByte, VER(31)),
+ MKLINE(Track, mixerStreamRunning, sleByte, VER(31)), // FIXME: OBSOLETE, remove this!
MKLINE(Track, soundPriority, sleInt32, VER(31)),
MKLINE(Track, regionOffset, sleInt32, VER(31)),
MK_OBSOLETE(Track, trackOffset, sleInt32, VER(31), VER(31)),
@@ -336,16 +336,8 @@ void IMuseDigital::callback() {
} while (feedSize != 0);
} else {
if (_mixer->isReady()) {
- // FIXME: Can't we replace track->mixerStreamRunning by
- // _mixer->isSoundHandleActive(track->mixChanHandle) ?
- if (!track->mixerStreamRunning) {
- track->mixerStreamRunning = true;
- assert(track->streamSou);
- _mixer->playInputStream(track->getType(), &track->mixChanHandle, track->streamSou, -1, track->getVol(), track->getPan());
- } else {
- _mixer->setChannelVolume(track->mixChanHandle, track->getVol());
- _mixer->setChannelBalance(track->mixChanHandle, track->getPan());
- }
+ _mixer->setChannelVolume(track->mixChanHandle, track->getVol());
+ _mixer->setChannelBalance(track->mixChanHandle, track->getPan());
}
}
}