# HG changeset patch
# User Chris Cannam
# Date 1250258469 0
# Node ID 7dae51741cc90989aefc9e32350d1968d66f91f6
# Parent  d8017c8859ebf1558da8941cf33fa6281a36119b
* Fix crash on exit on win32.  This was caused by incorrectly using fftw_free()
  to free the string returned from fftw_export_wisdom_to_string(), instead of
  plain free().
* Various debug artifacts related to tracking down the above

diff -r d8017c8859eb -r 7dae51741cc9 audioio/AudioCallbackPlaySource.cpp
--- a/audioio/AudioCallbackPlaySource.cpp	Thu Jul 16 13:57:18 2009 +0000
+++ b/audioio/AudioCallbackPlaySource.cpp	Fri Aug 14 14:01:09 2009 +0000
@@ -99,6 +99,9 @@
 
 AudioCallbackPlaySource::~AudioCallbackPlaySource()
 {
+#ifdef DEBUG_AUDIO_PLAY_SOURCE
+    std::cerr << "AudioCallbackPlaySource::~AudioCallbackPlaySource entering" << std::endl;
+#endif
     m_exiting = true;
 
     if (m_fillThread) {
@@ -128,6 +131,9 @@
 
     m_bufferScavenger.scavenge(true);
     m_pluginScavenger.scavenge(true);
+#ifdef DEBUG_AUDIO_PLAY_SOURCE
+    std::cerr << "AudioCallbackPlaySource::~AudioCallbackPlaySource finishing" << std::endl;
+#endif
 }
 
 void
diff -r d8017c8859eb -r 7dae51741cc9 audioio/AudioGenerator.cpp
--- a/audioio/AudioGenerator.cpp	Thu Jul 16 13:57:18 2009 +0000
+++ b/audioio/AudioGenerator.cpp	Fri Aug 14 14:01:09 2009 +0000
@@ -65,6 +65,9 @@
 
 AudioGenerator::~AudioGenerator()
 {
+#ifdef DEBUG_AUDIO_GENERATOR
+    std::cerr << "AudioGenerator::~AudioGenerator" << std::endl;
+#endif
 }
 
 void
diff -r d8017c8859eb -r 7dae51741cc9 audioio/AudioPortAudioTarget.cpp
--- a/audioio/AudioPortAudioTarget.cpp	Thu Jul 16 13:57:18 2009 +0000
+++ b/audioio/AudioPortAudioTarget.cpp	Fri Aug 14 14:01:09 2009 +0000
@@ -141,6 +141,9 @@
 void 
 AudioPortAudioTarget::shutdown()
 {
+#ifdef DEBUG_PORT_AUDIO_TARGET
+    std::cerr << "AudioPortAudioTarget::shutdown" << std::endl;
+#endif
     m_done = true;
 }
 
@@ -181,10 +184,15 @@
                               PaStreamCallbackFlags)
 {
 #ifdef DEBUG_AUDIO_PORT_AUDIO_TARGET    
-    std::cout << "AudioPortAudioTarget::process(" << nframes << ")" << std::endl;
+    std::cerr << "AudioPortAudioTarget::process(" << nframes << ")" << std::endl;
 #endif
 
-    if (!m_source || m_done) return 0;
+    if (!m_source || m_done) {
+#ifdef DEBUG_AUDIO_PORT_AUDIO_TARGET
+        std::cerr << "AudioPortAudioTarget::process: Doing nothing, no source or application done" << std::endl;
+#endif
+        return 0;
+    }
 
     float *output = (float *)outputBuffer;
 
diff -r d8017c8859eb -r 7dae51741cc9 framework/MainWindowBase.cpp
--- a/framework/MainWindowBase.cpp	Thu Jul 16 13:57:18 2009 +0000
+++ b/framework/MainWindowBase.cpp	Fri Aug 14 14:01:09 2009 +0000
@@ -230,6 +230,7 @@
 
 MainWindowBase::~MainWindowBase()
 {
+    std::cerr << "MainWindowBase::~MainWindowBase" << std::endl;
     if (m_playTarget) m_playTarget->shutdown();
 //    delete m_playTarget;
     delete m_playSource;