#include "scaler.h"
using std::string;
+using std::cout;
using std::stringstream;
using std::pair;
using std::fixed;
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:
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 (""));
_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 ());
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);
{
bool h = false;
if (_generally_sensitive && _film) {
- h = _film->has_subtitles();
+ h = !_film->subtitle_streams().empty();
}
_with_subtitles->Enable (h);
_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
return;
}
- _film->set_audio_stream (_audio_stream->GetSelection ());
+ _film->set_audio_stream (AudioStream (string_client_data (_audio_stream->GetClientObject (_audio_stream->GetSelection ()))));
}
void
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 ()));
}
}