X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fmidiport_manager.cc;h=5b97b4090ae6a95a06e1e88022b05c5ac42b8ce8;hb=35172bb369eea6245e08b258f4a350411c20f98d;hp=b1699ca5abc5a548abc6fc2bddf64e0d450af5fe;hpb=152935e736eaf06f85bc7f5cb27337a62d95edd4;p=ardour.git diff --git a/libs/ardour/midiport_manager.cc b/libs/ardour/midiport_manager.cc index b1699ca5ab..5b97b4090a 100644 --- a/libs/ardour/midiport_manager.cc +++ b/libs/ardour/midiport_manager.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 1998-99 Paul Barton-Davis + Copyright (C) 1998-99 Paul Barton-Davis This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -73,7 +73,7 @@ MidiPortManager::create_ports () if (_midi_in) { return; } - + _midi_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("MIDI control in"), true); _midi_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("MIDI control out"), true); @@ -83,23 +83,6 @@ MidiPortManager::create_ports () _scene_in = AudioEngine::instance()->register_input_port (DataType::MIDI, X_("Scene in"), true); _scene_out = AudioEngine::instance()->register_output_port (DataType::MIDI, X_("Scene out"), true); - /* XXX nasty type conversion needed because of the mixed inheritance - * required to integrate MIDI::IPMidiPort and ARDOUR::AsyncMIDIPort. - * - * At some point, we'll move IPMidiPort into Ardour and make it - * inherit from ARDOUR::MidiPort not MIDI::Port, and then this - * mess can go away - */ - - _midi_input_port = boost::dynamic_pointer_cast(_midi_in).get(); - _midi_output_port = boost::dynamic_pointer_cast(_midi_out).get(); - - _mmc_input_port = boost::dynamic_pointer_cast(_mmc_in).get(); - _mmc_output_port = boost::dynamic_pointer_cast(_mmc_out).get(); - - _scene_input_port = boost::dynamic_pointer_cast(_scene_in).get(); - _scene_output_port = boost::dynamic_pointer_cast(_scene_out).get(); - /* Now register ports used for sync (MTC and MIDI Clock) */ @@ -128,7 +111,7 @@ MidiPortManager::create_ports () void MidiPortManager::set_midi_port_states (const XMLNodeList&nodes) { - XMLProperty* prop; + XMLProperty const * prop; typedef map > PortMap; PortMap ports; const int version = 0; @@ -137,13 +120,13 @@ MidiPortManager::set_midi_port_states (const XMLNodeList&nodes) ports.insert (make_pair (_mtc_output_port->name(), _mtc_output_port)); ports.insert (make_pair (_midi_clock_input_port->name(), _midi_clock_input_port)); ports.insert (make_pair (_midi_clock_output_port->name(), _midi_clock_output_port)); - ports.insert (make_pair (_midi_input_port->name(), _midi_in)); - ports.insert (make_pair (_midi_output_port->name(), _midi_out)); - ports.insert (make_pair (_mmc_input_port->name(), _mmc_in)); - ports.insert (make_pair (_mmc_output_port->name(), _mmc_out)); - ports.insert (make_pair (_scene_output_port->name(), _scene_out)); - ports.insert (make_pair (_scene_input_port->name(), _scene_in)); - + ports.insert (make_pair (_midi_in->name(), _midi_in)); + ports.insert (make_pair (_midi_out->name(), _midi_out)); + ports.insert (make_pair (_mmc_in->name(), _mmc_in)); + ports.insert (make_pair (_mmc_out->name(), _mmc_out)); + ports.insert (make_pair (_scene_out->name(), _scene_out)); + ports.insert (make_pair (_scene_in->name(), _scene_in)); + for (XMLNodeList::const_iterator n = nodes.begin(); n != nodes.end(); ++n) { if ((prop = (*n)->property (X_("name"))) == 0) { continue; @@ -153,7 +136,7 @@ MidiPortManager::set_midi_port_states (const XMLNodeList&nodes) if (p == ports.end()) { continue; } - + p->second->set_state (**n, version); } } @@ -169,12 +152,12 @@ MidiPortManager::get_midi_port_states () const ports.insert (make_pair (_mtc_output_port->name(), _mtc_output_port)); ports.insert (make_pair (_midi_clock_input_port->name(), _midi_clock_input_port)); ports.insert (make_pair (_midi_clock_output_port->name(), _midi_clock_output_port)); - ports.insert (make_pair (_midi_input_port->name(), _midi_in)); - ports.insert (make_pair (_midi_output_port->name(), _midi_out)); - ports.insert (make_pair (_mmc_input_port->name(), _mmc_in)); - ports.insert (make_pair (_mmc_output_port->name(), _mmc_out)); - ports.insert (make_pair (_scene_output_port->name(), _scene_out)); - ports.insert (make_pair (_scene_input_port->name(), _scene_in)); + ports.insert (make_pair (_midi_in->name(), _midi_in)); + ports.insert (make_pair (_midi_out->name(), _midi_out)); + ports.insert (make_pair (_mmc_in->name(), _mmc_in)); + ports.insert (make_pair (_mmc_out->name(), _mmc_out)); + ports.insert (make_pair (_scene_out->name(), _scene_out)); + ports.insert (make_pair (_scene_in->name(), _scene_in)); for (PortMap::const_iterator p = ports.begin(); p != ports.end(); ++p) { s.push_back (&p->second->get_state());