Try to fix build on OS X.
[libdcp.git] / src / reel_asset.h
index a71290ae1b86e91736be419e1032a6eb9706a133..a1ad3cb12298e875e9414a7770504a3bfaf8f8a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2015 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
 
 */
 
+/** @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 &lt;Reel&gt; which refers to a use of a piece of content.
  *
  *  This class encapsulates the XML that exists in a &lt;Reel&gt; 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> content, int64_t entry_point);
+       ReelAsset (boost::shared_ptr<Asset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
        ReelAsset (boost::shared_ptr<const cxml::Node>);
 
        virtual void write_to_cpl (xmlpp::Node* node, Standard standard) const;
+       virtual bool equals (boost::shared_ptr<const ReelAsset>, EqualityOptions, NoteHandler) const;
 
-       virtual bool equals (
-               boost::shared_ptr<const ReelAsset>,
-               EqualityOptions,
-               boost::function<void (NoteType, std::string)>)
-               const {
-               
-               return false;
+       /** @return a Ref to our actual asset */
+       Ref<Asset> const & asset_ref () const {
+               return _asset_ref;
        }
 
-       /** @return a Ref to our actual content */
-       Ref<Content>& content () {
-               return _content;
+       /** @return a Ref to our actual asset */
+       Ref<Asset>& 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<std::string, std::string> cpl_node_attribute () const;
+       virtual std::pair<std::string, std::string> 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> _content;
+       Ref<Asset> _asset_ref;
 
 private:
-       
-       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
-       std::string _key_id;          ///< The <KeyId> from the reel's entry for this asset, or empty if there isn't one
+       std::string _annotation_text; ///< The &lt;AnnotationText&gt; from the reel's entry for this asset
+       Fraction _edit_rate;          ///< The &lt;EditRate&gt; from the reel's entry for this asset
+       int64_t _intrinsic_duration;  ///< The &lt;IntrinsicDuration&gt; from the reel's entry for this asset
+       int64_t _entry_point;         ///< The &lt;EntryPoint&gt; from the reel's entry for this asset
+       int64_t _duration;            ///< The &lt;Duration&gt; from the reel's entry for this asset
+       std::string _hash;            ///< The &lt;Hash&gt; from the reel's entry for this asset
 };
 
 }