diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-06-03 15:24:30 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-06-03 15:24:30 +0100 |
| commit | a39067b125ecfb58906a1d022f807f0a22824007 (patch) | |
| tree | 30c30c952495b0091efc3349c096e11baf5d463e /src | |
| parent | 974c5553244616ba92caf70a67d42725c6224b97 (diff) | |
Update audio plot window when audio mapping is changed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/audio_dialog.cc | 27 | ||||
| -rw-r--r-- | src/wx/audio_plot.cc | 11 |
2 files changed, 26 insertions, 12 deletions
diff --git a/src/wx/audio_dialog.cc b/src/wx/audio_dialog.cc index 0e1316cf3..1f882e61f 100644 --- a/src/wx/audio_dialog.cc +++ b/src/wx/audio_dialog.cc @@ -106,6 +106,7 @@ AudioDialog::try_to_load_analysis () } if (!boost::filesystem::exists (_content->audio_analysis_path())) { + _plot->set_analysis (shared_ptr<AudioAnalysis> ()); _analysis_finished_connection = _content->analyse_audio (bind (&AudioDialog::analysis_finished, this)); return; } @@ -115,14 +116,28 @@ AudioDialog::try_to_load_analysis () a.reset (new AudioAnalysis (_content->audio_analysis_path ())); _plot->set_analysis (a); - if (_channel_checkbox[0]) { + /* Set up some defaults if no check boxes are checked */ + + int i = 0; + while (i < MAX_DCP_AUDIO_CHANNELS && (!_channel_checkbox[i] || !_channel_checkbox[i]->GetValue ())) { + ++i; + } + + if (i == MAX_DCP_AUDIO_CHANNELS && _channel_checkbox[0]) { _channel_checkbox[0]->SetValue (true); + _plot->set_channel_visible (0, true); } - _plot->set_channel_visible (0, true); - for (int i = 0; i < AudioPoint::COUNT; ++i) { - _type_checkbox[i]->SetValue (true); - _plot->set_type_visible (i, true); + i = 0; + while (i < AudioPoint::COUNT && !_type_checkbox[i]->GetValue ()) { + i++; + } + + if (i == AudioPoint::COUNT) { + for (int i = 0; i < AudioPoint::COUNT; ++i) { + _type_checkbox[i]->SetValue (true); + _plot->set_type_visible (i, true); + } } } @@ -158,6 +173,8 @@ AudioDialog::content_changed (int p) { if (p == AudioContentProperty::AUDIO_GAIN) { _plot->set_gain (_content->audio_gain ()); + } else if (p == AudioContentProperty::AUDIO_MAPPING) { + try_to_load_analysis (); } } diff --git a/src/wx/audio_plot.cc b/src/wx/audio_plot.cc index 69faf127e..c4e5d992f 100644 --- a/src/wx/audio_plot.cc +++ b/src/wx/audio_plot.cc @@ -40,7 +40,6 @@ AudioPlot::AudioPlot (wxWindow* parent) : wxPanel (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE) , _gain (0) , _smoothing (max_smoothing / 2) - , _message (_("Please wait; audio is being analysed...")) { #ifndef __WXOSX__ SetDoubleBuffered (true); @@ -67,6 +66,8 @@ AudioPlot::AudioPlot (wxWindow* parent) _colours.push_back (wxColour (255, 0, 139)); _colours.push_back (wxColour (139, 0, 255)); + set_analysis (shared_ptr<AudioAnalysis> ()); + #if MAX_DCP_AUDIO_CHANNELS != 12 #warning AudioPlot::AudioPlot is expecting the wrong MAX_DCP_AUDIO_CHANNELS #endif @@ -81,14 +82,10 @@ AudioPlot::set_analysis (shared_ptr<AudioAnalysis> a) { _analysis = a; - for (int i = 0; i < MAX_DCP_AUDIO_CHANNELS; ++i) { - _channel_visible[i] = false; + if (!a) { + _message = _("Please wait; audio is being analysed..."); } - for (int i = 0; i < AudioPoint::COUNT; ++i) { - _type_visible[i] = false; - } - Refresh (); } |
