summaryrefslogtreecommitdiff
path: root/libs/ardour/session_midi.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-05 13:22:34 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-05 13:22:34 -0400
commit1c49138e0099db37931b34fad552b43c332e187d (patch)
treeb3ebb558e8b055695fff674114272f7a28792bda /libs/ardour/session_midi.cc
parentfee626c386ccc23c41b7b2976c5031cd335b7587 (diff)
move MidiPortManager from AudioEngine to Session
This makes the responsibilities and ownership of non-Route related MIDI ports more clear, and removes a few wierd bits of code. It also ensures that open/close/open on the same session will retain connections for those MIDI ports
Diffstat (limited to 'libs/ardour/session_midi.cc')
-rw-r--r--libs/ardour/session_midi.cc46
1 files changed, 44 insertions, 2 deletions
diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc
index 07a34283e3..6d3083df77 100644
--- a/libs/ardour/session_midi.cc
+++ b/libs/ardour/session_midi.cc
@@ -425,7 +425,7 @@ Session::send_full_time_code (framepos_t const t, pframes_t nframes)
// Send message at offset 0, sent time is for the start of this cycle
- MidiBuffer& mb (AudioEngine::instance()->mtc_output_port()->get_midi_buffer (nframes));
+ MidiBuffer& mb (_midi_ports->mtc_output_port()->get_midi_buffer (nframes));
mb.push_back (0, sizeof (msg), msg);
_pframes_since_last_mtc = 0;
@@ -515,7 +515,7 @@ Session::send_midi_time_code_for_cycle (framepos_t start_frame, framepos_t end_f
pframes_t const out_stamp = (msg_time - start_frame) / _transport_speed;
assert (out_stamp < nframes);
- MidiBuffer& mb (AudioEngine::instance()->mtc_output_port()->get_midi_buffer(nframes));
+ MidiBuffer& mb (_midi_ports->mtc_output_port()->get_midi_buffer(nframes));
if (!mb.push_back (out_stamp, 2, mtc_msg)) {
error << string_compose(_("Session: cannot send quarter-frame MTC message (%1)"), strerror (errno))
<< endmsg;
@@ -603,3 +603,45 @@ Session::start_midi_thread ()
return 0;
}
+MIDI::Port*
+Session::midi_input_port () const
+{
+ return _midi_ports->midi_input_port ();
+}
+MIDI::Port*
+Session::midi_output_port () const
+{
+ return _midi_ports->midi_output_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 ();
+}
+
+MIDI::Port*
+Session::mmc_output_port () const
+{
+ return _midi_ports->mmc_output_port ();
+}
+
+MIDI::Port*
+Session::mmc_input_port () const
+{
+ return _midi_ports->mmc_input_port ();
+}