X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudio_track.cc;h=7f77f637a36bfe413bf370b703e1521283f33915;hb=d89573f8e73ee7f0c28a6b9a8b8ba0f8e78c69aa;hp=4b33bbd4c656f45f22e74926fd9dc597945d260c;hpb=c456166dd163e12053c7cfd4554f695ab0d30b68;p=ardour.git diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 4b33bbd4c6..7f77f637a3 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -96,7 +96,7 @@ AudioTrack::set_diskstream (boost::shared_ptr ds) } _diskstream->set_record_enabled (false); - _diskstream->request_jack_monitors_input (false); + _diskstream->request_input_monitoring (false); DiskstreamChanged (); /* EMIT SIGNAL */ } @@ -313,6 +313,12 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram Glib::Threads::RWLock::ReaderLock lm (_processor_lock, Glib::Threads::TRY_LOCK); if (!lm.locked()) { + boost::shared_ptr diskstream = audio_diskstream(); + framecnt_t playback_distance = diskstream->calculate_playback_distance(nframes); + if (can_internal_playback_seek(std::llabs(playback_distance))) { + /* TODO should declick */ + internal_playback_seek(playback_distance); + } return 0; } @@ -353,7 +359,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram _silent = false; _amp->apply_gain_automation(false); - BufferSet& bufs = _session.get_scratch_buffers (n_process_buffers ()); + BufferSet& bufs = _session.get_route_buffers (n_process_buffers ()); fill_buffers_with_input (bufs, _input, nframes);