X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Faudio_panel.cc;h=0838fa8abb9a7a9241470db621091a3297169d1a;hb=54d5424caa2ccc2746d67b847898bb18dbcd692c;hp=b9aa9d6dfcb129716310aaf73a4ed4462ffc71e2;hpb=329de46d6fb600c1958678ec5d09ef21532130d5;p=dcpomatic.git diff --git a/src/wx/audio_panel.cc b/src/wx/audio_panel.cc index b9aa9d6df..0838fa8ab 100644 --- a/src/wx/audio_panel.cc +++ b/src/wx/audio_panel.cc @@ -50,28 +50,30 @@ AudioPanel::AudioPanel (FilmEditor* e) ++r; add_label_to_grid_bag_sizer (grid, this, _("Audio Gain"), true, wxGBPosition (r, 0)); - _gain = new ContentWidget ( + _gain = new ContentSpinCtrl ( this, new wxSpinCtrl (this), AudioContentProperty::AUDIO_GAIN, boost::mem_fn (&AudioContent::audio_gain), boost::mem_fn (&AudioContent::set_audio_gain) ); + _gain->add (grid, wxGBPosition (r, 1)); add_label_to_grid_bag_sizer (grid, this, _("dB"), false, wxGBPosition (r, 2)); _gain_calculate_button = new wxButton (this, wxID_ANY, _("Calculate...")); grid->Add (_gain_calculate_button, wxGBPosition (r, 3)); ++r; - add_label_to_grid_bag_sizer (grid, this, _("Audio Delay"), false, wxGBPosition (r, 0)); - _delay = new ContentWidget ( + add_label_to_grid_bag_sizer (grid, this, _("Audio Delay"), true, wxGBPosition (r, 0)); + _delay = new ContentSpinCtrl ( this, new wxSpinCtrl (this), AudioContentProperty::AUDIO_DELAY, boost::mem_fn (&AudioContent::audio_delay), boost::mem_fn (&AudioContent::set_audio_delay) ); - _delay->add (grid, wxGBPosition (r,1 )); + + _delay->add (grid, wxGBPosition (r, 1)); /// TRANSLATORS: this is an abbreviation for milliseconds, the unit of time add_label_to_grid_bag_sizer (grid, this, _("ms"), false, wxGBPosition (r, 2)); ++r; @@ -79,10 +81,7 @@ AudioPanel::AudioPanel (FilmEditor* e) add_label_to_grid_bag_sizer (grid, this, _("Audio Stream"), true, wxGBPosition (r, 0)); _stream = new wxChoice (this, wxID_ANY); grid->Add (_stream, wxGBPosition (r, 1)); - ++r; - - _description = new wxStaticText (this, wxID_ANY, wxT ("")); - grid->Add (_description, wxGBPosition (r, 0)); + _description = add_label_to_grid_bag_sizer (grid, this, "", false, wxGBPosition (r, 3)); ++r; _mapping = new AudioMappingView (this); @@ -123,26 +122,23 @@ AudioPanel::film_content_changed (int property) fcs = dynamic_pointer_cast (acs); } - if (_audio_dialog && acs) { - _audio_dialog->set_content (acs); - } - if (property == AudioContentProperty::AUDIO_MAPPING) { _mapping->set (acs ? acs->audio_mapping () : AudioMapping ()); _sizer->Layout (); } else if (property == FFmpegContentProperty::AUDIO_STREAM) { setup_stream_description (); _mapping->set (acs ? acs->audio_mapping () : AudioMapping ()); + _sizer->Layout (); } else if (property == FFmpegContentProperty::AUDIO_STREAMS) { _stream->Clear (); if (fcs) { vector > a = fcs->audio_streams (); for (vector >::iterator i = a.begin(); i != a.end(); ++i) { - _stream->Append (std_to_wx ((*i)->name), new wxStringClientData (std_to_wx (lexical_cast ((*i)->id)))); + _stream->Append (std_to_wx ((*i)->name), new wxStringClientData (std_to_wx ((*i)->identifier ()))); } if (fcs->audio_stream()) { - checked_set (_stream, lexical_cast (fcs->audio_stream()->id)); + checked_set (_stream, fcs->audio_stream()->identifier ()); setup_stream_description (); } } @@ -210,7 +206,7 @@ AudioPanel::stream_changed () vector > a = fcs->audio_streams (); vector >::iterator i = a.begin (); string const s = string_client_data (_stream->GetClientObject (_stream->GetSelection ())); - while (i != a.end() && lexical_cast ((*i)->id) != s) { + while (i != a.end() && (*i)->identifier () != s) { ++i; } @@ -226,6 +222,7 @@ AudioPanel::setup_stream_description () { FFmpegContentList fc = _editor->selected_ffmpeg_content (); if (fc.size() != 1) { + _description->SetLabel (""); return; } @@ -258,6 +255,10 @@ void AudioPanel::content_selection_changed () { AudioContentList sel = _editor->selected_audio_content (); + + if (_audio_dialog && sel.size() == 1) { + _audio_dialog->set_content (sel.front ()); + } _gain->set_content (sel); _delay->set_content (sel);