Make DCP creator configurable.
authorCarl Hetherington <cth@carlh.net>
Tue, 18 Aug 2015 15:39:51 +0000 (16:39 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 18 Aug 2015 15:39:51 +0000 (16:39 +0100)
ChangeLog
src/lib/config.cc
src/lib/config.h
src/lib/writer.cc
src/wx/config_dialog.cc

index 503a3bbb0d0941ca4df53e272ddc5604848a44c9..ba53ec2d51fac200b3708f66e91ef3ed713ae4c6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2015-08-18  Carl Hetherington  <cth@carlh.net>
 
+       * Add configuration for DCP creator metadata.
+
        * Version 2.1.40 released.
 
 2015-08-18  Carl Hetherington  <cth@carlh.net>
index 657178eba68eaa5fdb0fea66f08741dd42fbb8a0..5f59d8e6ca4d0d7d219570c41b14d34f5e596eaf 100644 (file)
@@ -188,6 +188,8 @@ Config::read ()
                _dcp_issuer = f.string_child ("DCPIssuer");
        }
 
+       _dcp_creator = f.optional_string_child ("DCPCreator").get_value_or ("");
+
        if (version && version.get() >= 2) {
                _default_isdcf_metadata = ISDCFMetadata (f.node_child ("ISDCFMetadata"));
        } else {
@@ -338,6 +340,7 @@ Config::write () const
                root->add_child("DefaultDCPContentType")->add_child_text (_default_dcp_content_type->isdcf_name ());
        }
        root->add_child("DCPIssuer")->add_child_text (_dcp_issuer);
+       root->add_child("DCPCreator")->add_child_text (_dcp_creator);
 
        _default_isdcf_metadata.as_xml (root->add_child ("ISDCFMetadata"));
 
index 70971085a907176383f4b2ff08a330284c1c29bb..40b65534211439c5a29b19a22a2d417292e57856 100644 (file)
@@ -155,6 +155,10 @@ public:
                return _dcp_issuer;
        }
 
+       std::string dcp_creator () const {
+               return _dcp_creator;
+       }
+
        int default_j2k_bandwidth () const {
                return _default_j2k_bandwidth;
        }
@@ -326,6 +330,10 @@ public:
                maybe_set (_dcp_issuer, i);
        }
 
+       void set_dcp_creator (std::string c) {
+               maybe_set (_dcp_creator, c);
+       }
+
        void set_default_j2k_bandwidth (int b) {
                maybe_set (_default_j2k_bandwidth, b);
        }
@@ -469,6 +477,7 @@ private:
        Ratio const * _default_container;
        DCPContentType const * _default_dcp_content_type;
        std::string _dcp_issuer;
+       std::string _dcp_creator;
        int _default_j2k_bandwidth;
        int _default_audio_delay;
        std::list<boost::shared_ptr<Cinema> > _cinemas;
index 8565f7fe3cee4b1faa79b851a099b8729f652272..2ff93d74abcaf6fa85155a472e24a36fa390bb70 100644 (file)
@@ -593,10 +593,13 @@ Writer::finish ()
        }
 
        dcp::XMLMetadata meta;
-       meta.creator = String::compose ("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit);
+       meta.creator = Config::instance()->dcp_creator ();
+       if (meta.creator.empty ()) {
+               meta.creator = String::compose ("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit);
+       }
        meta.issuer = Config::instance()->dcp_issuer ();
        if (meta.issuer.empty ()) {
-               meta.issuer = meta.creator;
+               meta.issuer = String::compose ("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit);
        }
        meta.set_issue_date_now ();
 
index 495c2f055b9d814f79726051ebae82fedfdbc8e2..f7053d1c29a4d2e1794dbc12fca4adb34ca3abe4 100644 (file)
@@ -382,6 +382,10 @@ private:
                _issuer = new wxTextCtrl (_panel, wxID_ANY);
                table->Add (_issuer, 1, wxEXPAND);
 
+               add_label_to_sizer (table, _panel, _("Default creator"), true);
+               _creator = new wxTextCtrl (_panel, wxID_ANY);
+               table->Add (_creator, 1, wxEXPAND);
+
                _still_length->SetRange (1, 3600);
                _still_length->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&DefaultsPage::still_length_changed, this));
 
@@ -410,6 +414,7 @@ private:
                _audio_delay->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&DefaultsPage::audio_delay_changed, this));
 
                _issuer->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&DefaultsPage::issuer_changed, this));
+               _creator->Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&DefaultsPage::creator_changed, this));
        }
 
        void config_changed ()
@@ -436,6 +441,7 @@ private:
                _j2k_bandwidth->SetRange (50, config->maximum_j2k_bandwidth() / 1000000);
                checked_set (_audio_delay, config->default_audio_delay ());
                checked_set (_issuer, config->dcp_issuer ());
+               checked_set (_creator, config->dcp_creator ());
        }
 
        void j2k_bandwidth_changed ()
@@ -483,6 +489,11 @@ private:
                Config::instance()->set_dcp_issuer (wx_to_std (_issuer->GetValue ()));
        }
 
+       void creator_changed ()
+       {
+               Config::instance()->set_dcp_creator (wx_to_std (_creator->GetValue ()));
+       }
+
        wxSpinCtrl* _j2k_bandwidth;
        wxSpinCtrl* _audio_delay;
        wxButton* _isdcf_metadata_button;
@@ -495,6 +506,7 @@ private:
        wxChoice* _container;
        wxChoice* _dcp_content_type;
        wxTextCtrl* _issuer;
+       wxTextCtrl* _creator;
 };
 
 class EncodingServersPage : public StandardPage