Move chain to the Interop/SMPTE metadata.
authorCarl Hetherington <cth@carlh.net>
Sat, 3 Apr 2021 00:02:53 +0000 (02:02 +0200)
committerCarl Hetherington <cth@carlh.net>
Sun, 4 Apr 2021 18:48:35 +0000 (20:48 +0200)
src/lib/film.cc
src/lib/isdcf_metadata.cc
src/lib/isdcf_metadata.h
src/wx/dcp_panel.cc
src/wx/isdcf_metadata_dialog.cc
src/wx/isdcf_metadata_dialog.h
src/wx/metadata_dialog.cc
src/wx/metadata_dialog.h
src/wx/smpte_metadata_dialog.cc
src/wx/smpte_metadata_dialog.h
test/isdcf_name_test.cc

index 9857dc1f1adea434d099ad809fcb703c92b153ba..14747058548a5a3bd4bda5a8aa11e585c3db1bba 100644 (file)
@@ -886,8 +886,8 @@ Film::isdcf_name (bool if_created_now) const
                d += "-RedBand";
        }
 
-       if (!dm.chain.empty ()) {
-               d += "-" + dm.chain;
+       if (_chain && !_chain->empty()) {
+               d += "-" + *_chain;
        }
 
        if (three_d ()) {
index 71f1fc6d08a6fb8538eea8dcd16a19cedc307c77..22e094b1b314c6b101b354874fc656f2cea5ed05 100644 (file)
@@ -34,8 +34,7 @@ using std::shared_ptr;
 using dcp::raw_convert;
 
 ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node)
-       : chain (node->optional_string_child ("Chain").get_value_or (""))
-       , mastered_luminance (node->optional_string_child ("MasteredLuminance").get_value_or (""))
+       : mastered_luminance (node->optional_string_child ("MasteredLuminance").get_value_or (""))
 {
 
 }
@@ -43,13 +42,11 @@ ISDCFMetadata::ISDCFMetadata (cxml::ConstNodePtr node)
 void
 ISDCFMetadata::as_xml (xmlpp::Node* root) const
 {
-       root->add_child("Chain")->add_child_text (chain);
        root->add_child("MasteredLuminance")->add_child_text (mastered_luminance);
 }
 
 bool
 operator== (ISDCFMetadata const & a, ISDCFMetadata const & b)
 {
-        return a.chain == b.chain &&
-               a.mastered_luminance == b.mastered_luminance;
+        return a.mastered_luminance == b.mastered_luminance;
 }
index 722bb154f0cd73fd4c70c1016768084f18e0fac3..4237b6a3eec3e9d285e65c492999576ad5bd74bc 100644 (file)
@@ -37,8 +37,6 @@ public:
        void as_xml (xmlpp::Node *) const;
        void read_old_metadata (std::string, std::string);
 
-       /** specific theatre chain or event */
-       std::string chain;
        /** mastered luminance if there are multiple versions distributed (e.g. 35, 4fl, 6fl etc.) */
        std::string mastered_luminance;
 };
index 1213fe1fac18158074a80c7cb29919468bb3568e..a6f4d53c0ef868a0e750fef77ba6c2efeb94832b 100644 (file)
@@ -456,6 +456,7 @@ DCPPanel::film_changed (Film::Property p)
        case Film::Property::PRE_RELEASE:
        case Film::Property::RED_BAND:
        case Film::Property::TWO_D_VERSION_OF_THREE_D:
+       case Film::Property::CHAIN:
                setup_dcp_name ();
                break;
        default:
index 4faf88ee60ec586ed13b2d0f8b27cd557cabdc24..ea390c1bbf47002d16dac3ecdd38d190e40a4c1d 100644 (file)
@@ -35,13 +35,9 @@ using std::shared_ptr;
 ISDCFMetadataDialog::ISDCFMetadataDialog (wxWindow* parent, ISDCFMetadata dm)
        : TableDialog (parent, _("ISDCF name"), 2, 1, true)
 {
-       add (_("Chain"), true);
-       _chain = add (new wxTextCtrl (this, wxID_ANY));
-
        add (_("Mastered luminance (e.g. 14fl)"), true);
        _mastered_luminance = add (new wxTextCtrl (this, wxID_ANY));
 
-       _chain->SetValue (std_to_wx (dm.chain));
        _mastered_luminance->SetValue (std_to_wx (dm.mastered_luminance));
 
        layout ();
@@ -53,7 +49,6 @@ ISDCFMetadataDialog::isdcf_metadata () const
 {
        ISDCFMetadata dm;
 
-       dm.chain = wx_to_std (_chain->GetValue ());
        dm.mastered_luminance = wx_to_std (_mastered_luminance->GetValue ());
 
        return dm;
index 4f5e8889b73bccf0de820c27aa9ba417c052b169..1eb7c869355f0fde06fc62804f945a5ee0dbc80e 100644 (file)
@@ -33,6 +33,5 @@ public:
        ISDCFMetadata isdcf_metadata () const;
 
 private:
-       wxTextCtrl* _chain;
        wxTextCtrl* _mastered_luminance;
 };
index 75b2eff6996af8329e31a6773388ab58a6351f39..c6d28922b2328adc4c964e1ab74d46af68326516 100644 (file)
@@ -78,6 +78,8 @@ MetadataDialog::setup ()
        _facility->Bind (wxEVT_TEXT, boost::bind(&MetadataDialog::facility_changed, this));
        _enable_studio->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::enable_studio_changed, this));
        _studio->Bind (wxEVT_TEXT, boost::bind(&MetadataDialog::studio_changed, this));
+       _enable_chain->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::enable_chain_changed, this));
+       _chain->Bind (wxEVT_TEXT, boost::bind(&MetadataDialog::chain_changed, this));
        _temp_version->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::temp_version_changed, this));
        _pre_release->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::pre_release_changed, this));
        _red_band->Bind (wxEVT_CHECKBOX, boost::bind(&MetadataDialog::red_band_changed, this));
@@ -92,6 +94,7 @@ MetadataDialog::setup ()
        film_changed (ChangeType::DONE, Film::Property::PRE_RELEASE);
        film_changed (ChangeType::DONE, Film::Property::RED_BAND);
        film_changed (ChangeType::DONE, Film::Property::TWO_D_VERSION_OF_THREE_D);
+       film_changed (ChangeType::DONE, Film::Property::CHAIN);
 
        setup_sensitivity ();
 }
@@ -121,6 +124,11 @@ MetadataDialog::film_changed (ChangeType type, Film::Property property)
                if (film()->studio()) {
                        checked_set (_studio, *film()->studio());
                }
+       } else if (property == Film::Property::CHAIN) {
+               checked_set (_enable_chain, static_cast<bool>(film()->chain()));
+               if (film()->chain()) {
+                       checked_set (_chain, *film()->chain());
+               }
        } else if (property == Film::Property::TEMP_VERSION) {
                checked_set (_temp_version, film()->temp_version());
        } else if (property == Film::Property::PRE_RELEASE) {
@@ -171,6 +179,7 @@ MetadataDialog::setup_sensitivity ()
        _release_territory_text->Enable (enabled);
        _edit_release_territory->Enable (enabled);
        _facility->Enable (_enable_facility->GetValue());
+       _chain->Enable (_enable_chain->GetValue());
        _studio->Enable (_enable_studio->GetValue());
 }
 
@@ -200,6 +209,11 @@ MetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer)
        _studio = new wxTextCtrl (panel, wxID_ANY);
        sizer->Add (_studio, 1, wxEXPAND);
 
+       _enable_chain = new wxCheckBox (panel, wxID_ANY, _("Chain"));
+       sizer->Add (_enable_chain, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL);
+       _chain = new wxTextCtrl (panel, wxID_ANY);
+       sizer->Add (_chain, 1, wxEXPAND);
+
        _temp_version = new wxCheckBox (panel, wxID_ANY, _("Temporary version"));
        sizer->Add (_temp_version, 0, wxALIGN_CENTER_VERTICAL);
        sizer->AddSpacer (0);
@@ -283,3 +297,23 @@ MetadataDialog::two_d_version_of_three_d_changed ()
        film()->set_two_d_version_of_three_d(_two_d_version_of_three_d->GetValue());
 }
 
+
+void
+MetadataDialog::chain_changed ()
+{
+       film()->set_chain (wx_to_std(_chain->GetValue()));
+}
+
+
+void
+MetadataDialog::enable_chain_changed ()
+{
+       setup_sensitivity ();
+       if (_enable_chain->GetValue()) {
+               film()->set_chain (wx_to_std(_chain->GetValue()));
+       } else {
+               film()->set_chain ();
+       }
+}
+
+
index 1d49d7cfcc7072a093f51d5e1e2c8186dd04e85d..3ac5d10a3935bd721eb3ce87b8a93b79df330404 100644 (file)
@@ -59,6 +59,8 @@ private:
        void pre_release_changed ();
        void red_band_changed ();
        void two_d_version_of_three_d_changed ();
+       void chain_changed ();
+       void enable_chain_changed ();
 
        wxCheckBox* _enable_release_territory;
        /** The current release territory displayed in the UI; since we can't easily convert
@@ -70,6 +72,8 @@ private:
        Button* _edit_release_territory;
        wxCheckBox* _enable_facility;
        wxTextCtrl* _facility;
+       wxCheckBox* _enable_chain;
+       wxTextCtrl* _chain;
        wxCheckBox* _enable_studio;
        wxTextCtrl* _studio;
        wxCheckBox* _temp_version;
index 37a957921808c0988a314e743cd54bbbcbd66872..3bc6760523299495c02f0d464da2ff12c2d53506 100644 (file)
@@ -110,11 +110,6 @@ SMPTEMetadataDialog::setup_advanced (wxPanel* panel, wxSizer* sizer)
        _status = new wxChoice (panel, wxID_ANY);
        sizer->Add (_status, 0);
 
-       _enable_chain = new wxCheckBox (panel, wxID_ANY, _("Chain"));
-       sizer->Add (_enable_chain, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL);
-       _chain = new wxTextCtrl (panel, wxID_ANY);
-       sizer->Add (_chain, 1, wxEXPAND);
-
        _enable_distributor = new wxCheckBox (panel, wxID_ANY, _("Distributor"));
        sizer->Add (_enable_distributor, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL);
        _distributor = new wxTextCtrl (panel, wxID_ANY);
@@ -178,8 +173,6 @@ SMPTEMetadataDialog::setup ()
        _name_language->Changed.connect (boost::bind(&SMPTEMetadataDialog::name_language_changed, this, _1));
        _version_number->Bind (wxEVT_SPINCTRL, boost::bind(&SMPTEMetadataDialog::version_number_changed, this));
        _status->Bind (wxEVT_CHOICE, boost::bind(&SMPTEMetadataDialog::status_changed, this));
-       _enable_chain->Bind (wxEVT_CHECKBOX, boost::bind(&SMPTEMetadataDialog::enable_chain_changed, this));
-       _chain->Bind (wxEVT_TEXT, boost::bind(&SMPTEMetadataDialog::chain_changed, this));
        _enable_distributor->Bind (wxEVT_CHECKBOX, boost::bind(&SMPTEMetadataDialog::enable_distributor_changed, this));
        _distributor->Bind (wxEVT_TEXT, boost::bind(&SMPTEMetadataDialog::distributor_changed, this));
        _luminance_value->Bind (wxEVT_SPINCTRLDOUBLE, boost::bind(&SMPTEMetadataDialog::luminance_changed, this));
@@ -188,7 +181,6 @@ SMPTEMetadataDialog::setup ()
        film_changed (ChangeType::DONE, Film::Property::NAME_LANGUAGE);
        film_changed (ChangeType::DONE, Film::Property::VERSION_NUMBER);
        film_changed (ChangeType::DONE, Film::Property::STATUS);
-       film_changed (ChangeType::DONE, Film::Property::CHAIN);
        film_changed (ChangeType::DONE, Film::Property::DISTRIBUTOR);
        film_changed (ChangeType::DONE, Film::Property::CONTENT_VERSIONS);
        film_changed (ChangeType::DONE, Film::Property::LUMINANCE);
@@ -222,11 +214,6 @@ SMPTEMetadataDialog::film_changed (ChangeType type, Film::Property property)
                        checked_set (_status, 2);
                        break;
                }
-       } else if (property == Film::Property::CHAIN) {
-               checked_set (_enable_chain, static_cast<bool>(film()->chain()));
-               if (film()->chain()) {
-                       checked_set (_chain, *film()->chain());
-               }
        } else if (property == Film::Property::DISTRIBUTOR) {
                checked_set (_enable_distributor, static_cast<bool>(film()->distributor()));
                if (film()->distributor()) {
@@ -311,13 +298,6 @@ SMPTEMetadataDialog::status_changed ()
 }
 
 
-void
-SMPTEMetadataDialog::chain_changed ()
-{
-       film()->set_chain (wx_to_std(_chain->GetValue()));
-}
-
-
 void
 SMPTEMetadataDialog::distributor_changed ()
 {
@@ -349,23 +329,10 @@ SMPTEMetadataDialog::setup_sensitivity ()
 {
        MetadataDialog::setup_sensitivity ();
 
-       _chain->Enable (_enable_chain->GetValue());
        _distributor->Enable (_enable_distributor->GetValue());
 }
 
 
-void
-SMPTEMetadataDialog::enable_chain_changed ()
-{
-       setup_sensitivity ();
-       if (_enable_chain->GetValue()) {
-               film()->set_chain (wx_to_std(_chain->GetValue()));
-       } else {
-               film()->set_chain ();
-       }
-}
-
-
 void
 SMPTEMetadataDialog::enable_distributor_changed ()
 {
index f1cbee9774181ae5b0c6fa0c8573cbbba173876b..acf1ac111685f62c9931cde269626c79a57540cf 100644 (file)
@@ -57,17 +57,13 @@ private:
        void name_language_changed (dcp::LanguageTag tag);
        void version_number_changed ();
        void status_changed ();
-       void chain_changed ();
        void distributor_changed ();
        void luminance_changed ();
-       void enable_chain_changed ();
        void enable_distributor_changed ();
 
        LanguageTagWidget* _name_language;
        wxSpinCtrl* _version_number;
        wxChoice* _status;
-       wxCheckBox* _enable_chain;
-       wxTextCtrl* _chain;
        wxCheckBox* _enable_distributor;
        wxTextCtrl* _distributor;
        wxSpinCtrlDouble* _luminance_value;
index 54b9a24d7f88c46cafd5aae5c3224ad1490192cb..c559e433fe5b976560babedf89f45e2ebff969f5 100644 (file)
@@ -143,7 +143,7 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test)
        film->set_pre_release (true);
        film->set_red_band (true);
        film->set_two_d_version_of_three_d (true);
-       m.chain = "MyChain";
+       film->set_chain (string("MyChain"));
        m.mastered_luminance = "4fl";
        film->set_isdcf_metadata (m);
        film->set_video_frame_rate (48);
@@ -156,7 +156,7 @@ BOOST_AUTO_TEST_CASE (isdcf_name_test)
        film->set_pre_release (false);
        film->set_red_band (false);
        film->set_two_d_version_of_three_d (false);
-       m.chain = "";
+       film->set_chain (string(""));
        m.mastered_luminance = "";
        film->set_isdcf_metadata (m);
        film->set_video_frame_rate (24);