Browse Source

dbg prints

cxgeorge 23 years ago
parent
commit
8931a17f0a

+ 2 - 0
panda/src/audiotraits/config_milesAudio.cxx

@@ -31,6 +31,8 @@ ConfigureFn(config_milesAudio) {
   init_libMilesAudio();
   init_libMilesAudio();
 }
 }
 
 
+bool miles_audio_force_midi_reset = config_milesAudio.GetBool("audio-force-midi-reset", true);
+
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////
 //     Function: init_libMilesAudio
 //     Function: init_libMilesAudio
 //  Description: Initializes the library.  This must be called at
 //  Description: Initializes the library.  This must be called at

+ 2 - 0
panda/src/audiotraits/config_milesAudio.h

@@ -28,6 +28,8 @@
 ConfigureDecl(config_milesAudio, EXPCL_MILES_AUDIO, EXPTP_MILES_AUDIO);
 ConfigureDecl(config_milesAudio, EXPCL_MILES_AUDIO, EXPTP_MILES_AUDIO);
 NotifyCategoryDecl(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();
 extern EXPCL_MILES_AUDIO void init_libMilesAudio();
 
 
 #endif //]
 #endif //]

+ 9 - 3
panda/src/audiotraits/milesAudioManager.cxx

@@ -97,7 +97,7 @@ MilesAudioManager() {
   _cache_limit = audio_cache_limit;
   _cache_limit = audio_cache_limit;
   _is_valid = true;
   _is_valid = true;
   _bHasMidiSounds = false;
   _bHasMidiSounds = false;
-  if (!_active_managers) {
+  if (_active_managers==0) {
     S32 use_digital=(audio_play_wave || audio_play_mp3)?1:0;
     S32 use_digital=(audio_play_wave || audio_play_mp3)?1:0;
     S32 use_MIDI=(audio_play_midi)?1:0;
     S32 use_MIDI=(audio_play_midi)?1:0;
     if (audio_play_midi && audio_software_midi) {
     if (audio_play_midi && audio_software_midi) {
@@ -184,7 +184,7 @@ MilesAudioManager::
   clear_cache();
   clear_cache();
   --_active_managers;
   --_active_managers;
   audio_debug("  _active_managers="<<_active_managers);
   audio_debug("  _active_managers="<<_active_managers);
-  if (!_active_managers) {
+  if (_active_managers==0) {
     if (audio_software_midi) {
     if (audio_software_midi) {
       HDLSDEVICE dls;
       HDLSDEVICE dls;
       AIL_quick_handles(0, 0, &dls);
       AIL_quick_handles(0, 0, &dls);
@@ -491,13 +491,19 @@ stop_all_sounds(void) {
 
 
 void MilesAudioManager::
 void MilesAudioManager::
 forceMidiReset(void) {
 forceMidiReset(void) {
+    if(!miles_audio_force_midi_reset) {
+        audio_debug("MilesAudioManager::skipping forceMidiReset");  
+        return;
+    }
+
     audio_debug("MilesAudioManager::ForceMidiReset");
     audio_debug("MilesAudioManager::ForceMidiReset");
-    
+
     // sometimes Miles seems to leave midi notes hanging, even after stop is called,
     // 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.
     // so perform an explicit reset using winMM.dll calls, just to ensure silence.
     HMDIDRIVER hMid=NULL;
     HMDIDRIVER hMid=NULL;
     AIL_quick_handles(0, &hMid, 0);
     AIL_quick_handles(0, &hMid, 0);
     if ((hMid!=NULL) && (hMid->deviceid != MIDI_NULL_DRIVER) && (hMid->hMidiOut != NULL)) {
     if ((hMid!=NULL) && (hMid->deviceid != MIDI_NULL_DRIVER) && (hMid->hMidiOut != NULL)) {
+        audio_debug("MilesAudioManager::calling midiOutReset");
         midiOutReset(hMid->hMidiOut);
         midiOutReset(hMid->hMidiOut);
     }
     }
 }
 }