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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel