From de9e216cb5fcc08b6c39071d7cef031673aa67da Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 30 May 2011 21:37:58 +0000 Subject: (1) push a locate all the way through the processing heirarchy so that MIDI output ports can resolve any notes currently playing (2) remove MidiStateTracker from MidiPort and use a fixed set of MIDI messages (sustain-off and all-notes-off, per channel) to do note resolution (3) move note resolution caused by a LoopEvent psuedo-event to within the main MidiPort::flush_output() loop, so that we resolve (turn off) Notes that come before the loop point, rather than send them out after the note resolution messages git-svn-id: svn://localhost/ardour2/branches/3.0@9635 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/delivery.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'libs/ardour/delivery.cc') diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc index efdb4d9ad0..31337e7e83 100644 --- a/libs/ardour/delivery.cc +++ b/libs/ardour/delivery.cc @@ -479,6 +479,18 @@ Delivery::transport_stopped (framepos_t now) } } +void +Delivery::realtime_locate () +{ + if (_output) { + PortSet& ports (_output->ports()); + + for (PortSet::iterator i = ports.begin(); i != ports.end(); ++i) { + (*i).realtime_locate (); + } + } +} + gain_t Delivery::target_gain () { -- cgit v1.2.3