diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-05-10 14:29:14 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-05-18 11:50:29 +0100 |
| commit | 504c63b3d62038bc486ca8a09e77fbb403907edd (patch) | |
| tree | d9118c185110dd9eb103ed033700d4b3f486785d /src/lib/text_subtitle_decoder.cc | |
| parent | 9423e02c37daba7f9e406929a1cfc1bb10fb4b62 (diff) | |
Basics of splitting up Decoder tree like Content.
Diffstat (limited to 'src/lib/text_subtitle_decoder.cc')
| -rw-r--r-- | src/lib/text_subtitle_decoder.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/lib/text_subtitle_decoder.cc b/src/lib/text_subtitle_decoder.cc index 94604cd71..f76bb7f75 100644 --- a/src/lib/text_subtitle_decoder.cc +++ b/src/lib/text_subtitle_decoder.cc @@ -34,17 +34,23 @@ using boost::optional; using boost::dynamic_pointer_cast; TextSubtitleDecoder::TextSubtitleDecoder (shared_ptr<const TextSubtitleContent> content) - : SubtitleDecoder (content->subtitle) - , TextSubtitle (content) + : TextSubtitle (content) , _next (0) { - + subtitle.reset ( + new SubtitleDecoder ( + this, + content->subtitle, + bind (&TextSubtitleDecoder::image_subtitles_during, this, _1, _2), + bind (&TextSubtitleDecoder::text_subtitles_during, this, _1, _2) + ) + ); } void TextSubtitleDecoder::seek (ContentTime time, bool accurate) { - SubtitleDecoder::seek (time, accurate); + subtitle->seek (time, accurate); _next = 0; while (_next < _subtitles.size() && ContentTime::from_seconds (_subtitles[_next].from.all_as_seconds ()) < time) { @@ -79,7 +85,7 @@ TextSubtitleDecoder::pass (PassReason, bool) j.italic, j.bold, /* force the colour to whatever is configured */ - _subtitle_content->colour(), + subtitle->content()->colour(), j.font_size.points (72 * 11), 1.0, dcp::Time (_subtitles[_next].from.all_as_seconds(), 1000), @@ -93,8 +99,8 @@ TextSubtitleDecoder::pass (PassReason, bool) dcp::VALIGN_TOP, dcp::DIRECTION_LTR, j.text, - _subtitle_content->outline() ? dcp::BORDER : dcp::NONE, - _subtitle_content->outline_colour(), + subtitle->content()->outline() ? dcp::BORDER : dcp::NONE, + subtitle->content()->outline_colour(), dcp::Time (0, 1000), dcp::Time (0, 1000) ) @@ -102,7 +108,7 @@ TextSubtitleDecoder::pass (PassReason, bool) } } - text_subtitle (content_time_period (_subtitles[_next]), out); + subtitle->text_subtitle (content_time_period (_subtitles[_next]), out); ++_next; return false; |
