summaryrefslogtreecommitdiff
path: root/libs/ardour/track.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-16 20:37:30 +0200
committerRobin Gareus <robin@gareus.org>2013-07-16 20:37:30 +0200
commitf842e8af2340b7836f961e2ebfb100950c5831d3 (patch)
tree141642f09e2aceb108aeb8ea7b37389a54b0fee0 /libs/ardour/track.cc
parentebcb1ffe7be94eea24835025dd11033ab04bac70 (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.cc13
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 {