diff options
Diffstat (limited to 'src/lib/subtitle_decoder.h')
| -rw-r--r-- | src/lib/subtitle_decoder.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/lib/subtitle_decoder.h b/src/lib/subtitle_decoder.h index eeeadbd3f..164c151e6 100644 --- a/src/lib/subtitle_decoder.h +++ b/src/lib/subtitle_decoder.h @@ -17,22 +17,41 @@ */ -#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<boost::shared_ptr<ContentImageSubtitle> > get_image_subtitles (ContentTimePeriod period); + std::list<boost::shared_ptr<ContentTextSubtitle> > get_text_subtitles (ContentTimePeriod period); 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<boost::shared_ptr<ContentImageSubtitle> > _decoded_image_subtitles; + std::list<boost::shared_ptr<ContentTextSubtitle> > _decoded_text_subtitles; + +private: + template <class T> + std::list<boost::shared_ptr<T> > get (std::list<boost::shared_ptr<T> > const & subs, ContentTimePeriod period); + + boost::shared_ptr<const SubtitleContent> _subtitle_content; }; + +#endif |
