boost::shared_ptr<Diskstream>
AudioTrack::create_diskstream ()
{
- AudioDiskstream::Flag dflags = AudioDiskstream::Flag (0);
-
- if (_flags & Auditioner) {
- dflags = AudioDiskstream::Flag (dflags | AudioDiskstream::Hidden);
- } else {
- dflags = AudioDiskstream::Flag (dflags | AudioDiskstream::Recordable);
- }
+ AudioDiskstream::Flag dflags = AudioDiskstream::Flag (AudioDiskstream::Recordable);
if (_mode == Destructive) {
dflags = AudioDiskstream::Flag (dflags | AudioDiskstream::Destructive);
}
_diskstream->set_record_enabled (false);
- _diskstream->request_jack_monitors_input (false);
+ _diskstream->request_input_monitoring (false);
DiskstreamChanged (); /* EMIT SIGNAL */
}
Glib::Threads::RWLock::ReaderLock lm (_processor_lock, Glib::Threads::TRY_LOCK);
if (!lm.locked()) {
+ boost::shared_ptr<AudioDiskstream> diskstream = audio_diskstream();
+ framecnt_t playback_distance = diskstream->calculate_playback_distance(nframes);
+ if (can_internal_playback_seek(llabs(playback_distance))) {
+ /* TODO should declick */
+ internal_playback_seek(playback_distance);
+ }
return 0;
}
_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);