SCI: fix regression of r52569

fade in/out of samples

svn-id: r52604
This commit is contained in:
Martin Kiewitz 2010-09-06 18:23:03 +00:00
parent c78a63460b
commit 2bf82a8354
3 changed files with 9 additions and 1 deletions

View File

@ -431,6 +431,13 @@ void SciMusic::soundSetVolume(MusicEntry *pSnd, byte volume) {
}
}
// this is used to set volume of the sample, used for fading only!
void SciMusic::soundSetSampleVolume(MusicEntry *pSnd, byte volume) {
assert(volume <= MUSIC_VOLUME_MAX);
assert(pSnd->pStreamAud);
_pMixer->setChannelVolume(pSnd->hCurrentAud, volume * 2); // Mixer is 0-255, SCI is 0-127
}
void SciMusic::soundSetPriority(MusicEntry *pSnd, byte prio) {
Common::StackLock lock(_mutex);

View File

@ -148,6 +148,7 @@ public:
void soundResume(MusicEntry *pSnd);
void soundToggle(MusicEntry *pSnd, bool pause);
void soundSetVolume(MusicEntry *pSnd, byte volume);
void soundSetSampleVolume(MusicEntry *pSnd, byte volume);
void soundSetPriority(MusicEntry *pSnd, byte prio);
uint16 soundGetMasterVolume();
void soundSetMasterVolume(uint16 vol);

View File

@ -402,7 +402,7 @@ void SoundCommandParser::processUpdateCues(reg_t obj) {
}
// We get a flag from MusicEntry::doFade() here to set volume for the stream
if (musicSlot->fadeSetVolume) {
_music->soundSetVolume(musicSlot, musicSlot->volume);
_music->soundSetSampleVolume(musicSlot, musicSlot->volume);
musicSlot->fadeSetVolume = false;
}
} else if (musicSlot->pMidiParser) {