summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-01-25 19:29:50 +0000
committerCarl Hetherington <cth@carlh.net>2013-01-25 19:29:50 +0000
commit7101dd05ddcde66600bded064e28b491d79e3ebc (patch)
treed42d33838e887c42d770d5ce24846620ef34a458 /src
parent57202d20733638d979fcc7976ed725ded23c5515 (diff)
Provide option of default DCI name details (#42).
Diffstat (limited to 'src')
-rw-r--r--src/lib/config.cc6
-rw-r--r--src/lib/config.h11
-rw-r--r--src/lib/film.cc1
-rw-r--r--src/wx/config_dialog.cc17
-rw-r--r--src/wx/config_dialog.h4
5 files changed, 37 insertions, 2 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc
index 65d01bf00..c4659eecf 100644
--- a/src/lib/config.cc
+++ b/src/lib/config.cc
@@ -86,6 +86,8 @@ Config::Config ()
} else if (k == "sound_processor") {
_sound_processor = SoundProcessor::from_id (v);
}
+
+ _default_dci_metadata.read (k, v);
}
}
@@ -132,7 +134,9 @@ Config::write () const
f << "tms_path " << _tms_path << "\n";
f << "tms_user " << _tms_user << "\n";
f << "tms_password " << _tms_password << "\n";
- f << "sound_processor " << _sound_processor->id ();
+ f << "sound_processor " << _sound_processor->id () << "\n";
+
+ _default_dci_metadata.write (f);
}
string
diff --git a/src/lib/config.h b/src/lib/config.h
index c84ce76b5..98cbf67e5 100644
--- a/src/lib/config.h
+++ b/src/lib/config.h
@@ -27,6 +27,7 @@
#include <vector>
#include <boost/shared_ptr.hpp>
#include <boost/signals2.hpp>
+#include "dci_metadata.h"
class ServerDescription;
class Scaler;
@@ -94,6 +95,10 @@ public:
return _sound_processor;
}
+ DCIMetadata default_dci_metadata () const {
+ return _default_dci_metadata;
+ }
+
/** @param n New number of local encoding threads */
void set_num_local_encoding_threads (int n) {
_num_local_encoding_threads = n;
@@ -140,6 +145,10 @@ public:
void set_tms_password (std::string p) {
_tms_password = p;
}
+
+ void set_default_dci_metadata (DCIMetadata d) {
+ _default_dci_metadata = d;
+ }
void write () const;
@@ -172,6 +181,8 @@ private:
std::string _tms_password;
/** Our sound processor */
SoundProcessor const * _sound_processor;
+ /** Default DCI metadata for newly-created Films */
+ DCIMetadata _default_dci_metadata;
/** Singleton instance, or 0 */
static Config* _instance;
diff --git a/src/lib/film.cc b/src/lib/film.cc
index df89a2552..f5522b74a 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -101,6 +101,7 @@ Film::Film (string d, bool must_exist)
, _subtitle_scale (1)
, _colour_lut (0)
, _j2k_bandwidth (200000000)
+ , _dci_metadata (Config::instance()->default_dci_metadata ())
, _frames_per_second (0)
, _dirty (false)
{
diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc
index 9de8e7001..8886fa160 100644
--- a/src/wx/config_dialog.cc
+++ b/src/wx/config_dialog.cc
@@ -35,6 +35,7 @@
#include "filter_dialog.h"
#include "server_dialog.h"
#include "dir_picker_ctrl.h"
+#include "dci_metadata_dialog.h"
using namespace std;
using boost::bind;
@@ -79,6 +80,11 @@ ConfigDialog::ConfigDialog (wxWindow* parent)
table->Add (_default_directory, 1, wxEXPAND);
table->AddSpacer (0);
+ add_label_to_sizer (table, this, "Default DCI name details");
+ _default_dci_metadata_button = new wxButton (this, wxID_ANY, _("Edit..."));
+ table->Add (_default_dci_metadata_button);
+ table->AddSpacer (1);
+
add_label_to_sizer (table, this, "Reference scaler for A/B");
_reference_scaler = new wxComboBox (this, wxID_ANY);
vector<Scaler const *> const sc = Scaler::all ();
@@ -142,6 +148,8 @@ ConfigDialog::ConfigDialog (wxWindow* parent)
_default_directory->SetPath (std_to_wx (config->default_directory_or (wx_to_std (wxStandardPaths::Get().GetDocumentsDir()))));
_default_directory->Connect (wxID_ANY, wxEVT_COMMAND_DIRPICKER_CHANGED, wxCommandEventHandler (ConfigDialog::default_directory_changed), 0, this);
+ _default_dci_metadata_button->Connect (wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler (ConfigDialog::edit_default_dci_metadata_clicked), 0, this);
+
_reference_scaler->SetSelection (Scaler::as_index (config->reference_scaler ()));
_reference_scaler->Connect (wxID_ANY, wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler (ConfigDialog::reference_scaler_changed), 0, this);
@@ -307,3 +315,12 @@ ConfigDialog::reference_filters_changed (vector<Filter const *> f)
pair<string, string> p = Filter::ffmpeg_strings (Config::instance()->reference_filters ());
_reference_filters->SetLabel (std_to_wx (p.first + " " + p.second));
}
+
+void
+ConfigDialog::edit_default_dci_metadata_clicked (wxCommandEvent &)
+{
+ DCIMetadataDialog* d = new DCIMetadataDialog (this, Config::instance()->default_dci_metadata ());
+ d->ShowModal ();
+ Config::instance()->set_default_dci_metadata (d->dci_metadata ());
+ d->Destroy ();
+}
diff --git a/src/wx/config_dialog.h b/src/wx/config_dialog.h
index 32123a0d7..fdbe99a4c 100644
--- a/src/wx/config_dialog.h
+++ b/src/wx/config_dialog.h
@@ -45,6 +45,7 @@ private:
void tms_password_changed (wxCommandEvent &);
void num_local_encoding_threads_changed (wxCommandEvent &);
void default_directory_changed (wxCommandEvent &);
+ void edit_default_dci_metadata_clicked (wxCommandEvent &);
void reference_scaler_changed (wxCommandEvent &);
void edit_reference_filters_clicked (wxCommandEvent &);
void reference_filters_changed (std::vector<Filter const *>);
@@ -64,7 +65,8 @@ private:
DirPickerCtrl* _default_directory;
#else
wxDirPickerCtrl* _default_directory;
-#endif
+#endif
+ wxButton* _default_dci_metadata_button;
wxComboBox* _reference_scaler;
wxStaticText* _reference_filters;
wxButton* _reference_filters_button;