summaryrefslogtreecommitdiff
path: root/src/lib/film.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/film.cc')
-rw-r--r--src/lib/film.cc20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 1f188021b..1275c571b 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -490,6 +490,9 @@ Film::metadata (bool with_content_paths) const
if (_facility) {
root->add_child("Facility")->add_child_text(*_facility);
}
+ if (_studio) {
+ root->add_child("Studio")->add_child_text(*_studio);
+ }
if (_luminance) {
root->add_child("LuminanceValue")->add_child_text(raw_convert<string>(_luminance->value()));
root->add_child("LuminanceUnit")->add_child_text(dcp::Luminance::unit_to_string(_luminance->unit()));
@@ -666,6 +669,7 @@ Film::read_metadata (optional<boost::filesystem::path> path)
_chain = f.optional_string_child("Chain");
_distributor = f.optional_string_child("Distributor");
_facility = f.optional_string_child("Facility");
+ _studio = f.optional_string_child("Studio");
auto value = f.optional_number_child<float>("LuminanceValue");
auto unit = f.optional_string_child("LuminanceUnit");
@@ -986,8 +990,8 @@ Film::isdcf_name (bool if_created_now) const
d += "_" + resolution_to_string (_resolution);
- if (!dm.studio.empty ()) {
- d += "_" + dm.studio;
+ if (_studio && _studio->length() >= 2) {
+ d += "_" + to_upper (_studio->substr(0, 4));
}
if (if_created_now) {
@@ -996,8 +1000,8 @@ Film::isdcf_name (bool if_created_now) const
d += "_" + boost::gregorian::to_iso_string (_isdcf_date);
}
- if (!dm.facility.empty ()) {
- d += "_" + dm.facility;
+ if (_facility && _facility->length() >= 3) {
+ d += "_" + to_upper(_facility->substr(0, 3));
}
if (_interop) {
@@ -2061,6 +2065,14 @@ Film::set_facility (optional<string> f)
}
+void
+Film::set_studio (optional<string> s)
+{
+ FilmChangeSignaller ch (this, Property::STUDIO);
+ _studio = s;
+}
+
+
optional<DCPTime>
Film::marker (dcp::Marker type) const
{