diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-01-25 19:29:50 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-01-25 19:29:50 +0000 |
| commit | 7101dd05ddcde66600bded064e28b491d79e3ebc (patch) | |
| tree | d42d33838e887c42d770d5ce24846620ef34a458 /src | |
| parent | 57202d20733638d979fcc7976ed725ded23c5515 (diff) | |
Provide option of default DCI name details (#42).
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/config.cc | 6 | ||||
| -rw-r--r-- | src/lib/config.h | 11 | ||||
| -rw-r--r-- | src/lib/film.cc | 1 | ||||
| -rw-r--r-- | src/wx/config_dialog.cc | 17 | ||||
| -rw-r--r-- | src/wx/config_dialog.h | 4 |
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; |
