diff options
Diffstat (limited to 'src/lib/subtitle_decoder.h')
| -rw-r--r-- | src/lib/subtitle_decoder.h | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/lib/subtitle_decoder.h b/src/lib/subtitle_decoder.h index eeeadbd3f..142cfa42b 100644 --- a/src/lib/subtitle_decoder.h +++ b/src/lib/subtitle_decoder.h @@ -17,22 +17,43 @@ */ -#include <boost/signals2.hpp> +#ifndef DCPOMATIC_SUBTITLE_DECODER_H +#define DCPOMATIC_SUBTITLE_DECODER_H + +#include <dcp/subtitle_string.h> #include "decoder.h" #include "rect.h" #include "types.h" +#include "content_subtitle.h" class Film; -class TimedSubtitle; +class DCPTimedSubtitle; class Image; class SubtitleDecoder : public virtual Decoder { public: - SubtitleDecoder (boost::shared_ptr<const Film>); + SubtitleDecoder (boost::shared_ptr<const SubtitleContent>); - boost::signals2::signal<void (boost::shared_ptr<Image>, dcpomatic::Rect<double>, Time, Time)> Subtitle; + std::list<ContentImageSubtitle> get_image_subtitles (ContentTimePeriod period, bool starting); + std::list<ContentTextSubtitle> get_text_subtitles (ContentTimePeriod period, bool starting); protected: - void subtitle (boost::shared_ptr<Image>, dcpomatic::Rect<double>, Time, Time); + void seek (ContentTime, bool); + + void image_subtitle (ContentTimePeriod period, boost::shared_ptr<Image>, dcpomatic::Rect<double>); + void text_subtitle (std::list<dcp::SubtitleString>); + + std::list<ContentImageSubtitle> _decoded_image_subtitles; + std::list<ContentTextSubtitle> _decoded_text_subtitles; + +private: + template <class T> + std::list<T> get (std::list<T> const & subs, ContentTimePeriod period, bool starting); + + virtual std::list<ContentTimePeriod> subtitles_during (ContentTimePeriod, bool starting) const = 0; + + boost::shared_ptr<const SubtitleContent> _subtitle_content; }; + +#endif |
