summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-08-26 20:31:28 +0100
committerCarl Hetherington <cth@carlh.net>2013-08-26 20:31:28 +0100
commit3d9f0c1ed2cf8306ce3bfa35883aab6443f41a7b (patch)
treef7a2809ecce590be2c4199c2ca7699083ba611ee /src
parent5e57f97cd5dd5f6448963e4ed26bf6fe572b664d (diff)
Add content version to DCI metadata.
Diffstat (limited to 'src')
-rw-r--r--src/lib/dci_metadata.cc3
-rw-r--r--src/lib/dci_metadata.h8
-rw-r--r--src/lib/film.cc1
-rw-r--r--src/wx/dci_metadata_dialog.cc9
-rw-r--r--src/wx/dci_metadata_dialog.h2
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;