Add duration, starting off as intrinsic_duration but changeable.
[libdcp.git] / src / mxf_asset.h
index 35509311d932c1c96f6d34bfb2f0a1ea19990dce..9526135382d6adad966e745603fe8dcc5e0a77b5 100644 (file)
 #ifndef LIBDCP_MXF_ASSET_H
 #define LIBDCP_MXF_ASSET_H
 
+#include <boost/signals2.hpp>
 #include "asset.h"
 
 namespace libdcp
 {
 
+/** @brief Parent class for assets which have MXF files */     
 class MXFAsset : public Asset
 {
 public:
        /** Construct an MXFAsset.
         *  @param directory Directory where MXF file is.
-        *  @param mxf_name Name of MXF file.
+        *  @param file_name Name of MXF file.
         *  @param progress Signal to inform of progress.
         *  @param fps Frames per second.
-        *  @param length Length in frames.
+        *  @param intrinsic_duration Duration of the whole asset in frames.
         */
-       MXFAsset (std::string directory, std::string mxf_path, sigc::signal1<void, float>* progress, int fps, int length);
+       MXFAsset (std::string directory, std::string file_name, boost::signals2::signal<void (float)>* progress, int fps, int intrinsic_duration);
 
-       virtual std::list<std::string> equals (boost::shared_ptr<const Asset> other, EqualityOptions opt) const;
+       void set_entry_point (int e);
+       void set_duration (int d);
+
+       virtual bool equals (boost::shared_ptr<const Asset> other, EqualityOptions opt, std::list<std::string>& notes) const;
        
-       int length () const;
+       int intrinsic_duration () const;
 
 protected:
        /** Fill in a ADSCP::WriteInfo struct.
@@ -48,11 +53,15 @@ protected:
        void fill_writer_info (ASDCP::WriterInfo* w) const;
 
        /** Signal to emit to report progress */
-       sigc::signal1<void, float>* _progress;
+       boost::signals2::signal<void (float)>* _progress;
        /** Frames per second */
        int _fps;
-       /** Length in frames */
-       int _length;
+       /** Start point to present in frames */
+       int _entry_point;
+       /** Total length in frames */
+       int _intrinsic_duration;
+       /** Length to present in frames */
+       int _duration;
 };
 
 }