summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-16 19:36:57 +0200
committerRobin Gareus <robin@gareus.org>2013-07-16 19:36:57 +0200
commitc456166dd163e12053c7cfd4554f695ab0d30b68 (patch)
treee5d4f53def013dea2a574174ebac3dbc54b836ec
parent003492cbf9b6636f97eba44481e08cbea46c5fea (diff)
zero meters for inactive tracks
-rw-r--r--libs/ardour/audio_track.cc3
-rw-r--r--libs/ardour/meter.cc4
-rw-r--r--libs/ardour/midi_track.cc3
-rw-r--r--libs/ardour/track.cc3
4 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc
index ad2c3a96e1..4b33bbd4c6 100644
--- a/libs/ardour/audio_track.cc
+++ b/libs/ardour/audio_track.cc
@@ -325,6 +325,9 @@ AudioTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_fram
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc
index f239a1c4b7..90f0977e4d 100644
--- a/libs/ardour/meter.cc
+++ b/libs/ardour/meter.cc
@@ -116,6 +116,10 @@ PeakMeter::reset ()
for (size_t i = 0; i < _peak_signal.size(); ++i) {
_peak_signal[i] = 0.0f;
}
+
+ for (size_t n = 0; n < _kmeter.size(); ++n) {
+ _kmeter[n]->reset();
+ }
}
void
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index 16a0e89077..c7768c7249 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -330,6 +330,9 @@ MidiTrack::roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 1cf9887594..d2c9b1deb5 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -347,6 +347,9 @@ Track::no_roll (pframes_t nframes, framepos_t start_frame, framepos_t end_frame,
if (!_active) {
silence (nframes);
+ if (_meter_point == MeterInput && (_monitoring & MonitorInput || _diskstream->record_enabled())) {
+ _meter->reset();
+ }
return 0;
}