summaryrefslogtreecommitdiff
path: root/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces/generic_midi/generic_midi_control_protocol.cc')
-rw-r--r--libs/surfaces/generic_midi/generic_midi_control_protocol.cc27
1 files changed, 15 insertions, 12 deletions
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
index 6a29c27684..42c5358816 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
@@ -274,7 +274,6 @@ GenericMidiControlProtocol::start_learning (Controllable* c)
return false;
}
- Glib::Mutex::Lock lm (pending_lock);
Glib::Mutex::Lock lm2 (controllables_lock);
MIDIControllables::iterator tmp;
@@ -288,20 +287,23 @@ GenericMidiControlProtocol::start_learning (Controllable* c)
i = tmp;
}
- MIDIPendingControllables::iterator ptmp;
- for (MIDIPendingControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ) {
- ptmp = i;
- ++ptmp;
- if (((*i)->first)->get_controllable() == c) {
- (*i)->second.disconnect();
- delete (*i)->first;
- delete *i;
- pending_controllables.erase (i);
+ {
+ Glib::Mutex::Lock lm (pending_lock);
+
+ MIDIPendingControllables::iterator ptmp;
+ for (MIDIPendingControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ) {
+ ptmp = i;
+ ++ptmp;
+ if (((*i)->first)->get_controllable() == c) {
+ (*i)->second.disconnect();
+ delete (*i)->first;
+ delete *i;
+ pending_controllables.erase (i);
+ }
+ i = ptmp;
}
- i = ptmp;
}
-
MIDIControllable* mc = 0;
for (MIDIControllables::iterator i = controllables.begin(); i != controllables.end(); ++i) {
@@ -702,6 +704,7 @@ GenericMidiControlProtocol::create_binding (const XMLNode& node)
void
GenericMidiControlProtocol::reset_controllables ()
{
+ cerr << "GM::RC\n";
Glib::Mutex::Lock lm2 (controllables_lock);
for (MIDIControllables::iterator iter = controllables.begin(); iter != controllables.end(); ++iter) {