Fix handling of timing in SMPTE subtitles.
[libdcp.git] / src / mono_picture_mxf.h
index 029ccce503c219d0895cc95eff6232eba62f2255..4e5211ca4c6a4f4ca2c574c25057620e4100901b 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 
 namespace dcp {
 
-/** A 2D (monoscopic) picture asset */
+class MonoPictureMXFWriter;    
+
+/** @class MonoPictureMXF
+ *  @brief A 2D (monoscopic) picture MXF.
+ */
 class MonoPictureMXF : public PictureMXF
 {
 public:
-       MonoPictureMXF (boost::filesystem::path directory, boost::filesystem::path mxf_name);
+       /** Create a MonoPictureMXF by reading a file.
+        *  @param file MXF file to read.
+        */
+       MonoPictureMXF (boost::filesystem::path file);
 
-       void read ();
+       /** Create a MonoPictureMXF with a given edit rate.
+        *  @param edit_rate Edit rate (i.e. frame rate) in frames per second.
+        */
+       MonoPictureMXF (Fraction edit_rate);
 
        /** Start a progressive write to a MonoPictureMXF */
-       boost::shared_ptr<PictureMXFWriter> start_write (bool);
-
+       boost::shared_ptr<PictureMXFWriter> start_write (boost::filesystem::path, Standard standard, bool);
+
+       bool equals (
+               boost::shared_ptr<const Asset> other,
+               EqualityOptions opt,
+               NoteHandler note
+               ) const;
+       
        boost::shared_ptr<const MonoPictureFrame> get_frame (int n) const;
-       bool equals (boost::shared_ptr<const ContentAsset> other, EqualityOptions opt, boost::function<void (NoteType, std::string)> note) const;
 
 private:
-       boost::filesystem::path path_from_list (int f, std::vector<boost::filesystem::path> const & files) const;
-       void construct (boost::function<boost::filesystem::path (int)>, bool, MXFMetadata const &);
        std::string cpl_node_name () const;
-       int edit_rate_factor () const;
 };
 
 }