/*
- Copyright (C) 2013-2017 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#ifndef DCPOMATIC_SUBTITLE_DECODER_H
-#define DCPOMATIC_SUBTITLE_DECODER_H
+
+#ifndef DCPOMATIC_CAPTION_DECODER_H
+#define DCPOMATIC_CAPTION_DECODER_H
+
#include "decoder.h"
#include "rect.h"
#include "types.h"
-#include "content_subtitle.h"
+#include "content_text.h"
#include "decoder_part.h"
#include <dcp/subtitle_string.h>
#include <boost/signals2.hpp>
+
namespace sub {
class Subtitle;
}
class Image;
+
class TextDecoder : public DecoderPart
{
public:
TextDecoder (
Decoder* parent,
- boost::shared_ptr<const TextContent>,
- boost::shared_ptr<Log> log,
- ContentTime first
+ std::shared_ptr<const TextContent>,
+ dcpomatic::ContentTime first
);
- ContentTime position () const {
+ boost::optional<dcpomatic::ContentTime> position (std::shared_ptr<const Film>) const override {
return _position;
}
- void emit_bitmap_start (ContentTime from, boost::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
- void emit_plain_start (ContentTime from, std::list<dcp::SubtitleString> s);
- void emit_plain_start (ContentTime from, sub::Subtitle const & subtitle);
- void emit_plain (ContentTimePeriod period, std::list<dcp::SubtitleString> s);
- void emit_plain (ContentTimePeriod period, sub::Subtitle const & subtitle);
- void emit_stop (ContentTime to);
+ void emit_bitmap_start (ContentBitmapText const& bitmap);
+ void emit_bitmap (dcpomatic::ContentTimePeriod period, std::shared_ptr<const Image> image, dcpomatic::Rect<double> rect);
+ void emit_plain_start (dcpomatic::ContentTime from, std::list<dcp::SubtitleString> s);
+ void emit_plain_start (dcpomatic::ContentTime from, sub::Subtitle const & subtitle);
+ void emit_plain (dcpomatic::ContentTimePeriod period, std::list<dcp::SubtitleString> s);
+ void emit_plain (dcpomatic::ContentTimePeriod period, sub::Subtitle const & subtitle);
+ void emit_stop (dcpomatic::ContentTime to);
- void seek ();
+ void seek () override;
- boost::shared_ptr<const TextContent> content () const {
+ std::shared_ptr<const TextContent> content () const {
return _content;
}
boost::signals2::signal<void (ContentBitmapText)> BitmapStart;
- boost::signals2::signal<void (ContentTextSubtitle)> PlainStart;
- boost::signals2::signal<void (ContentTime)> Stop;
+ boost::signals2::signal<void (ContentStringText)> PlainStart;
+ boost::signals2::signal<void (dcpomatic::ContentTime)> Stop;
private:
- boost::shared_ptr<const TextContent> _content;
- ContentTime _position;
+ std::shared_ptr<const TextContent> _content;
+ boost::optional<dcpomatic::ContentTime> _position;
};
+
#endif