summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-06-13 00:49:13 +0100
committerCarl Hetherington <cth@carlh.net>2017-06-13 00:49:13 +0100
commit863d9cc51b406500dba596b6f1de733ec3f410c5 (patch)
tree7cb5d011ca101ff47a3aeb162efcaf5e127392e8
parentb4fc0aa7792fe9e9d6ed83d024a712783ce5dfe6 (diff)
Remove redundant _annotation_text from CPL.
-rw-r--r--src/cpl.cc14
-rw-r--r--src/cpl.h15
-rw-r--r--src/reel_asset.h4
3 files changed, 22 insertions, 11 deletions
diff --git a/src/cpl.cc b/src/cpl.cc
index 0abf864a..c53b8e95 100644
--- a/src/cpl.cc
+++ b/src/cpl.cc
@@ -62,12 +62,12 @@ static string const cpl_interop_ns = "http://www.digicine.com/PROTO-ASDCP-CPL-20
static string const cpl_smpte_ns = "http://www.smpte-ra.org/schemas/429-7/2006/CPL";
CPL::CPL (string annotation_text, ContentKind content_kind)
- : _annotation_text (annotation_text)
- /* default _content_title_text to _annotation_text */
- , _content_title_text (annotation_text)
+ /* default _content_title_text to annotation_text */
+ : _content_title_text (annotation_text)
, _content_kind (content_kind)
, _content_version_id ("urn:uuid:" + make_uuid ())
{
+ _metadata.annotation_text = annotation_text;
/* default _content_version_id to a random ID and _content_version_label to
a random ID and the current time.
*/
@@ -92,7 +92,7 @@ CPL::CPL (boost::filesystem::path file)
}
_id = remove_urn_uuid (f.string_child ("Id"));
- _annotation_text = f.optional_string_child ("AnnotationText").get_value_or ("");
+ _metadata.annotation_text = f.optional_string_child ("AnnotationText").get_value_or ("");
_metadata.issuer = f.optional_string_child ("Issuer").get_value_or ("");
_metadata.creator = f.optional_string_child ("Creator").get_value_or ("");
_metadata.issue_date = f.string_child ("IssueDate");
@@ -144,7 +144,7 @@ CPL::write_xml (boost::filesystem::path file, Standard standard, shared_ptr<cons
}
root->add_child("Id")->add_child_text ("urn:uuid:" + _id);
- root->add_child("AnnotationText")->add_child_text (_annotation_text);
+ root->add_child("AnnotationText")->add_child_text (_metadata.annotation_text);
root->add_child("IssueDate")->add_child_text (_metadata.issue_date);
root->add_child("Issuer")->add_child_text (_metadata.issuer);
root->add_child("Creator")->add_child_text (_metadata.creator);
@@ -204,8 +204,8 @@ CPL::equals (shared_ptr<const Asset> other, EqualityOptions opt, NoteHandler not
return false;
}
- if (_annotation_text != other_cpl->_annotation_text && !opt.cpl_annotation_texts_can_differ) {
- string const s = "CPL: annotation texts differ: " + _annotation_text + " vs " + other_cpl->_annotation_text + "\n";
+ if (_metadata.annotation_text != other_cpl->_metadata.annotation_text && !opt.cpl_annotation_texts_can_differ) {
+ string const s = "CPL: annotation texts differ: " + _metadata.annotation_text + " vs " + other_cpl->_metadata.annotation_text + "\n";
note (DCP_ERROR, s);
return false;
}
diff --git a/src/cpl.h b/src/cpl.h
index 4219c523..7e6dac6f 100644
--- a/src/cpl.h
+++ b/src/cpl.h
@@ -78,7 +78,11 @@ public:
/** @return contents of the &lt;AnnotationText&gt; node */
std::string annotation_text () const {
- return _annotation_text;
+ return _metadata.annotation_text;
+ }
+
+ void set_annotation_text (std::string at) {
+ _metadata.annotation_text = at;
}
/** @return contents of the &lt;ContentTitleText&gt; node */
@@ -86,6 +90,10 @@ public:
return _content_title_text;
}
+ void set_content_title_text (std::string ct) {
+ _content_title_text = ct;
+ }
+
/** @return contents of the &lt;Id&gt; node within &lt;ContentVersion&gt; */
void set_content_version_id (std::string id) {
_content_version_id = id;
@@ -137,9 +145,8 @@ protected:
std::string pkl_type (Standard standard) const;
private:
- std::string _annotation_text; ///< &lt;AnnotationText&gt;
- /** &lt;Issuer&gt;, &lt;Creator&gt; and &lt;IssueDate&gt;. These are grouped
- * because they occur together in a few places.
+ /** &lt;Issuer&gt;, &lt;Creator&gt;, &lt;IssueDate&gt; and &lt;AnnotationText&gt.
+ * These are grouped because they occur together in a few places.
*/
XMLMetadata _metadata;
std::string _content_title_text; ///< &lt;ContentTitleText&gt;
diff --git a/src/reel_asset.h b/src/reel_asset.h
index 06db76d5..d1d2e1b6 100644
--- a/src/reel_asset.h
+++ b/src/reel_asset.h
@@ -113,6 +113,10 @@ public:
return _hash;
}
+ void set_annotation_text (std::string at) {
+ _annotation_text = at;
+ }
+
protected:
template <class T>