diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-16 20:37:30 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-16 20:37:30 +0200 |
commit | f842e8af2340b7836f961e2ebfb100950c5831d3 (patch) | |
tree | 141642f09e2aceb108aeb8ea7b37389a54b0fee0 /libs/ardour/track.cc | |
parent | ebcb1ffe7be94eea24835025dd11033ab04bac70 (diff) |
yet another meter+monitoring detail:
"explicit Monitor DISK" + "Transport Stop" + "not track rec-en"
-> meter is always zero
Diffstat (limited to 'libs/ardour/track.cc')
-rw-r--r-- | libs/ardour/track.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc index d4c095d738..e8eea740b1 100644 --- a/libs/ardour/track.cc +++ b/libs/ardour/track.cc @@ -414,12 +414,19 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame, bool const auto_input = _session.config.get_auto_input (); bool const software_monitor = Config->get_monitoring_model() == SoftwareMonitoring; bool const tape_machine_mode = Config->get_tape_machine_mode (); + bool no_meter = false; - if (!software_monitor && tape_machine_mode && !track_rec) { - _meter->reset(); - _input->process_input (boost::shared_ptr<Processor>(), start_frame, end_frame, nframes); + if (_monitoring & MonitorDisk && !track_rec) { + no_meter=true; + } + else if (!software_monitor && tape_machine_mode && !track_rec) { + no_meter=true; } else if (!software_monitor && !tape_machine_mode && !track_rec && !auto_input) { + no_meter=true; + } + + if (no_meter) { _meter->reset(); _input->process_input (boost::shared_ptr<Processor>(), start_frame, end_frame, nframes); } else { |