aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorPaweł Kołodziejski2004-05-02 16:46:51 +0000
committerPaweł Kołodziejski2004-05-02 16:46:51 +0000
commit8e56e7b0bb47a30b64906d9d917514404132894b (patch)
tree8b182113b6fc42e7c665d7c66ee89f685ea62c9d /scumm
parent86c055b7965f49c01a79e5ac750f79c07ef7da68 (diff)
downloadscummvm-rg350-8e56e7b0bb47a30b64906d9d917514404132894b.tar.gz
scummvm-rg350-8e56e7b0bb47a30b64906d9d917514404132894b.tar.bz2
scummvm-rg350-8e56e7b0bb47a30b64906d9d917514404132894b.zip
- fix for cuting voices in comi,
- fix for lipsync stuff (compromise append buffer ahead to sync position) svn-id: r13753
Diffstat (limited to 'scumm')
-rw-r--r--scumm/imuse_digi/dimuse.cpp8
-rw-r--r--scumm/imuse_digi/dimuse_script.cpp2
2 files changed, 5 insertions, 5 deletions
diff --git a/scumm/imuse_digi/dimuse.cpp b/scumm/imuse_digi/dimuse.cpp
index 73956e8ecf..05ac57af1d 100644
--- a/scumm/imuse_digi/dimuse.cpp
+++ b/scumm/imuse_digi/dimuse.cpp
@@ -237,12 +237,12 @@ void IMuseDigital::callback() {
int bits = _sound->getBits(_track[l]->soundHandle);
int channels = _sound->getChannels(_track[l]->soundHandle);
- int32 freeSpace = _track[l]->stream->getFreeSpace() - 4;
- int32 bufferMin = (_track[l]->iteration * 3) / 4;
- if (bufferMin > freeSpace)
+ int32 bufferUsage = _track[l]->iteration - _track[l]->stream->getFreeSpace() - 4;
+ int32 bufferMin = (_track[l]->iteration * 1) / 10;
+ if (bufferMin < bufferUsage)
continue;
- int32 mixer_size = freeSpace;
+ int32 mixer_size = bufferMin - bufferUsage;
if ((bits == 12) || (bits == 16)) {
if (channels == 1)
diff --git a/scumm/imuse_digi/dimuse_script.cpp b/scumm/imuse_digi/dimuse_script.cpp
index 630c13826e..43fa626845 100644
--- a/scumm/imuse_digi/dimuse_script.cpp
+++ b/scumm/imuse_digi/dimuse_script.cpp
@@ -244,7 +244,7 @@ int IMuseDigital::getSoundStatus(int sound) const {
Common::StackLock lock(_mutex, "IMuseDigital::getSoundStatus()");
debug(5, "IMuseDigital::getSoundStatus(%d)", sound);
for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
- if ((_track[l]->soundId == sound) && _track[l]->used) {
+ if ((_track[l]->soundId == sound) && _track[l]->handle.isActive()) {
return 1;
}
}