zero meters for inactive tracks
authorRobin Gareus <robin@gareus.org>
Tue, 16 Jul 2013 17:36:57 +0000 (19:36 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 16 Jul 2013 17:36:57 +0000 (19:36 +0200)
libs/ardour/audio_track.cc
libs/ardour/meter.cc
libs/ardour/midi_track.cc
libs/ardour/track.cc

index ad2c3a96e11933a68728088de74c960c921eeb3e..4b33bbd4c656f45f22e74926fd9dc597945d260c 100644 (file)
@@ -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;
        }
 
index f239a1c4b7025075009d33e568443bd4bee643d0..90f0977e4d0ac67f88ad73ff0cff6c55f6049de8 100644 (file)
@@ -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
index 16a0e89077e682ecdac37ec30ed246b2f0996063..c7768c7249d3f6a3506cb7f5ec6a55b5b1a87658 100644 (file)
@@ -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;
        }
 
index 1cf988759435809c8460ecb64a260215547a3845..d2c9b1deb5e463eec5c7fe21a0f2b79139ed9ee9 100644 (file)
@@ -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;
        }