summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-08-18 16:39:51 +0100
committerCarl Hetherington <cth@carlh.net>2015-08-18 16:39:51 +0100
commit99856300c7080f7602507ae6f64b870200710736 (patch)
tree38e1dbd2268486af4652d0a8bc7831c15a5c24d9 /src
parent27708051af4a8a767e7ead415d680ecaf929ec13 (diff)
Make DCP creator configurable.
Diffstat (limited to 'src')
-rw-r--r--src/lib/config.cc3
-rw-r--r--src/lib/config.h9
-rw-r--r--src/lib/writer.cc7
-rw-r--r--src/wx/config_dialog.cc12
4 files changed, 29 insertions, 2 deletions
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<boost::shared_ptr<Cinema> > _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