There's a bug in the midi code whereby if there is more than one midi
device, and the first midi device has midi LED lights, the handlers for
controlling those lights are blown away when the second midi device is
created.  The "destroyHandlers" call should not be in the applyPreset
function.  This small patch fixes that:

=== modified file 'mixxx/src/midi/mididevicemanager.cpp'
--- mixxx/src/midi/mididevicemanager.cpp        2010-08-08 04:33:00 +0000
+++ mixxx/src/midi/mididevicemanager.cpp        2010-08-30 16:43:12 +0000
@@ -22,6 +22,7 @@
 #include "midideviceportmidi.h"
 #include "dlgprefmidibindings.h"
 #include "mididevicemanager.h"
+#include "midiledhandler.h"
 #include "../mixxxcontrol.h"
 #include "midimapping.h"
 
@@ -36,6 +37,7 @@
 MidiDeviceManager::~MidiDeviceManager()
 {
     closeDevices();
+    MidiLedHandler::destroyHandlers();
 }
 
 void MidiDeviceManager::saveMappings(bool onlyActive) {

=== modified file 'mixxx/src/midi/midimapping.cpp'
--- mixxx/src/midi/midimapping.cpp      2010-06-29 12:47:29 +0000
+++ mixxx/src/midi/midimapping.cpp      2010-08-30 16:38:39 +0000
@@ -719,7 +719,6 @@
 void MidiMapping::applyPreset() {
     qDebug() << "MidiMapping::applyPreset()";
     m_mappingLock.lock();
-    MidiLedHandler::destroyHandlers();
 
 #ifdef __MIDISCRIPT__
     // Since this can be called after re-enabling a device without reloading 
the XML preset,
@@ -1159,6 +1158,7 @@
 void MidiMapping::reset() {
 #ifdef __MIDISCRIPT__   // Can't ifdef slots in the .h file, so we just do the 
body.
     restartScriptEngine();
+    MidiLedHandler::destroyHandlers();
     applyPreset();
 #endif
 }




------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to