diff options
Diffstat (limited to 'src/lib/film.cc')
| -rw-r--r-- | src/lib/film.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc index 0b2b67801..0b9e57117 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -408,6 +408,9 @@ Film::metadata (bool with_content_paths) const m->set_attribute("Type", dcp::marker_to_string(i->first)); m->add_child_text(raw_convert<string>(i->second.get())); } + BOOST_FOREACH (dcp::Rating i, _ratings) { + i.as_xml (root->add_child("Rating")); + } _playlist->as_xml (root->add_child ("Playlist"), with_content_paths); return doc; @@ -540,6 +543,10 @@ Film::read_metadata (optional<boost::filesystem::path> path) _markers[dcp::marker_from_string(i->string_attribute("Type"))] = DCPTime(dcp::raw_convert<DCPTime::Type>(i->content())); } + BOOST_FOREACH (cxml::ConstNodePtr i, f.node_children("Rating")) { + _ratings.push_back (dcp::Rating(i)); + } + list<string> notes; /* This method is the only one that can return notes (so far) */ _playlist->set_from_xml (shared_from_this(), f.node_child ("Playlist"), _state_version, notes); @@ -1709,6 +1716,13 @@ Film::unset_marker (dcp::Marker type) _markers.erase (type); } +void +Film::set_ratings (vector<dcp::Rating> r) +{ + ChangeSignaller<Film> ch (this, RATINGS); + _ratings = r; +} + optional<DCPTime> Film::marker (dcp::Marker type) const { |
