From: Carl Hetherington Date: Tue, 18 Aug 2015 15:39:51 +0000 (+0100) Subject: Make DCP creator configurable. X-Git-Tag: v2.1.41~5 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=99856300c7080f7602507ae6f64b870200710736 Make DCP creator configurable. --- diff --git a/ChangeLog b/ChangeLog index 503a3bbb0..ba53ec2d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2015-08-18 Carl Hetherington + * Add configuration for DCP creator metadata. + * Version 2.1.40 released. 2015-08-18 Carl Hetherington diff --git a/src/lib/config.cc b/src/lib/config.cc index 657178eba..5f59d8e6c 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -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")); diff --git a/src/lib/config.h b/src/lib/config.h index 70971085a..40b655342 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -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 > _cinemas; diff --git a/src/lib/writer.cc b/src/lib/writer.cc index 8565f7fe3..2ff93d74a 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -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 (); diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 495c2f055..f7053d1c2 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -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