- /** Write the CPL file.
- * @param cpl_uuid UUID to use.
- * @return CPL pathname.
- */
- std::string write_cpl (std::string cpl_uuid) const;
-
- /** Write the PKL file.
- * @param pkl_uuid UUID to use.
- * @param cpl_uuid UUID of the CPL file.
- * @param cpl_digest SHA digest of the CPL file.
- * @param cpl_length Length of the CPL file in bytes.
- */
- std::string write_pkl (std::string pkl_uuid, std::string cpl_uuid, std::string cpl_digest, int cpl_length) const;
-
- /** Write the VOLINDEX file */
- void write_volindex () const;
-
- /** Write the ASSETMAP file.
- * @param cpl_uuid UUID of our CPL.
- * @param cpl_length Length of our CPL in bytes.
- * @param pkl_uuid UUID of our PKL.
- * @param pkl_length Length of our PKL in bytes.
- */
- void write_assetmap (std::string cpl_uuid, int cpl_length, std::string pkl_uuid, int pkl_length) const;
-
- /** the directory that we are writing to */
- std::string _directory;
- /** the name of the DCP */
- std::string _name;
- /** the content kind of the DCP */
- ContentKind _content_kind;
- /** frames per second */
- int _fps;
- /** length in frames */
- int _length;
- /** assets */
- std::list<boost::shared_ptr<Asset> > _assets;
+ void write_volindex (Standard standard) const;
+
+ /** The directory that we are writing to */
+ boost::filesystem::path _directory;
+ /** The CPLs that make up this DCP */
+ std::vector<std::shared_ptr<CPL>> _cpls;
+ /** The PKLs that make up this DCP */
+ std::vector<std::shared_ptr<PKL>> _pkls;
+ boost::optional<AssetMap> _asset_map;
+
+ /* Metadata to use for newly created PKLs and AssetMaps */
+ boost::optional<std::string> _new_issuer;
+ boost::optional<std::string> _new_creator;
+ boost::optional<std::string> _new_issue_date;
+ boost::optional<std::string> _new_annotation_text;