+boost::shared_ptr<ARDOUR::Port>
+Session::scene_output_port () const
+{
+ return _midi_ports->scene_output_port ();
+}
+
+boost::shared_ptr<ARDOUR::Port>
+Session::scene_input_port () const
+{
+ return _midi_ports->scene_input_port ();
+}
+
+boost::shared_ptr<MidiPort>
+Session::midi_clock_output_port () const
+{
+ return _midi_ports->midi_clock_output_port ();
+}
+
+boost::shared_ptr<MidiPort>
+Session::midi_clock_input_port () const
+{
+ return _midi_ports->midi_clock_input_port ();
+}
+boost::shared_ptr<MidiPort>
+Session::mtc_output_port () const
+{
+ return _midi_ports->mtc_output_port ();
+}
+boost::shared_ptr<MidiPort>
+Session::mtc_input_port () const
+{
+ return _midi_ports->mtc_input_port ();
+}
+
+void
+Session::midi_track_presentation_info_changed (PropertyChange const& what_changed, boost::weak_ptr<MidiTrack> mt)
+{
+ if (!Config->get_midi_input_follows_selection()) {
+ return;
+ }
+
+ if (!what_changed.contains (Properties::selected)) {
+ return;
+ }
+
+ boost::shared_ptr<MidiTrack> new_midi_target (mt.lock ());
+
+ if (new_midi_target->is_selected()) {
+ rewire_selected_midi (new_midi_target);