make MMC work again, make tracing MIDI input work again, add GUI control for MMC device ID ++

git-svn-id: svn://localhost/ardour2/trunk@1480 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2007-02-20 21:26:20 +00:00
parent 780e9d7ecb
commit 326cd24c12
17 changed files with 154 additions and 129 deletions

View file

@ -171,6 +171,8 @@ void
GenericMidiControlProtocol::stop_learning (Controllable* c)
{
Glib::Mutex::Lock lm (pending_lock);
Glib::Mutex::Lock lm2 (controllables_lock);
MIDIControllable* dptr = 0;
/* learning timed out, and we've been told to consider this attempt to learn to be cancelled. find the
relevant MIDIControllable and remove it from the pending list.
@ -179,11 +181,22 @@ GenericMidiControlProtocol::stop_learning (Controllable* c)
for (MIDIControllables::iterator i = pending_controllables.begin(); i != pending_controllables.end(); ++i) {
if (&(*i)->get_controllable() == c) {
(*i)->stop_learning ();
delete (*i);
dptr = *i;
pending_controllables.erase (i);
break;
}
}
for (MIDIControllables::iterator i = controllables.begin(); i != controllables.end(); ++i) {
if (&(*i)->get_controllable() == c) {
controllables.erase (i);
break;
}
}
if (dptr) {
delete dptr;
}
}
XMLNode&
@ -255,7 +268,7 @@ GenericMidiControlProtocol::set_state (const XMLNode& node)
ID id = prop->value ();
c = session->controllable_by_id (id);
c = Controllable::by_id (id);
if (c) {
MIDIControllable* mc = new MIDIControllable (*_port, *c);
@ -264,8 +277,7 @@ GenericMidiControlProtocol::set_state (const XMLNode& node)
}
} else {
warning << string_compose (_("Generic MIDI control: controllable %1 not found in session (ignored)"),
id)
warning << string_compose (_("Generic MIDI control: controllable %1 not found (ignored)"), id)
<< endmsg;
}
}