Improve OpenFileError so that it doesn't say "opening for read"
[dcpomatic.git] / src / lib / reel_writer.h
index cd22fa775ca969c414da1996743e806b358107d9..741b0914cc9dc2f028844a71797399a164b0f215 100644 (file)
@@ -21,7 +21,8 @@
 #include "types.h"
 #include "dcpomatic_time.h"
 #include "referenced_reel_asset.h"
-#include "player_caption.h"
+#include "player_text.h"
+#include "dcp_text_track.h"
 #include <dcp/picture_asset_writer.h>
 #include <boost/shared_ptr.hpp>
 
@@ -29,6 +30,7 @@ class Film;
 class Job;
 class Font;
 class AudioBuffers;
+struct write_frame_info_test;
 
 namespace dcp {
        class MonoPictureAsset;
@@ -60,7 +62,7 @@ public:
        void fake_write (Frame frame, Eyes eyes, int size);
        void repeat_write (Frame frame, Eyes eyes);
        void write (boost::shared_ptr<const AudioBuffers> audio);
-       void write (PlayerCaption text, TextType type, DCPTimePeriod period);
+       void write (PlayerText text, TextType type, boost::optional<DCPTextTrack> track, DCPTimePeriod period);
 
        void finish ();
        boost::shared_ptr<dcp::Reel> create_reel (std::list<ReferencedReelAsset> const & refs, std::list<boost::shared_ptr<Font> > const & fonts);
@@ -88,6 +90,8 @@ public:
 
 private:
 
+       friend struct ::write_frame_info_test;
+
        void write_frame_info (Frame frame, Eyes eyes, dcp::FrameInfo info) const;
        long frame_info_position (Frame frame, Eyes eyes) const;
        Frame check_existing_picture_asset ();
@@ -114,6 +118,7 @@ private:
        boost::shared_ptr<dcp::SoundAsset> _sound_asset;
        boost::shared_ptr<dcp::SoundAssetWriter> _sound_asset_writer;
        boost::shared_ptr<dcp::SubtitleAsset> _subtitle_asset;
+       std::map<DCPTextTrack, boost::shared_ptr<dcp::SubtitleAsset> > _closed_caption_assets;
 
        static int const _info_size;
 };