diff options
author | Paweł Kołodziejski | 2004-05-02 16:46:51 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2004-05-02 16:46:51 +0000 |
commit | 8e56e7b0bb47a30b64906d9d917514404132894b (patch) | |
tree | 8b182113b6fc42e7c665d7c66ee89f685ea62c9d /scumm/imuse_digi | |
parent | 86c055b7965f49c01a79e5ac750f79c07ef7da68 (diff) | |
download | scummvm-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/imuse_digi')
-rw-r--r-- | scumm/imuse_digi/dimuse.cpp | 8 | ||||
-rw-r--r-- | scumm/imuse_digi/dimuse_script.cpp | 2 |
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; } } |