Rearrange some includes of dcpomatic_time.h
[dcpomatic.git] / src / lib / writer.h
index 14d4b7faa323b7483e3eec29e70d527a93f55e1b..67172b0d4de94a8b655f23e5d8ed2c4554d35a27 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 
 #include "atmos_metadata.h"
-#include "types.h"
-#include "player_text.h"
-#include "exception_store.h"
 #include "dcp_text_track.h"
+#include "dcpomatic_time.h"
+#include "exception_store.h"
+#include "player_text.h"
+#include "types.h"
 #include "weak_film.h"
 #include <dcp/atmos_frame.h>
 #include <boost/thread.hpp>
@@ -44,11 +45,11 @@ namespace dcpomatic {
        class FontData;
 }
 
-class Film;
 class AudioBuffers;
+class Film;
 class Job;
-class ReferencedReelAsset;
 class ReelWriter;
+class ReferencedReelAsset;
 
 
 struct QueueItem
@@ -128,7 +129,9 @@ private:
        size_t video_reel (int frame) const;
        void set_digest_progress (Job* job, float progress);
        void write_cover_sheet (boost::filesystem::path output_dcp);
-       void calculate_referenced_digests (boost::function<void (float)> set_progress);
+       void calculate_referenced_digests (std::function<void (float)> set_progress);
+       void write_hanging_text (ReelWriter& reel);
+       void calculate_digests ();
 
        std::weak_ptr<Job> _job;
        std::vector<ReelWriter> _reels;
@@ -204,4 +207,13 @@ private:
        bool _have_subtitles = false;
        /** all closed caption tracks that we have on any reel */
        std::set<DCPTextTrack> _have_closed_captions;
+
+       struct HangingText {
+               PlayerText text;
+               TextType type;
+               boost::optional<DCPTextTrack> track;
+               dcpomatic::DCPTimePeriod period;
+       };
+
+       std::vector<HangingText> _hanging_texts;
 };