/*
- 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_picture_asset.h
+ * @brief ReelPictureAsset class.
+ */
+
#ifndef LIBDCP_REEL_PICTURE_ASSET_H
#define LIBDCP_REEL_PICTURE_ASSET_H
+#include "reel_mxf.h"
#include "reel_asset.h"
-#include "picture_mxf.h"
+#include "picture_asset.h"
namespace dcp {
-class ReelPictureAsset : public ReelAsset
+/** @class ReelPictureAsset
+ * @brief Part of a Reel's description which refers to a picture asset.
+ */
+class ReelPictureAsset : public ReelAsset, public ReelMXF
{
public:
ReelPictureAsset ();
- ReelPictureAsset (boost::shared_ptr<PictureMXF> content, int64_t entry_point);
+ ReelPictureAsset (boost::shared_ptr<PictureAsset> asset, int64_t entry_point);
ReelPictureAsset (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;
+
+ /** @return the PictureAsset that this object refers to */
+ boost::shared_ptr<PictureAsset> asset () {
+ return boost::dynamic_pointer_cast<PictureAsset> (_asset_ref.object ());
+ }
- boost::shared_ptr<PictureMXF> mxf () {
- return boost::dynamic_pointer_cast<PictureMXF> (_content.object ());
+ /** @return picture frame rate */
+ Fraction frame_rate () const {
+ return _frame_rate;
}
+ /** Set the ScreenAspectRatio of this asset.
+ * @param a New aspect ratio.
+ */
void set_screen_aspect_ratio (Fraction a) {
_screen_aspect_ratio = a;
}
private:
+ std::string key_type () const;
+
Fraction _frame_rate;
Fraction _screen_aspect_ratio;
};