From 30917783d3e5c639b61935b616049d745213942f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 14 Oct 2015 12:51:28 +0100 Subject: [PATCH] Only show existing DCP channels in the audio dialog (#715). --- ChangeLog | 2 ++ src/wx/audio_dialog.cc | 11 ++++++----- src/wx/audio_dialog.h | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b6be5f08..ac7b86723 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2015-10-14 Carl Hetherington + * Only show existing DCP channels in the audio dialog (#715). + * Various optimizations to the upmixer filters; drop order of Upmixer A Lfe/C and Upmixer B Lfe filters to speed them up. diff --git a/src/wx/audio_dialog.cc b/src/wx/audio_dialog.cc index 814dc596f..8e672150e 100644 --- a/src/wx/audio_dialog.cc +++ b/src/wx/audio_dialog.cc @@ -40,6 +40,7 @@ using boost::dynamic_pointer_cast; AudioDialog::AudioDialog (wxWindow* parent, shared_ptr film, shared_ptr content) : wxDialog (parent, wxID_ANY, _("Audio"), wxDefaultPosition, wxSize (640, 512), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxFULL_REPAINT_ON_RESIZE) , _film (film) + , _channels (film->audio_channels ()) , _plot (0) { wxFont subheading_font (*wxNORMAL_FONT); @@ -65,7 +66,7 @@ AudioDialog::AudioDialog (wxWindow* parent, shared_ptr film, shared_ptrAdd (m, 1, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM, 16); } - for (int i = 0; i < MAX_DCP_AUDIO_CHANNELS; ++i) { + for (int i = 0; i < _channels; ++i) { _channel_checkbox[i] = new wxCheckBox (this, wxID_ANY, std_to_wx (audio_channel_name (i))); right->Add (_channel_checkbox[i], 0, wxEXPAND | wxALL, 3); _channel_checkbox[i]->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AudioDialog::channel_clicked, this, _1)); @@ -157,11 +158,11 @@ AudioDialog::try_to_load_analysis () /* 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 ())) { + while (i < _channels && (!_channel_checkbox[i] || !_channel_checkbox[i]->GetValue ())) { ++i; } - if (i == MAX_DCP_AUDIO_CHANNELS && _channel_checkbox[0]) { + if (i == _channels && _channel_checkbox[0]) { _channel_checkbox[0]->SetValue (true); _plot->set_channel_visible (0, true); } @@ -202,11 +203,11 @@ void AudioDialog::channel_clicked (wxCommandEvent& ev) { int c = 0; - while (c < MAX_DCP_AUDIO_CHANNELS && ev.GetEventObject() != _channel_checkbox[c]) { + while (c < _channels && ev.GetEventObject() != _channel_checkbox[c]) { ++c; } - DCPOMATIC_ASSERT (c < MAX_DCP_AUDIO_CHANNELS); + DCPOMATIC_ASSERT (c < _channels); _plot->set_channel_visible (c, _channel_checkbox[c]->GetValue ()); } diff --git a/src/wx/audio_dialog.h b/src/wx/audio_dialog.h index c99261150..588f71159 100644 --- a/src/wx/audio_dialog.h +++ b/src/wx/audio_dialog.h @@ -45,6 +45,7 @@ private: boost::shared_ptr _analysis; boost::weak_ptr _film; + int _channels; boost::shared_ptr _playlist; AudioPlot* _plot; wxStaticText* _peak_time; -- 2.30.2