From b0c9c0470708d0822631b82915f4ed67e5fc7c1b Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 2 Apr 2021 23:05:05 +0200 Subject: [PATCH] Use ratings from Interop/SMPTE metadata instead of ISDCF metadata dialogue. --- src/lib/film.cc | 4 ++-- src/lib/isdcf_metadata.cc | 7 ++----- src/lib/isdcf_metadata.h | 1 - src/wx/dcp_panel.cc | 1 + src/wx/isdcf_metadata_dialog.cc | 5 ----- src/wx/isdcf_metadata_dialog.h | 1 - test/isdcf_name_test.cc | 10 ++++------ 7 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/lib/film.cc b/src/lib/film.cc index 9051c5a15..b34c85295 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -961,10 +961,10 @@ Film::isdcf_name (bool if_created_now) const auto territory = _release_territory->subtag(); transform (territory.begin(), territory.end(), territory.begin(), ::toupper); d += "_" + territory; - if (dm.rating.empty ()) { + if (_ratings.empty ()) { d += "-NR"; } else { - d += "-" + dm.rating; + d += "-" + _ratings[0].label; } } diff --git a/src/lib/isdcf_metadata.cc b/src/lib/isdcf_metadata.cc index daf3a4c4f..c190ba3dc 100644 --- a/src/lib/isdcf_metadata.cc +++ b/src/lib/isdcf_metadata.cc @@ -34,8 +34,7 @@ using std::shared_ptr; using dcp::raw_convert; ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node) - : rating (node->string_child ("Rating")) - , studio (node->string_child ("Studio")) + : studio (node->string_child ("Studio")) , facility (node->string_child ("Facility")) /* This stuff was added later */ , temp_version (node->optional_bool_child ("TempVersion").get_value_or (false)) @@ -51,7 +50,6 @@ ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node) void ISDCFMetadata::as_xml (xmlpp::Node* root) const { - root->add_child("Rating")->add_child_text (rating); root->add_child("Studio")->add_child_text (studio); root->add_child("Facility")->add_child_text (facility); root->add_child("TempVersion")->add_child_text (temp_version ? "1" : "0"); @@ -65,8 +63,7 @@ ISDCFMetadata::as_xml (xmlpp::Node* root) const bool operator== (ISDCFMetadata const & a, ISDCFMetadata const & b) { - return a.rating == b.rating && - a.studio == b.studio && + return a.studio == b.studio && a.facility == b.facility && a.temp_version == b.temp_version && a.pre_release == b.pre_release && diff --git a/src/lib/isdcf_metadata.h b/src/lib/isdcf_metadata.h index 3dc2c2d35..1c80e7b5d 100644 --- a/src/lib/isdcf_metadata.h +++ b/src/lib/isdcf_metadata.h @@ -43,7 +43,6 @@ public: void as_xml (xmlpp::Node *) const; void read_old_metadata (std::string, std::string); - std::string rating; std::string studio; std::string facility; /** true if this is a temporary version (without final picture or sound) */ diff --git a/src/wx/dcp_panel.cc b/src/wx/dcp_panel.cc index ecedec66f..6d0e64965 100644 --- a/src/wx/dcp_panel.cc +++ b/src/wx/dcp_panel.cc @@ -449,6 +449,7 @@ DCPPanel::film_changed (Film::Property p) case Film::Property::CONTENT_VERSIONS: case Film::Property::VERSION_NUMBER: case Film::Property::RELEASE_TERRITORY: + case Film::Property::RATINGS: setup_dcp_name (); break; default: diff --git a/src/wx/isdcf_metadata_dialog.cc b/src/wx/isdcf_metadata_dialog.cc index cb12d6a29..f7cb8df8c 100644 --- a/src/wx/isdcf_metadata_dialog.cc +++ b/src/wx/isdcf_metadata_dialog.cc @@ -35,9 +35,6 @@ using std::shared_ptr; ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bool threed) : TableDialog (parent, _("ISDCF name"), 2, 1, true) { - add (_("Rating (e.g. 15)"), true); - _rating = add (new wxTextCtrl (this, wxID_ANY)); - add (_("Studio (e.g. TCF)"), true); _studio = add (new wxTextCtrl (this, wxID_ANY)); @@ -66,7 +63,6 @@ ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm, bo add (_("Mastered luminance (e.g. 14fl)"), true); _mastered_luminance = add (new wxTextCtrl (this, wxID_ANY)); - _rating->SetValue (std_to_wx (dm.rating)); _studio->SetValue (std_to_wx (dm.studio)); _facility->SetValue (std_to_wx (dm.facility)); _temp_version->SetValue (dm.temp_version); @@ -85,7 +81,6 @@ ISDCFMetadataDialog::isdcf_metadata () const { ISDCFMetadata dm; - dm.rating = wx_to_std (_rating->GetValue ()); dm.studio = wx_to_std (_studio->GetValue ()); dm.facility = wx_to_std (_facility->GetValue ()); dm.temp_version = _temp_version->GetValue (); diff --git a/src/wx/isdcf_metadata_dialog.h b/src/wx/isdcf_metadata_dialog.h index 8980bd11a..2fc8ca8c3 100644 --- a/src/wx/isdcf_metadata_dialog.h +++ b/src/wx/isdcf_metadata_dialog.h @@ -33,7 +33,6 @@ public: ISDCFMetadata isdcf_metadata () const; private: - wxTextCtrl* _rating; wxTextCtrl* _studio; wxTextCtrl* _facility; wxCheckBox* _temp_version; diff --git a/test/isdcf_name_test.cc b/test/isdcf_name_test.cc index 51a8c5009..4ddf57e70 100644 --- a/test/isdcf_name_test.cc +++ b/test/isdcf_name_test.cc @@ -62,8 +62,8 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) audio->audio->set_language(dcp::LanguageTag("en-US")); film->set_content_versions({"1"}); film->set_release_territory(dcp::LanguageTag::RegionSubtag("GB")); + film->set_ratings({dcp::Rating("BBFC", "PG")}); ISDCFMetadata m; - m.rating = "PG"; m.studio = "ST"; m.facility = "FA"; film->set_isdcf_metadata (m); @@ -90,13 +90,13 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) film->examine_and_add_content (text); film->set_version_number(2); film->set_release_territory(dcp::LanguageTag::RegionSubtag("US")); + film->set_ratings({dcp::Rating("MPA", "R")}); BOOST_REQUIRE (!wait_for_jobs()); audio = content_factory("test/data/sine_440.wav").front(); film->examine_and_add_content (audio); BOOST_REQUIRE (!wait_for_jobs()); BOOST_REQUIRE (audio->audio); audio->audio->set_language (dcp::LanguageTag("de-DE")); - m.rating = "R"; m.studio = "DI"; m.facility = "PP"; film->set_isdcf_metadata (m); @@ -104,11 +104,9 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test) BOOST_CHECK_EQUAL (film->isdcf_name(false), "MyNiceFilmWith_TLR-2_S_DE-fr_US-R_MOS_4K_DI_20140704_PP_SMPTE_OV"); /* Test to see that RU ratings like 6+ survive */ - m.rating = "6+"; - film->set_isdcf_metadata (m); + film->set_ratings({dcp::Rating("RARS", "6+")}); BOOST_CHECK_EQUAL (film->dcp_name(false), "MyNiceFilmWith_TLR-2_S_DE-fr_US-6+_MOS_4K_DI_20140704_PP_SMPTE_OV"); - m.rating = "R"; - film->set_isdcf_metadata (m); + film->set_ratings({dcp::Rating("MPA", "R")}); /* Test interior aspect ratio: shouldn't be shown with trailers */ -- 2.30.2