Replace hack with use of generic_string from boost::filesystem.
[libdcp.git] / src / reel_picture_asset.h
index 98615c72bb247c76474fa525cc2d34523a3cc190..1611221fc32a777be7f0a174e91aa6a46aedeff0 100644 (file)
@@ -24,7 +24,8 @@
 #ifndef LIBDCP_REEL_PICTURE_ASSET_H
 #define LIBDCP_REEL_PICTURE_ASSET_H
 
-#include "reel_encryptable_asset.h"
+#include "reel_mxf.h"
+#include "reel_asset.h"
 #include "picture_asset.h"
 
 namespace dcp {
@@ -32,7 +33,7 @@ namespace dcp {
 /** @class ReelPictureAsset
  *  @brief Part of a Reel's description which refers to a picture asset.
  */
-class ReelPictureAsset : public ReelEncryptableAsset
+class ReelPictureAsset : public ReelAsset, public ReelMXF
 {
 public:
        ReelPictureAsset ();
@@ -42,9 +43,14 @@ public:
        virtual void write_to_cpl (xmlpp::Node* node, Standard standard) const;
        virtual bool equals (boost::shared_ptr<const ReelAsset>, EqualityOptions, NoteHandler) const;
 
+       /** @return the PictureAsset that this object refers to */
+       boost::shared_ptr<const PictureAsset> asset () const {
+               return asset_of_type<const PictureAsset> ();
+       }
+
        /** @return the PictureAsset that this object refers to */
        boost::shared_ptr<PictureAsset> asset () {
-               return boost::dynamic_pointer_cast<PictureAsset> (_asset_ref.object ());
+               return asset_of_type<PictureAsset> ();
        }
 
        /** @return picture frame rate */
@@ -59,9 +65,13 @@ public:
                _screen_aspect_ratio = a;
        }
 
+       Fraction screen_aspect_ratio () const {
+               return _screen_aspect_ratio;
+       }
+
 private:
        std::string key_type () const;
-       
+
        Fraction _frame_rate;
        Fraction _screen_aspect_ratio;
 };