From 91e0e0f9f83496fd5ec8f40844ba02df61de37f4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 3 Aug 2013 21:35:19 +0200 Subject: advance track's play-position even if processing is locked fixes * http://tracker.ardour.org/view.php?id=5628 * http://tracker.ardour.org/view.php?id=5561 --- libs/ardour/midi_track.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libs/ardour/midi_track.cc') diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 90b866ca92..f88c331c2c 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -319,6 +319,12 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame { Glib::Threads::RWLock::ReaderLock lm (_processor_lock, Glib::Threads::TRY_LOCK); if (!lm.locked()) { + boost::shared_ptr diskstream = midi_diskstream(); + framecnt_t playback_distance = diskstream->calculate_playback_distance(nframes); + if (can_internal_playback_seek(llabs(playback_distance))) { + /* TODO should declick, and/or note-off */ + internal_playback_seek(playback_distance); + } return 0; } -- cgit v1.2.3