- BOOST_FOREACH (dcp::SubtitleString& i, s) {
- /* We must escape < and > in strings, otherwise they might confuse our subtitle
- renderer (which uses some HTML-esque markup to do bold/italic etc.)
- */
- string t = i.text ();
- boost::algorithm::replace_all (t, "<", "<");
- boost::algorithm::replace_all (t, ">", ">");
- i.set_text (t);
-
- /* Set any forced appearance */
- if (content()->colour()) {
- i.set_colour (*content()->colour());
- }
- if (content()->effect_colour()) {
- i.set_effect_colour (*content()->effect_colour());
- }
- if (content()->effect()) {
- i.set_effect (*content()->effect());
- }
- if (content()->fade_in()) {
- i.set_fade_up_time (dcp::Time(content()->fade_in()->seconds(), 1000));
- }
- if (content()->fade_out()) {
- i.set_fade_down_time (dcp::Time(content()->fade_out()->seconds(), 1000));
- }
+ if (content->colour()) {
+ subtitle.set_colour(*content->colour());
+ }
+ if (content->effect_colour()) {
+ subtitle.set_effect_colour(*content->effect_colour());
+ }
+ if (content->effect()) {
+ subtitle.set_effect(*content->effect());
+ }
+ if (content->fade_in()) {
+ subtitle.set_fade_up_time(dcp::Time(content->fade_in()->seconds(), 1000));
+ }
+ if (content->fade_out()) {
+ subtitle.set_fade_down_time (dcp::Time(content->fade_out()->seconds(), 1000));
+ }
+}
+
+
+void
+TextDecoder::emit_plain_start (ContentTime from, vector<dcp::SubtitleString> subtitles, dcp::Standard valign_standard)
+{
+ vector<StringText> string_texts;
+
+ for (auto& subtitle: subtitles) {
+ auto string_text = StringText(
+ subtitle,
+ content()->outline_width(),
+ content()->get_font(subtitle.font().get_value_or("")),
+ valign_standard
+ );
+ string_text.set_text(string_text.text());
+ set_forced_appearance(content(), string_text);
+ string_texts.push_back(string_text);