Use orange for audio peaks that are quite near clipping and red for those that are...
authorCarl Hetherington <cth@carlh.net>
Wed, 26 Apr 2017 09:04:06 +0000 (10:04 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 27 Apr 2017 09:59:45 +0000 (10:59 +0100)
src/wx/audio_panel.cc

index cef82f9ffcf1ae9fadacc4e7233bd630048afdbf..707d9ab020cf3f235234a63e3a016ce89a0bb15a 100644 (file)
@@ -311,7 +311,7 @@ void
 AudioPanel::setup_peak ()
 {
        ContentList sel = _parent->selected_audio ();
-       bool alert = false;
+       optional<float> peak_dB;
 
        if (sel.size() != 1) {
                _peak->SetLabel (wxT (""));
@@ -320,11 +320,8 @@ AudioPanel::setup_peak ()
                playlist->add (sel.front ());
                try {
                        shared_ptr<AudioAnalysis> analysis (new AudioAnalysis (_parent->film()->audio_analysis_path (playlist)));
-                       float const peak_dB = 20 * log10 (analysis->overall_sample_peak().first.peak) + analysis->gain_correction (playlist);
-                       if (peak_dB > -3) {
-                               alert = true;
-                       }
-                       _peak->SetLabel (wxString::Format (_("Peak: %.2fdB"), peak_dB));
+                       peak_dB = 20 * log10 (analysis->overall_sample_peak().first.peak) + analysis->gain_correction (playlist);
+                       _peak->SetLabel (wxString::Format (_("Peak: %.2fdB"), *peak_dB));
                } catch (...) {
                        _peak->SetLabel (_("Peak: unknown"));
                }
@@ -332,8 +329,10 @@ AudioPanel::setup_peak ()
 
        static wxColour normal = _peak->GetForegroundColour ();
 
-       if (alert) {
+       if (peak_dB && *peak_dB > -0.5) {
                _peak->SetForegroundColour (wxColour (255, 0, 0));
+       } else if (peak_dB && *peak_dB > -3) {
+               _peak->SetForegroundColour (wxColour (186, 120, 0));
        } else {
                _peak->SetForegroundColour (normal);
        }