summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-10-14 12:51:28 +0100
committerCarl Hetherington <cth@carlh.net>2015-10-14 12:51:28 +0100
commit30917783d3e5c639b61935b616049d745213942f (patch)
treeeadc46e9616db74420d253ab670079328ff01fa7 /src
parent2610abb85fc82056c51c540d7a3d8f691dfe3403 (diff)
Only show existing DCP channels in the audio dialog (#715).
Diffstat (limited to 'src')
-rw-r--r--src/wx/audio_dialog.cc11
-rw-r--r--src/wx/audio_dialog.h1
2 files changed, 7 insertions, 5 deletions
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> film, shared_ptr<AudioContent> 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> film, shared_ptr<Au
right->Add (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<AudioAnalysis> _analysis;
boost::weak_ptr<Film> _film;
+ int _channels;
boost::shared_ptr<const Playlist> _playlist;
AudioPlot* _plot;
wxStaticText* _peak_time;