#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:
* @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 file_name, 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.
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;
};
}