diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-05-03 00:56:16 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-05-03 00:56:16 +0100 |
| commit | cc56fc111c742ed5ec072fa0bbe0b950150d40c1 (patch) | |
| tree | eadea8af082b332ccb5726dcafa7821be8c5ceaa /src/lib | |
| parent | ccf029f29d128a6cc92a8d77b1e0d0e483fd1beb (diff) | |
Configurable default format and content type (#133).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 14 | ||||
| -rw-r--r-- | src/lib/config.h | 20 | ||||
| -rw-r--r-- | src/lib/film.cc | 4 |
3 files changed, 36 insertions, 2 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index 5dce3748d..0e2e33a16 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -26,6 +26,8 @@ #include "server.h" #include "scaler.h" #include "filter.h" +#include "format.h" +#include "dcp_content_type.h" #include "sound_processor.h" #include "i18n.h" @@ -45,6 +47,8 @@ Config::Config () , _reference_scaler (Scaler::from_id (N_("bicubic"))) , _tms_path (N_(".")) , _sound_processor (SoundProcessor::from_id (N_("dolby_cp750"))) + , _default_format (0) + , _default_dcp_content_type (0) { _allowed_dcp_frame_rates.push_back (24); _allowed_dcp_frame_rates.push_back (25); @@ -96,6 +100,10 @@ Config::Config () _sound_processor = SoundProcessor::from_id (v); } else if (k == "language") { _language = v; + } else if (k == "default_format") { + _default_format = Format::from_metadata (v); + } else if (k == "default_dcp_content_type") { + _default_dcp_content_type = DCPContentType::from_dci_name (v); } _default_dci_metadata.read (k, v); @@ -154,6 +162,12 @@ Config::write () const if (_language) { f << "language " << _language.get() << "\n"; } + if (_default_format) { + f << "default_format " << _default_format->as_metadata() << "\n"; + } + if (_default_dcp_content_type) { + f << "default_dcp_content_type " << _default_dcp_content_type->dci_name() << "\n"; + } _default_dci_metadata.write (f); } diff --git a/src/lib/config.h b/src/lib/config.h index 011ca716f..6041045cf 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -33,6 +33,8 @@ class ServerDescription; class Scaler; class Filter; class SoundProcessor; +class Format; +class DCPContentType; /** @class Config * @brief A singleton class holding configuration. @@ -107,6 +109,14 @@ public: return _language; } + Format const * default_format () const { + return _default_format; + } + + DCPContentType const * default_dcp_content_type () const { + return _default_dcp_content_type; + } + /** @param n New number of local encoding threads */ void set_num_local_encoding_threads (int n) { _num_local_encoding_threads = n; @@ -169,6 +179,14 @@ public: void unset_language () { _language = boost::none; } + + void set_default_format (Format const * f) { + _default_format = f; + } + + void set_default_dcp_content_type (DCPContentType const * t) { + _default_dcp_content_type = t; + } void write () const; @@ -206,6 +224,8 @@ private: /** Default DCI metadata for newly-created Films */ DCIMetadata _default_dci_metadata; boost::optional<std::string> _language; + Format const * _default_format; + DCPContentType const * _default_dcp_content_type; /** Singleton instance, or 0 */ static Config* _instance; diff --git a/src/lib/film.cc b/src/lib/film.cc index b0785df34..0ca374604 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -88,8 +88,8 @@ int const Film::state_version = 4; Film::Film (string d, bool must_exist) : _use_dci_name (true) , _trust_content_header (true) - , _dcp_content_type (0) - , _format (0) + , _dcp_content_type (Config::instance()->default_dcp_content_type ()) + , _format (Config::instance()->default_format ()) , _scaler (Scaler::from_id ("bicubic")) , _trim_start (0) , _trim_end (0) |
