mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 14:50:17 +00:00
- Removed the resetDriver() hack. The reason why notes stopped being played sometimes was actually mixer->stopAll(), which stopped the music stream as well (spotted by waltervn)
- Hooked setReverb() to actually set music reverb svn-id: r47392
This commit is contained in:
parent
dbe665908e
commit
f0e6c3f142
@ -1885,8 +1885,6 @@ static EngineState *_game_run(EngineState *&s, int restoring) {
|
||||
game_init(s);
|
||||
#ifdef USE_OLD_MUSIC_FUNCTIONS
|
||||
s->_sound.sfx_reset_player();
|
||||
#else
|
||||
s->_soundCmd->resetDriver();
|
||||
#endif
|
||||
_init_stack_base_with_selector(s, s->_kernel->_selectorCache.play);
|
||||
|
||||
|
@ -91,8 +91,6 @@ void SciMusic::init() {
|
||||
}
|
||||
|
||||
void SciMusic::clearPlayList() {
|
||||
_pMixer->stopAll();
|
||||
|
||||
_mutex.lock();
|
||||
while (!_playList.empty()) {
|
||||
soundStop(_playList[0]);
|
||||
@ -134,23 +132,10 @@ MusicEntry *SciMusic::getSlot(reg_t obj) {
|
||||
}
|
||||
|
||||
void SciMusic::setReverb(byte reverb) {
|
||||
Common::StackLock lock(_mutex);
|
||||
_reverb = reverb;
|
||||
|
||||
// TODO: actually set reverb for MT-32
|
||||
|
||||
// A good test case for this are the first two rooms in Longbow:
|
||||
// reverb is set for the first room (the cave) and is subsequently
|
||||
// cleared when Robin exits the cave
|
||||
}
|
||||
|
||||
void SciMusic::resetDriver() {
|
||||
Common::StackLock lock(_mutex);
|
||||
|
||||
// TODO/FIXME: is there any better way to reset the driver?
|
||||
|
||||
_pMidiDrv->close();
|
||||
_pMidiDrv->open();
|
||||
_pMidiDrv->setTimerCallback(this, &miditimerCallback);
|
||||
_pMidiDrv->setReverb(reverb);
|
||||
}
|
||||
|
||||
static int f_compare(const void *arg1, const void *arg2) {
|
||||
|
@ -187,8 +187,6 @@ public:
|
||||
|
||||
void setReverb(byte reverb);
|
||||
|
||||
void resetDriver();
|
||||
|
||||
#ifndef USE_OLD_MUSIC_FUNCTIONS
|
||||
virtual void saveLoadWithSerializer(Common::Serializer &ser);
|
||||
#endif
|
||||
|
@ -1065,8 +1065,6 @@ void SoundCommandParser::reconstructPlayList(int savegame_version) {
|
||||
#ifndef USE_OLD_MUSIC_FUNCTIONS
|
||||
Common::StackLock lock(_music->_mutex);
|
||||
|
||||
_music->resetDriver();
|
||||
|
||||
const MusicList::iterator end = _music->getPlayListEnd();
|
||||
for (MusicList::iterator i = _music->getPlayListStart(); i != end; ++i) {
|
||||
if (savegame_version < 14) {
|
||||
@ -1096,12 +1094,6 @@ void SoundCommandParser::printPlayList(Console *con) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void SoundCommandParser::resetDriver() {
|
||||
#ifndef USE_OLD_MUSIC_FUNCTIONS
|
||||
_music->resetDriver();
|
||||
#endif
|
||||
}
|
||||
|
||||
void SoundCommandParser::setMasterVolume(int vol) {
|
||||
#ifndef USE_OLD_MUSIC_FUNCTIONS
|
||||
_music->soundSetMasterVolume(vol);
|
||||
|
@ -62,7 +62,6 @@ public:
|
||||
void syncPlayList(Common::Serializer &s);
|
||||
void reconstructPlayList(int savegame_version);
|
||||
void printPlayList(Console *con);
|
||||
void resetDriver();
|
||||
void setMasterVolume(int vol);
|
||||
|
||||
#ifndef USE_OLD_MUSIC_FUNCTIONS
|
||||
|
Loading…
Reference in New Issue
Block a user