summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_track.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-12-07 14:44:47 +0000
committerCarl Hetherington <carl@carlh.net>2010-12-07 14:44:47 +0000
commit94b4c264d156d79efc687a98f17514b128960118 (patch)
tree97847ecdb68b1da8ea482b5e4de54fcc058dcf4a /libs/ardour/midi_track.cc
parent40c162d6096f9bb338b602fb7845234133285411 (diff)
Send note-offs to VST instrument plugins on transport stop. Fixes #3583.
git-svn-id: svn://localhost/ardour2/branches/3.0@8203 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/midi_track.cc')
-rw-r--r--libs/ardour/midi_track.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index c994350ebc..fa406adfa0 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -403,9 +403,16 @@ MidiTrack::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fr
}
void
-MidiTrack::handle_transport_stopped (bool abort, bool did_locate, bool flush_processors)
+MidiTrack::realtime_handle_transport_stopped ()
{
- Route::handle_transport_stopped (abort, did_locate, flush_processors);
+ Glib::RWLock::ReaderLock lm (_processor_lock, Glib::TRY_LOCK);
+ if (!lm.locked ()) {
+ return;
+ }
+
+ for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
+ (*i)->realtime_handle_transport_stopped ();
+ }
}
void