From ae544dc6c73c047d75d374a90aceed6d3e27b9eb Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 16 Jul 2013 16:04:41 +0200 Subject: [PATCH] fix "monitor mode 11" see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV2.pdf the overall logic can probably be simplified somewhat track-rec-enable on -> always monitor input --- libs/ardour/audio_track.cc | 2 +- libs/ardour/midi_track.cc | 2 +- libs/ardour/track.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc index 70f385a890..ad2c3a96e1 100644 --- a/libs/ardour/audio_track.cc +++ b/libs/ardour/audio_track.cc @@ -354,7 +354,7 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram fill_buffers_with_input (bufs, _input, nframes); - if (_meter_point == MeterInput && (_monitoring & MonitorInput)) { + if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) { _meter->run (bufs, start_frame, end_frame, nframes, true); } diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc index 23077bafc8..16a0e89077 100644 --- a/libs/ardour/midi_track.cc +++ b/libs/ardour/midi_track.cc @@ -354,7 +354,7 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame fill_buffers_with_input (bufs, _input, nframes); - if (_meter_point == MeterInput && (_monitoring & MonitorInput)) { + if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) { _meter->run (bufs, start_frame, end_frame, nframes, true); } diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index b88cc0480a..1cf9887594 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -948,7 +948,7 @@ Track::metering_state () const bool rv; if (_session.transport_rolling ()) { // audio_track.cc || midi_track.cc roll() runs meter IFF: - rv = _meter_point == MeterInput && (_monitoring & MonitorInput); + rv = _meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled()); } else { // track no_roll() always metering if rv = _meter_point == MeterInput; -- 2.30.2