Add content version to DCI metadata.
authorCarl Hetherington <cth@carlh.net>
Mon, 26 Aug 2013 19:31:28 +0000 (20:31 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 26 Aug 2013 19:31:28 +0000 (20:31 +0100)
src/lib/dci_metadata.cc
src/lib/dci_metadata.h
src/lib/film.cc
src/wx/dci_metadata_dialog.cc
src/wx/dci_metadata_dialog.h

index f25b3ddb00508157065b682c20a626b3de965f4d..27306a15e48f2c1f6c44c7eb10bf90867a98a7f2 100644 (file)
 #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);
index b87609ed0060224e573186f109c213aa2a074911..738e439de5cbe789828c978d64b95124ef423d50 100644 (file)
@@ -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;
index e6bf3bd5e17766e4a50e0e7d63eeac3dd7e576a2..e235ee003c67ca79a549ec9b75b641615990040a 100644 (file)
@@ -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 ()) {
index 2862228e4e145bc1b25cdc6299647c08332d2a25..e28ddd855dced41ee0e1cd6364fbbb568005f3e4 100644 (file)
@@ -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 ());
index c20eb3b23014222fac4bbeea16973182ada5cde6..240d5535e02bceb36ab26539c8c29065600ec741 100644 (file)
@@ -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;