diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-10-21 15:05:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-10-21 15:05:33 +0000 |
commit | 8ff34fde9d5bffb2f205a10a160c3a7f15c25141 (patch) | |
tree | c456e78bc02d3df4940d98cd685f676d4402ad38 /libs/ardour/audio_track.cc | |
parent | cc3d202571a0f1cbb3422d57dee9dc1fd743e187 (diff) |
correctly track monitoring changes in libardour and the GUI; required removing propagation of session rec-enabled status through process chain and replacing it with call to Session::actively_recording() where necessary (may require a new RT event)
git-svn-id: svn://localhost/ardour2/branches/3.0@10265 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_track.cc')
-rw-r--r-- | libs/ardour/audio_track.cc | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 99217cfc0e..a4049b28a7 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -353,10 +353,10 @@ AudioTrack::set_state_part_two () } int -AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, int declick, - bool can_record, bool& need_butler) +AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, int declick, bool& need_butler) { Glib::RWLock::ReaderLock lm (_processor_lock, Glib::TRY_LOCK); + if (!lm.locked()) { return 0; } @@ -386,13 +386,13 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram playback distance to zero, thus causing diskstream::commit to do nothing. */ - return diskstream->process (transport_frame, 0, can_record, need_butler); + return diskstream->process (transport_frame, 0, need_butler); } _silent = false; _amp->apply_gain_automation(false); - if ((dret = diskstream->process (transport_frame, nframes, can_record, need_butler)) != 0) { + if ((dret = diskstream->process (transport_frame, nframes, need_butler)) != 0) { silence (nframes); return dret; } @@ -403,14 +403,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram _input->process_input (_meter, start_frame, end_frame, nframes); } - if ((_monitoring & MonitorInput) || (!(_monitoring & MonitorDisk) && - (diskstream->record_enabled() && - !can_record && - !_session.config.get_auto_input()))) { - - /* not actually recording, but we want to hear the input material anyway, - at least potentially (depending on monitoring options) - */ + if (monitoring_state() == MonitoringInput) { passthru (start_frame, end_frame, nframes, false); |