Make signals below -200dB "-inf" in meters.
authorSampo Savolainen <v2@iki.fi>
Thu, 15 Jun 2006 21:11:43 +0000 (21:11 +0000)
committerSampo Savolainen <v2@iki.fi>
Thu, 15 Jun 2006 21:11:43 +0000 (21:11 +0000)
git-svn-id: svn://localhost/ardour2/trunk@609 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/gain_meter.cc
libs/ardour/io.cc

index 9d0228dba68023337e63f0676a33f2d52576e146..60b485460097221d2d86f4c6b128284ae92348ae 100644 (file)
@@ -326,23 +326,27 @@ GainMeter::update_meters ()
        char buf[32];
        
        for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
-                if ((*i).packed) {
-                        peak = _io.peak_input_power (n);
+               if ((*i).packed) {
+                       peak = _io.peak_input_power (n);
 
                        (*i).meter->set (log_meter (peak), peak);
-                       
-                        if (peak > max_peak) {
-                                max_peak = peak;
-                                /* set peak display */
-                                snprintf (buf, sizeof(buf), "%.1f", max_peak);
-                                peak_display_label.set_text (buf);
-
-                                if (max_peak >= 0.0f) {
-                                        peak_display.set_name ("MixerStripPeakDisplayPeak");
-                                }
-                        }
-                }
-        }
+                                               
+                       if (peak > max_peak) {
+               max_peak = peak;
+                /* set peak display */
+                               if (max_peak <= -200.0f) {
+                                       peak_display_label.set_text (_("-inf"));
+                               } else {
+                                       snprintf (buf, sizeof(buf), "%.1f", max_peak);
+                                       peak_display_label.set_text (buf);
+                               }
+
+                               if (max_peak >= 0.0f) {
+                                       peak_display.set_name ("MixerStripPeakDisplayPeak");
+                               }
+                       }
+               }
+       }
 }
 
 void
index fa30463bd465cac887d38b23cb1266b4016e5fd1..9f4c3cd9e300d5be0435862d3320a6ea16b9b2dd 100644 (file)
@@ -2493,7 +2493,7 @@ IO::meter ()
                } else {
                        // do falloff
                        new_peak = _visible_peak_power[n] - _session.meter_falloff();
-                       _visible_peak_power[n] = max (new_peak, -200.0f);
+                       _visible_peak_power[n] = max (new_peak, -INFINITY);
                }
        }
 }