summaryrefslogtreecommitdiff
path: root/src/wx/film_editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/wx/film_editor.cc')
-rw-r--r--src/wx/film_editor.cc42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/wx/film_editor.cc b/src/wx/film_editor.cc
index f2446c22a..e49bf6272 100644
--- a/src/wx/film_editor.cc
+++ b/src/wx/film_editor.cc
@@ -46,6 +46,7 @@
#include "scaler.h"
using std::string;
+using std::cout;
using std::stringstream;
using std::pair;
using std::fixed;
@@ -484,12 +485,9 @@ FilmEditor::film_changed (Film::Property p)
setup_subtitle_control_sensitivity ();
setup_streams ();
break;
- case Film::HAS_SUBTITLES:
- setup_subtitle_control_sensitivity ();
- setup_streams ();
- break;
case Film::AUDIO_STREAMS:
case Film::SUBTITLE_STREAMS:
+ setup_subtitle_control_sensitivity ();
setup_streams ();
break;
case Film::FORMAT:
@@ -531,9 +529,6 @@ FilmEditor::film_changed (Film::Property p)
s << fixed << setprecision(2) << _film->frames_per_second();
_frames_per_second->SetLabel (std_to_wx (s.str ()));
break;
- case Film::AUDIO_SAMPLE_RATE:
- setup_audio_details ();
- break;
case Film::SIZE:
if (_film->size().width == 0 && _film->size().height == 0) {
_original_size->SetLabel (wxT (""));
@@ -602,12 +597,16 @@ FilmEditor::film_changed (Film::Property p)
_dcp_name->SetLabel (std_to_wx (_film->dcp_name ()));
break;
case Film::AUDIO_STREAM:
- checked_set (_audio_stream, _film->audio_stream_index ());
+ if (_film->audio_stream()) {
+ checked_set (_audio_stream, _film->audio_stream().get().to_string());
+ }
_dcp_name->SetLabel (std_to_wx (_film->dcp_name ()));
setup_audio_details ();
break;
case Film::SUBTITLE_STREAM:
- checked_set (_subtitle_stream, _film->subtitle_stream_index ());
+ if (_film->subtitle_stream()) {
+ checked_set (_subtitle_stream, _film->subtitle_stream().get().to_string());
+ }
break;
case Film::USE_SOURCE_AUDIO:
checked_set (_use_source_audio, _film->use_source_audio ());
@@ -687,13 +686,11 @@ FilmEditor::set_film (shared_ptr<Film> f)
film_changed (Film::SIZE);
film_changed (Film::LENGTH);
film_changed (Film::FRAMES_PER_SECOND);
- film_changed (Film::AUDIO_SAMPLE_RATE);
film_changed (Film::SCALER);
film_changed (Film::AUDIO_GAIN);
film_changed (Film::AUDIO_DELAY);
film_changed (Film::STILL_DURATION);
film_changed (Film::WITH_SUBTITLES);
- film_changed (Film::HAS_SUBTITLES);
film_changed (Film::SUBTITLE_OFFSET);
film_changed (Film::SUBTITLE_SCALE);
film_changed (Film::USE_DCI_NAME);
@@ -911,7 +908,7 @@ FilmEditor::setup_subtitle_control_sensitivity ()
{
bool h = false;
if (_generally_sensitive && _film) {
- h = _film->has_subtitles();
+ h = !_film->subtitle_streams().empty();
}
_with_subtitles->Enable (h);
@@ -963,16 +960,21 @@ FilmEditor::setup_streams ()
_audio_stream->Clear ();
vector<AudioStream> a = _film->audio_streams ();
for (vector<AudioStream>::iterator i = a.begin(); i != a.end(); ++i) {
- _audio_stream->Append (std_to_wx (i->name()));
+ _audio_stream->Append (std_to_wx (i->name()), new wxStringClientData (std_to_wx (i->to_string ())));
+ }
+
+ if (_film->audio_stream()) {
+ checked_set (_audio_stream, _film->audio_stream().get().to_string());
}
- _audio_stream->SetSelection (_film->audio_stream_index ());
_subtitle_stream->Clear ();
vector<SubtitleStream> s = _film->subtitle_streams ();
for (vector<SubtitleStream>::iterator i = s.begin(); i != s.end(); ++i) {
- _subtitle_stream->Append (std_to_wx (i->name()));
+ _subtitle_stream->Append (std_to_wx (i->name()), new wxStringClientData (std_to_wx (i->to_string ())));
+ }
+ if (_film->subtitle_stream()) {
+ checked_set (_subtitle_stream, _film->subtitle_stream().get().to_string());
}
- _subtitle_stream->SetSelection (_film->subtitle_stream_index ());
}
void
@@ -982,7 +984,7 @@ FilmEditor::audio_stream_changed (wxCommandEvent &)
return;
}
- _film->set_audio_stream (_audio_stream->GetSelection ());
+ _film->set_audio_stream (AudioStream (string_client_data (_audio_stream->GetClientObject (_audio_stream->GetSelection ()))));
}
void
@@ -992,17 +994,17 @@ FilmEditor::subtitle_stream_changed (wxCommandEvent &)
return;
}
- _film->set_subtitle_stream (_subtitle_stream->GetSelection ());
+ _film->set_subtitle_stream (SubtitleStream (string_client_data (_subtitle_stream->GetClientObject (_subtitle_stream->GetSelection ()))));
}
void
FilmEditor::setup_audio_details ()
{
- if (_film->audio_channels() == 0 && _film->audio_sample_rate() == 0) {
+ if (!_film->audio_stream()) {
_audio->SetLabel (wxT (""));
} else {
stringstream s;
- s << _film->audio_channels () << " channels, " << _film->audio_sample_rate() << "Hz";
+ s << _film->audio_stream().get().channels () << " channels, " << _film->audio_stream().get().sample_rate() << "Hz";
_audio->SetLabel (std_to_wx (s.str ()));
}
}