#include "key.h"
#include "types.h"
#include "ref.h"
-#include <libxml++/libxml++.h>
#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
#include <list>
class Node;
}
+namespace xmlpp {
+ class Element;
+}
+
namespace dcp {
-class KDM;
+class DecryptedKDM;
class ReelAsset;
class ReelPictureAsset;
class ReelSoundAsset;
class ReelSubtitleAsset;
+class Content;
-/** @brief A reel within a DCP; the part which actually contains picture, sound and subtitle data */
+/** @brief A reel within a DCP; the part which actually refers to picture, sound and subtitle data */
class Reel : public Object
{
public:
Reel () {}
-
+
Reel (
boost::shared_ptr<ReelPictureAsset> picture,
boost::shared_ptr<ReelSoundAsset> sound,
{}
Reel (boost::shared_ptr<const cxml::Node>);
-
+
boost::shared_ptr<ReelPictureAsset> main_picture () const {
return _main_picture;
}
boost::shared_ptr<ReelSoundAsset> main_sound () const {
return _main_sound;
}
-
+
boost::shared_ptr<ReelSubtitleAsset> main_subtitle () const {
return _main_subtitle;
}
+ int64_t duration () const;
+
void add (boost::shared_ptr<ReelAsset> asset);
void write_to_cpl (xmlpp::Element* node, Standard standard) const;
bool encrypted () const;
- void set_mxf_keys (dcp::Key);
-
- bool equals (boost::shared_ptr<const Reel> other, EqualityOptions opt, boost::function<void (NoteType, std::string)> notes) const;
+ bool equals (boost::shared_ptr<const Reel> other, EqualityOptions opt, NoteHandler notes) const;
+
+ void add (DecryptedKDM const &);
- void add_kdm (KDM const &);
+ void resolve_refs (std::list<boost::shared_ptr<Asset> >);
private:
boost::shared_ptr<ReelPictureAsset> _main_picture;