+
+shared_ptr<dcp::SubtitleAsset>
+ReelWriter::empty_text_asset (TextType type, optional<DCPTextTrack> track, bool with_dummy) const
+{
+ shared_ptr<dcp::SubtitleAsset> asset;
+
+ auto lang = film()->subtitle_languages();
+ if (film()->interop()) {
+ auto s = make_shared<dcp::InteropSubtitleAsset>();
+ s->set_movie_title (film()->name());
+ if (type == TextType::OPEN_SUBTITLE) {
+ s->set_language (lang.first ? lang.first->to_string() : "Unknown");
+ } else if (track->language) {
+ s->set_language (track->language->to_string());
+ }
+ s->set_reel_number (raw_convert<string> (_reel_index + 1));
+ asset = s;
+ } else {
+ auto s = make_shared<dcp::SMPTESubtitleAsset>();
+ s->set_content_title_text (film()->name());
+ s->set_metadata (mxf_metadata());
+ if (type == TextType::OPEN_SUBTITLE && lang.first) {
+ s->set_language (*lang.first);
+ } else if (track && track->language) {
+ s->set_language (dcp::LanguageTag(track->language->to_string()));
+ }
+ s->set_edit_rate (dcp::Fraction (film()->video_frame_rate(), 1));
+ s->set_reel_number (_reel_index + 1);
+ s->set_time_code_rate (film()->video_frame_rate());
+ s->set_start_time (dcp::Time ());
+ if (film()->encrypted()) {
+ s->set_key (film()->key());
+ }
+ if (with_dummy) {
+ s->add (
+ std::make_shared<dcp::SubtitleString>(
+ optional<std::string>(),
+ false,
+ false,
+ false,
+ dcp::Colour(),
+ 42,
+ 1.0,
+ dcp::Time(0, 0, 0, 0, 24),
+ dcp::Time(0, 0, 1, 0, 24),
+ 0.5,
+ dcp::HAlign::CENTER,
+ 0.5,
+ dcp::VAlign::CENTER,
+ dcp::Direction::LTR,
+ " ",
+ dcp::Effect::NONE,
+ dcp::Colour(),
+ dcp::Time(),
+ dcp::Time(),
+ 0
+ )
+ );
+ }
+ asset = s;
+ }
+
+ return asset;
+}
+
+