/*
- Copyright (C) 2013-2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#ifndef DCPOMATIC_CAPTION_DECODER_H
#define DCPOMATIC_CAPTION_DECODER_H
+
#include "decoder.h"
#include "rect.h"
-#include "types.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,
- std::shared_ptr<const TextContent>,
- dcpomatic::ContentTime first
- );
+ TextDecoder (Decoder* parent, std::shared_ptr<const TextContent>);
- boost::optional<dcpomatic::ContentTime> position (std::shared_ptr<const Film>) const {
+ boost::optional<dcpomatic::ContentTime> position (std::shared_ptr<const Film>) const override {
return _position;
}
- void emit_bitmap_start (dcpomatic::ContentTime from, std::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
- void emit_bitmap (dcpomatic::ContentTimePeriod period, std::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
- void emit_plain_start (dcpomatic::ContentTime from, std::list<dcp::SubtitleString> s);
+ 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::vector<dcp::SubtitleString> s, dcp::Standard valign_standard);
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, std::vector<dcp::SubtitleString> s, dcp::Standard valign_standard);
void emit_plain (dcpomatic::ContentTimePeriod period, sub::Subtitle const & subtitle);
void emit_stop (dcpomatic::ContentTime to);
- void seek ();
+ void maybe_set_position (dcpomatic::ContentTime position);
+
+ void seek () override;
std::shared_ptr<const TextContent> content () const {
return _content;
boost::optional<dcpomatic::ContentTime> _position;
};
+
#endif