- auto p = _directory;
-
- switch (standard) {
- case Standard::INTEROP:
- p /= "ASSETMAP";
- break;
- case Standard::SMPTE:
- p /= "ASSETMAP.xml";
- break;
- default:
- DCP_ASSERT (false);
- }
-
- xmlpp::Document doc;
- xmlpp::Element* root;
-
- switch (standard) {
- case Standard::INTEROP:
- root = doc.create_root_node ("AssetMap", assetmap_interop_ns);
- break;
- case Standard::SMPTE:
- root = doc.create_root_node ("AssetMap", assetmap_smpte_ns);
- break;
- default:
- DCP_ASSERT (false);
- }
-
- root->add_child("Id")->add_child_text ("urn:uuid:" + make_uuid());
- root->add_child("AnnotationText")->add_child_text (annotation_text);
-
- switch (standard) {
- case Standard::INTEROP:
- root->add_child("VolumeCount")->add_child_text ("1");
- root->add_child("IssueDate")->add_child_text (issue_date);
- root->add_child("Issuer")->add_child_text (issuer);
- root->add_child("Creator")->add_child_text (creator);
- break;
- case Standard::SMPTE:
- root->add_child("Creator")->add_child_text (creator);
- root->add_child("VolumeCount")->add_child_text ("1");
- root->add_child("IssueDate")->add_child_text (issue_date);
- root->add_child("Issuer")->add_child_text (issuer);
- break;
- default:
- DCP_ASSERT (false);
- }
-
- auto asset_list = root->add_child ("AssetList");
-
- auto asset = asset_list->add_child ("Asset");
- asset->add_child("Id")->add_child_text ("urn:uuid:" + pkl_uuid);
- asset->add_child("PackingList")->add_child_text ("true");
- auto chunk_list = asset->add_child ("ChunkList");
- auto chunk = chunk_list->add_child ("Chunk");
- chunk->add_child("Path")->add_child_text (pkl_path.filename().string());
- chunk->add_child("VolumeIndex")->add_child_text ("1");
- chunk->add_child("Offset")->add_child_text ("0");
- chunk->add_child("Length")->add_child_text (raw_convert<string> (boost::filesystem::file_size (pkl_path)));
-
- for (auto i: assets()) {
- i->write_to_assetmap (asset_list, _directory);