diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-08-26 20:31:28 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-08-26 20:31:28 +0100 |
| commit | 3d9f0c1ed2cf8306ce3bfa35883aab6443f41a7b (patch) | |
| tree | f7a2809ecce590be2c4199c2ca7699083ba611ee /src | |
| parent | 5e57f97cd5dd5f6448963e4ed26bf6fe572b664d (diff) | |
Add content version to DCI metadata.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/dci_metadata.cc | 3 | ||||
| -rw-r--r-- | src/lib/dci_metadata.h | 8 | ||||
| -rw-r--r-- | src/lib/film.cc | 1 | ||||
| -rw-r--r-- | src/wx/dci_metadata_dialog.cc | 9 | ||||
| -rw-r--r-- | src/wx/dci_metadata_dialog.h | 2 |
5 files changed, 21 insertions, 2 deletions
diff --git a/src/lib/dci_metadata.cc b/src/lib/dci_metadata.cc index f25b3ddb0..27306a15e 100644 --- a/src/lib/dci_metadata.cc +++ b/src/lib/dci_metadata.cc @@ -24,10 +24,12 @@ #include "i18n.h" using std::string; +using boost::lexical_cast; using boost::shared_ptr; DCIMetadata::DCIMetadata (shared_ptr<const cxml::Node> node) { + content_version = node->number_child<int> ("ContentVersion"); audio_language = node->string_child ("AudioLanguage"); subtitle_language = node->string_child ("SubtitleLanguage"); territory = node->string_child ("Territory"); @@ -40,6 +42,7 @@ DCIMetadata::DCIMetadata (shared_ptr<const cxml::Node> node) void DCIMetadata::as_xml (xmlpp::Node* root) const { + root->add_child("ContentVersion")->add_child_text (lexical_cast<string> (content_version)); root->add_child("AudioLanguage")->add_child_text (audio_language); root->add_child("SubtitleLanguage")->add_child_text (subtitle_language); root->add_child("Territory")->add_child_text (territory); diff --git a/src/lib/dci_metadata.h b/src/lib/dci_metadata.h index b87609ed0..738e439de 100644 --- a/src/lib/dci_metadata.h +++ b/src/lib/dci_metadata.h @@ -30,12 +30,16 @@ namespace cxml { class DCIMetadata { public: - DCIMetadata () {} + DCIMetadata () + : content_version (1) + {} + DCIMetadata (boost::shared_ptr<const cxml::Node>); void as_xml (xmlpp::Node *) const; void read_old_metadata (std::string, std::string); - + + int content_version; std::string audio_language; std::string subtitle_language; std::string territory; diff --git a/src/lib/film.cc b/src/lib/film.cc index e6bf3bd5e..e235ee003 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -444,6 +444,7 @@ Film::dci_name (bool if_created_now) const if (dcp_content_type()) { d << "_" << dcp_content_type()->dci_name(); + d << "-" << dci_metadata().content_version; } if (three_d ()) { diff --git a/src/wx/dci_metadata_dialog.cc b/src/wx/dci_metadata_dialog.cc index 2862228e4..e28ddd855 100644 --- a/src/wx/dci_metadata_dialog.cc +++ b/src/wx/dci_metadata_dialog.cc @@ -19,6 +19,7 @@ #include <wx/wx.h> #include <wx/sizer.h> +#include <wx/spinctrl.h> #include "lib/film.h" #include "dci_metadata_dialog.h" #include "wx_util.h" @@ -31,6 +32,10 @@ DCIMetadataDialog::DCIMetadataDialog (wxWindow* parent, DCIMetadata dm) wxFlexGridSizer* table = new wxFlexGridSizer (2, DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP); table->AddGrowableCol (1, 1); + add_label_to_sizer (table, this, _("Content version"), true); + _content_version = new wxSpinCtrl (this, wxID_ANY); + table->Add (_content_version, 1, wxEXPAND); + add_label_to_sizer (table, this, _("Audio Language (e.g. EN)"), true); _audio_language = new wxTextCtrl (this, wxID_ANY); table->Add (_audio_language, 1, wxEXPAND); @@ -59,6 +64,9 @@ DCIMetadataDialog::DCIMetadataDialog (wxWindow* parent, DCIMetadata dm) _package_type = new wxTextCtrl (this, wxID_ANY); table->Add (_package_type, 1, wxEXPAND); + _content_version->SetRange (1, 1024); + + _content_version->SetValue (dm.content_version); _audio_language->SetValue (std_to_wx (dm.audio_language)); _subtitle_language->SetValue (std_to_wx (dm.subtitle_language)); _territory->SetValue (std_to_wx (dm.territory)); @@ -85,6 +93,7 @@ DCIMetadataDialog::dci_metadata () const { DCIMetadata dm; + dm.content_version = _content_version->GetValue (); dm.audio_language = wx_to_std (_audio_language->GetValue ()); dm.subtitle_language = wx_to_std (_subtitle_language->GetValue ()); dm.territory = wx_to_std (_territory->GetValue ()); diff --git a/src/wx/dci_metadata_dialog.h b/src/wx/dci_metadata_dialog.h index c20eb3b23..240d5535e 100644 --- a/src/wx/dci_metadata_dialog.h +++ b/src/wx/dci_metadata_dialog.h @@ -22,6 +22,7 @@ #include <boost/shared_ptr.hpp> #include "lib/dci_metadata.h" +class wxSpinCtrl; class Film; class DCIMetadataDialog : public wxDialog @@ -32,6 +33,7 @@ public: DCIMetadata dci_metadata () const; private: + wxSpinCtrl* _content_version; wxTextCtrl* _audio_language; wxTextCtrl* _subtitle_language; wxTextCtrl* _territory; |
