diff options
Diffstat (limited to 'libs/ardour/rc_configuration.cc')
-rw-r--r-- | libs/ardour/rc_configuration.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/rc_configuration.cc b/libs/ardour/rc_configuration.cc index f04c148ab7..b34a6fd1ee 100644 --- a/libs/ardour/rc_configuration.cc +++ b/libs/ardour/rc_configuration.cc @@ -203,6 +203,8 @@ RCConfiguration::get_state () MIDI::Manager::PortMap::const_iterator i; const MIDI::Manager::PortMap& ports = MIDI::Manager::instance()->get_midi_ports(); + cerr << "Saving " << ports.size() << " MIDI ports\n"; + for (i = ports.begin(); i != ports.end(); ++i) { root->add_child_nocopy(i->second->get_state()); } @@ -260,8 +262,11 @@ RCConfiguration::set_state (const XMLNode& root, int /*version*/) MIDI::Port::Descriptor desc (*node); map<string,XMLNode>::iterator x; + if ((x = midi_ports.find (desc.tag)) != midi_ports.end()) { - midi_ports.erase (x); + warning << string_compose (_("Duplicate MIDI port definition found (tag=\"%1\") - ignored"), + desc.tag) << endmsg; + continue; } midi_ports.insert (pair<string,XMLNode>(desc.tag,*node)); } |