summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-09-16 22:52:02 +0100
committerCarl Hetherington <cth@carlh.net>2015-09-16 22:52:02 +0100
commit78a95b32af03460182abccc62c784e696cf53e17 (patch)
treeac6063e92f950a7d1691be56a5404f53034643b4 /src
parent0a3d5ea0900ed0f9aaa0b5a5f1b7dcec854fc4f9 (diff)
Config option for default standard (SMPTE / Interop).
Diffstat (limited to 'src')
-rw-r--r--src/lib/config.cc3
-rw-r--r--src/lib/config.h9
-rw-r--r--src/lib/film.cc2
-rw-r--r--src/wx/config_dialog.cc15
4 files changed, 28 insertions, 1 deletions
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<int>("DefaultStillLength").get_value_or (10);
_default_j2k_bandwidth = f.optional_number_child<int>("DefaultJ2KBandwidth").get_value_or (200000000);
_default_audio_delay = f.optional_number_child<int>("DefaultAudioDelay").get_value_or (0);
+ _default_interop = f.optional_bool_child("DefaultInterop").get_value_or (false);
list<cxml::NodePtr> cin = f.node_children ("Cinema");
for (list<cxml::NodePtr>::iterator i = cin.begin(); i != cin.end(); ++i) {
@@ -357,6 +359,7 @@ Config::write () const
root->add_child("DefaultStillLength")->add_child_text (raw_convert<string> (_default_still_length));
root->add_child("DefaultJ2KBandwidth")->add_child_text (raw_convert<string> (_default_j2k_bandwidth));
root->add_child("DefaultAudioDelay")->add_child_text (raw_convert<string> (_default_audio_delay));
+ root->add_child("DefaultInterop")->add_child_text (_default_interop ? "1" : "0");
for (list<shared_ptr<Cinema> >::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<boost::shared_ptr<Cinema> > _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