summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_track.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-10-21 15:05:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-10-21 15:05:33 +0000
commit8ff34fde9d5bffb2f205a10a160c3a7f15c25141 (patch)
treec456e78bc02d3df4940d98cd685f676d4402ad38 /libs/ardour/audio_track.cc
parentcc3d202571a0f1cbb3422d57dee9dc1fd743e187 (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.cc17
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);