X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Freel_asset.h;h=a1ad3cb12298e875e9414a7770504a3bfaf8f8a8;hb=273fd9a4f1b43ae0de0071e5efd3b6347b166ff1;hp=a71290ae1b86e91736be419e1032a6eb9706a133;hpb=77b0ffe6c50796b8fb132f56394995e0df089713;p=libdcp.git diff --git a/src/reel_asset.h b/src/reel_asset.h index a71290ae..a1ad3cb1 100644 --- a/src/reel_asset.h +++ b/src/reel_asset.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2015 Carl Hetherington 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 @@ -17,6 +17,10 @@ */ +/** @file src/reel_asset.h + * @brief ReelAsset class. + */ + #ifndef LIBDCP_REEL_ASSET_H #define LIBDCP_REEL_ASSET_H @@ -35,50 +39,45 @@ namespace xmlpp { namespace dcp { -class Content; +class Asset; /** @class ReelAsset * @brief An entry in a <Reel> which refers to a use of a piece of content. * * This class encapsulates the XML that exists in a <Reel> to say * that a piece of content is used in this reel. It does not - * describe the content itself (but links to a Content object which does). + * describe the content itself (but links to an Asset object which does). */ class ReelAsset : public Object { public: ReelAsset (); - ReelAsset (boost::shared_ptr content, int64_t entry_point); + ReelAsset (boost::shared_ptr asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point); ReelAsset (boost::shared_ptr); virtual void write_to_cpl (xmlpp::Node* node, Standard standard) const; + virtual bool equals (boost::shared_ptr, EqualityOptions, NoteHandler) const; - virtual bool equals ( - boost::shared_ptr, - EqualityOptions, - boost::function) - const { - - return false; + /** @return a Ref to our actual asset */ + Ref const & asset_ref () const { + return _asset_ref; } - /** @return a Ref to our actual content */ - Ref& content () { - return _content; + /** @return a Ref to our actual asset */ + Ref& asset_ref () { + return _asset_ref; } - /** @return true if a KeyId is specified for this asset, implying - * that its content is encrypted. - */ - bool encrypted () const { - return !_key_id.empty (); + int64_t intrinsic_duration () const { + return _intrinsic_duration; } - /** @return Key ID to describe the key that encrypts this asset's; - * content. - */ - std::string key_id () const { - return _key_id; + int64_t entry_point () const { + return _entry_point; + } + + int64_t duration () const { + return _duration; } protected: @@ -90,22 +89,20 @@ protected: /** @return Any attribute that should be used on the asset's node in the * CPL. */ - virtual std::pair cpl_node_attribute () const; + virtual std::pair cpl_node_attribute (Standard) const; - /** Reference to the content (MXF or XML file) that this reel entry + /** Reference to the asset (MXF or XML file) that this reel entry * applies to. */ - Ref _content; + Ref _asset_ref; private: - - std::string _annotation_text; ///< The from the reel's entry for this asset - Fraction _edit_rate; ///< The from the reel's entry for this asset - int64_t _intrinsic_duration; ///< The from the reel's entry for this asset - int64_t _entry_point; ///< The from the reel's entry for this asset - int64_t _duration; ///< The from the reel's entry for this asset - std::string _hash; ///< The from the reel's entry for this asset - std::string _key_id; ///< The from the reel's entry for this asset, or empty if there isn't one + std::string _annotation_text; ///< The <AnnotationText> from the reel's entry for this asset + Fraction _edit_rate; ///< The <EditRate> from the reel's entry for this asset + int64_t _intrinsic_duration; ///< The <IntrinsicDuration> from the reel's entry for this asset + int64_t _entry_point; ///< The <EntryPoint> from the reel's entry for this asset + int64_t _duration; ///< The <Duration> from the reel's entry for this asset + std::string _hash; ///< The <Hash> from the reel's entry for this asset }; }