#include "dcp_assert.h"
#include "exceptions.h"
+#include "filesystem.h"
#include "pkl.h"
#include "raw_convert.h"
#include "util.h"
: _file (file)
{
cxml::Document pkl ("PackingList");
- pkl.read_file (file);
+ pkl.read_file(dcp::filesystem::fix_long_path(file));
if (pkl.namespace_uri() == pkl_interop_ns) {
_standard = Standard::INTEROP;
} else if (pkl.namespace_uri() == pkl_smpte_ns) {
_standard = Standard::SMPTE;
} else {
- boost::throw_exception (XMLError ("Unrecognised packing list namesapce " + pkl.namespace_uri()));
+ boost::throw_exception(XMLError("Unrecognised packing list namespace " + pkl.namespace_uri()));
}
_id = remove_urn_uuid (pkl.string_child ("Id"));
pkl = doc.create_root_node("PackingList", pkl_smpte_ns);
}
- pkl->add_child("Id")->add_child_text ("urn:uuid:" + _id);
+ cxml::add_text_child(pkl, "Id", "urn:uuid:" + _id);
if (_annotation_text) {
- pkl->add_child("AnnotationText")->add_child_text (*_annotation_text);
+ cxml::add_text_child(pkl, "AnnotationText", *_annotation_text);
}
- pkl->add_child("IssueDate")->add_child_text (_issue_date);
- pkl->add_child("Issuer")->add_child_text (_issuer);
- pkl->add_child("Creator")->add_child_text (_creator);
+ cxml::add_text_child(pkl, "IssueDate", _issue_date);
+ cxml::add_text_child(pkl, "Issuer", _issuer);
+ cxml::add_text_child(pkl, "Creator", _creator);
- auto asset_list = pkl->add_child("AssetList");
+ auto asset_list = cxml::add_child(pkl, "AssetList");
for (auto i: _assets) {
- auto asset = asset_list->add_child("Asset");
- asset->add_child("Id")->add_child_text ("urn:uuid:" + i->id());
+ auto asset = cxml::add_child(asset_list, "Asset");
+ cxml::add_text_child(asset, "Id", "urn:uuid:" + i->id());
if (i->annotation_text()) {
- asset->add_child("AnnotationText")->add_child_text (*i->annotation_text());
+ cxml::add_text_child(asset, "AnnotationText", *i->annotation_text());
}
- asset->add_child("Hash")->add_child_text (i->hash());
- asset->add_child("Size")->add_child_text (raw_convert<string>(i->size()));
- asset->add_child("Type")->add_child_text (i->type());
+ cxml::add_text_child(asset, "Hash", i->hash());
+ cxml::add_text_child(asset, "Size", raw_convert<string>(i->size()));
+ cxml::add_text_child(asset, "Type", i->type());
if (auto filename = i->original_filename()) {
- asset->add_child("OriginalFileName")->add_child_text(*filename);
+ cxml::add_text_child(asset, "OriginalFileName", *filename);
}
}
signer->sign (pkl, _standard);
}
- doc.write_to_file_formatted (file.string(), "UTF-8");
+ doc.write_to_file_formatted(dcp::filesystem::fix_long_path(file).string(), "UTF-8");
_file = file;
}