From: Carl Hetherington Date: Wed, 16 Sep 2015 21:52:02 +0000 (+0100) Subject: Config option for default standard (SMPTE / Interop). X-Git-Tag: v2.3.3~3 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=78a95b32af03460182abccc62c784e696cf53e17;p=dcpomatic.git Config option for default standard (SMPTE / Interop). --- diff --git a/ChangeLog b/ChangeLog index eb40542de..7fa5553f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-09-16 Carl Hetherington + + * Add config option for default standard + (SMPTE / Interop). + 2015-09-16 c.hetherington * Allow imported DCPs to be referenced rather diff --git a/src/lib/config.cc b/src/lib/config.cc index 6862cc565..a51c775a3 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -86,6 +86,7 @@ Config::set_defaults () _default_dcp_content_type = DCPContentType::from_isdcf_name ("FTR"); _default_j2k_bandwidth = 100000000; _default_audio_delay = 0; + _default_interop = false; _mail_server = ""; _mail_port = 25; _mail_user = ""; @@ -205,6 +206,7 @@ Config::read () _default_still_length = f.optional_number_child("DefaultStillLength").get_value_or (10); _default_j2k_bandwidth = f.optional_number_child("DefaultJ2KBandwidth").get_value_or (200000000); _default_audio_delay = f.optional_number_child("DefaultAudioDelay").get_value_or (0); + _default_interop = f.optional_bool_child("DefaultInterop").get_value_or (false); list cin = f.node_children ("Cinema"); for (list::iterator i = cin.begin(); i != cin.end(); ++i) { @@ -357,6 +359,7 @@ Config::write () const root->add_child("DefaultStillLength")->add_child_text (raw_convert (_default_still_length)); root->add_child("DefaultJ2KBandwidth")->add_child_text (raw_convert (_default_j2k_bandwidth)); root->add_child("DefaultAudioDelay")->add_child_text (raw_convert (_default_audio_delay)); + root->add_child("DefaultInterop")->add_child_text (_default_interop ? "1" : "0"); for (list >::const_iterator i = _cinemas.begin(); i != _cinemas.end(); ++i) { (*i)->as_xml (root->add_child ("Cinema")); diff --git a/src/lib/config.h b/src/lib/config.h index 2f68ea31c..579527975 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -166,6 +166,10 @@ public: return _default_audio_delay; } + bool default_interop () const { + return _default_interop; + } + std::string mail_server () const { return _mail_server; } @@ -349,6 +353,10 @@ public: maybe_set (_default_audio_delay, d); } + void set_default_interop (bool i) { + maybe_set (_default_interop, i); + } + void set_mail_server (std::string s) { maybe_set (_mail_server, s); } @@ -492,6 +500,7 @@ private: std::string _dcp_creator; int _default_j2k_bandwidth; int _default_audio_delay; + bool _default_interop; std::list > _cinemas; std::string _mail_server; int _mail_port; diff --git a/src/lib/film.cc b/src/lib/film.cc index 6514efde8..b112914b3 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -123,7 +123,7 @@ Film::Film (boost::filesystem::path dir, bool log) , _audio_channels (6) , _three_d (false) , _sequence_video (true) - , _interop (false) + , _interop (Config::instance()->default_interop ()) , _audio_processor (0) , _state_version (current_state_version) , _dirty (false) diff --git a/src/wx/config_dialog.cc b/src/wx/config_dialog.cc index 15d64b902..5b02d71e3 100644 --- a/src/wx/config_dialog.cc +++ b/src/wx/config_dialog.cc @@ -425,6 +425,10 @@ private: table->Add (s, 1); } + add_label_to_sizer (table, _panel, _("Default standard"), true); + _standard = new wxChoice (_panel, wxID_ANY); + table->Add (_standard); + _still_length->SetRange (1, 3600); _still_length->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&DefaultsPage::still_length_changed, this)); @@ -451,6 +455,10 @@ private: _audio_delay->SetRange (-1000, 1000); _audio_delay->Bind (wxEVT_COMMAND_SPINCTRL_UPDATED, boost::bind (&DefaultsPage::audio_delay_changed, this)); + + _standard->Append (_("SMPTE")); + _standard->Append (_("Interop")); + _standard->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&DefaultsPage::standard_changed, this)); } void config_changed () @@ -476,6 +484,7 @@ private: checked_set (_j2k_bandwidth, config->default_j2k_bandwidth() / 1000000); _j2k_bandwidth->SetRange (50, config->maximum_j2k_bandwidth() / 1000000); checked_set (_audio_delay, config->default_audio_delay ()); + checked_set (_standard, config->default_interop() ? 1 : 0); } void j2k_bandwidth_changed () @@ -518,6 +527,11 @@ private: Config::instance()->set_default_dcp_content_type (ct[_dcp_content_type->GetSelection()]); } + void standard_changed () + { + Config::instance()->set_default_interop (_standard->GetSelection() == 1); + } + wxSpinCtrl* _j2k_bandwidth; wxSpinCtrl* _audio_delay; wxButton* _isdcf_metadata_button; @@ -529,6 +543,7 @@ private: #endif wxChoice* _container; wxChoice* _dcp_content_type; + wxChoice* _standard; }; class EncodingServersPage : public StandardPage