From 8931a17f0a24b18cb2e3ce5cfc27a31ab83b67f7 Mon Sep 17 00:00:00 2001 From: cxgeorge <> Date: Wed, 9 Oct 2002 05:40:20 +0000 Subject: [PATCH] dbg prints --- panda/src/audiotraits/config_milesAudio.cxx | 2 ++ panda/src/audiotraits/config_milesAudio.h | 2 ++ panda/src/audiotraits/milesAudioManager.cxx | 12 +++++++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/panda/src/audiotraits/config_milesAudio.cxx b/panda/src/audiotraits/config_milesAudio.cxx index 5e92d65a71..8961f0aa04 100644 --- a/panda/src/audiotraits/config_milesAudio.cxx +++ b/panda/src/audiotraits/config_milesAudio.cxx @@ -31,6 +31,8 @@ ConfigureFn(config_milesAudio) { init_libMilesAudio(); } +bool miles_audio_force_midi_reset = config_milesAudio.GetBool("audio-force-midi-reset", true); + //////////////////////////////////////////////////////////////////// // Function: init_libMilesAudio // Description: Initializes the library. This must be called at diff --git a/panda/src/audiotraits/config_milesAudio.h b/panda/src/audiotraits/config_milesAudio.h index d42272c7b6..3355d6da57 100644 --- a/panda/src/audiotraits/config_milesAudio.h +++ b/panda/src/audiotraits/config_milesAudio.h @@ -28,6 +28,8 @@ ConfigureDecl(config_milesAudio, EXPCL_MILES_AUDIO, EXPTP_MILES_AUDIO); NotifyCategoryDecl(milesAudio, EXPCL_MILES_AUDIO, EXPTP_MILES_AUDIO); +extern bool miles_audio_force_midi_reset; + extern EXPCL_MILES_AUDIO void init_libMilesAudio(); #endif //] diff --git a/panda/src/audiotraits/milesAudioManager.cxx b/panda/src/audiotraits/milesAudioManager.cxx index 52d8a4f78b..d8fa75c946 100644 --- a/panda/src/audiotraits/milesAudioManager.cxx +++ b/panda/src/audiotraits/milesAudioManager.cxx @@ -97,7 +97,7 @@ MilesAudioManager() { _cache_limit = audio_cache_limit; _is_valid = true; _bHasMidiSounds = false; - if (!_active_managers) { + if (_active_managers==0) { S32 use_digital=(audio_play_wave || audio_play_mp3)?1:0; S32 use_MIDI=(audio_play_midi)?1:0; if (audio_play_midi && audio_software_midi) { @@ -184,7 +184,7 @@ MilesAudioManager:: clear_cache(); --_active_managers; audio_debug(" _active_managers="<<_active_managers); - if (!_active_managers) { + if (_active_managers==0) { if (audio_software_midi) { HDLSDEVICE dls; AIL_quick_handles(0, 0, &dls); @@ -491,13 +491,19 @@ stop_all_sounds(void) { void MilesAudioManager:: forceMidiReset(void) { + if(!miles_audio_force_midi_reset) { + audio_debug("MilesAudioManager::skipping forceMidiReset"); + return; + } + audio_debug("MilesAudioManager::ForceMidiReset"); - + // sometimes Miles seems to leave midi notes hanging, even after stop is called, // so perform an explicit reset using winMM.dll calls, just to ensure silence. HMDIDRIVER hMid=NULL; AIL_quick_handles(0, &hMid, 0); if ((hMid!=NULL) && (hMid->deviceid != MIDI_NULL_DRIVER) && (hMid->hMidiOut != NULL)) { + audio_debug("MilesAudioManager::calling midiOutReset"); midiOutReset(hMid->hMidiOut); } }