SubtitleString -> shared_ptr<Subtitle>
[libdcp.git] / src / reel_subtitle_asset.h
index 91dcd53b1a98e3548c7060cab7bc7416f63d79c7..976ff56d2d976adbf83268ef998fa4bf6b4b0730 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2017 Carl Hetherington <cth@carlh.net>
 
     This file is part of libdcp.
 
@@ -39,6 +39,7 @@
 #define LIBDCP_REEL_SUBTITLE_ASSET_H
 
 #include "reel_asset.h"
+#include "reel_mxf.h"
 #include "subtitle_asset.h"
 
 namespace dcp {
@@ -46,20 +47,23 @@ namespace dcp {
 class SubtitleAsset;
 
 /** @class ReelSubtitleAsset
- *  @brief Part of a Reel's description which refers to a subtitle XML file.
+ *  @brief Part of a Reel's description which refers to a subtitle XML/MXF file.
  */
-class ReelSubtitleAsset : public ReelAsset
+class ReelSubtitleAsset : public ReelAsset, public ReelMXF
 {
 public:
-       ReelSubtitleAsset (boost::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point);
+       ReelSubtitleAsset (boost::shared_ptr<SubtitleAsset> asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point);
        explicit ReelSubtitleAsset (boost::shared_ptr<const cxml::Node>);
 
+       void write_to_cpl (xmlpp::Node* node, Standard standard) const;
+
        boost::shared_ptr<SubtitleAsset> asset () const {
                return asset_of_type<SubtitleAsset> ();
        }
 
 private:
-       std::string cpl_node_name () const;
+       std::string key_type () const;
+       std::string cpl_node_name (Standard standard) const;
 };
 
 }