Updated cs_CZ translation from Tomáš Begeni.
[dcpomatic.git] / src / lib / text_decoder.h
index d8a64157e9f7f96ea48456312a6818ce34cff8f0..1a7632fd82b8448366dddc0676531c8b04fd9a27 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    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 "content_text.h"
 #include "decoder.h"
+#include "decoder_part.h"
 #include "rect.h"
-#include "types.h"
 #include "content_text.h"
-#include "decoder_part.h"
+#include "types.h"
+#include <dcp/subtitle_standard.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
-               );
-
-       ContentTime position () const {
+       TextDecoder (Decoder* parent, std::shared_ptr<const TextContent>);
+
+       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::vector<dcp::SubtitleString> s, dcp::SubtitleStandard valign_standard);
+       void emit_plain_start (dcpomatic::ContentTime from, sub::Subtitle const & subtitle);
+       void emit_plain(dcpomatic::ContentTimePeriod period, std::vector<dcp::SubtitleString> s, dcp::SubtitleStandard 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);
 
-       boost::shared_ptr<const TextContent> content () const {
+       void seek () override;
+
+       std::shared_ptr<const TextContent> content () const {
                return _content;
        }
 
+       static std::string remove_invalid_characters_for_xml(std::string text);
+
        boost::signals2::signal<void (ContentBitmapText)> BitmapStart;
        boost::signals2::signal<void (ContentStringText)> PlainStart;
-       boost::signals2::signal<void (ContentTime)> Stop;
+       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