diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-11-29 00:06:29 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-11-29 00:15:02 +0100 |
| commit | 00885f610bb9957c602a3aff92fa79066b2b2ef3 (patch) | |
| tree | 024e5e361a0d3af54d99f791154b7f63066cd254 /src/lib | |
| parent | 716f05c1301bc5cd811df687875cafaf0d37ffd2 (diff) | |
Add default release territory configuration (#2375).
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 12 | ||||
| -rw-r--r-- | src/lib/config.h | 13 | ||||
| -rw-r--r-- | src/lib/film.cc | 1 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index d44abdfbf..4bc4f60f2 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -357,6 +357,7 @@ try _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); + try { auto al = f.optional_string_child("DefaultAudioLanguage"); if (al) { @@ -364,6 +365,13 @@ try } } catch (std::runtime_error&) {} + try { + auto te = f.optional_string_child("DefaultTerritory"); + if (te) { + _default_territory = dcp::LanguageTag::RegionSubtag(*te); + } + } catch (std::runtime_error&) {} + for (auto const& i: f.node_children("DefaultMetadata")) { _default_metadata[i->string_attribute("key")] = i->content(); } @@ -765,6 +773,10 @@ Config::write_config () const /* [XML] DefaultAudioLanguage Default audio language to use for new films */ root->add_child("DefaultAudioLanguage")->add_child_text(_default_audio_language->to_string()); } + if (_default_territory) { + /* [XML] DefaultTerritory Default territory to use for new films */ + root->add_child("DefaultTerritory")->add_child_text(_default_territory->subtag()); + } for (auto const& i: _default_metadata) { auto c = root->add_child("DefaultMetadata"); c->set_attribute("key", i.first); diff --git a/src/lib/config.h b/src/lib/config.h index c6bf5986b..62a36f084 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -242,6 +242,10 @@ public: return _default_audio_language; } + boost::optional<dcp::LanguageTag::RegionSubtag> default_territory() const { + return _default_territory; + } + std::map<std::string, std::string> default_metadata () const { return _default_metadata; } @@ -774,6 +778,14 @@ public: maybe_set(_default_audio_language, boost::optional<dcp::LanguageTag>()); } + void set_default_territory(dcp::LanguageTag::RegionSubtag tag) { + maybe_set(_default_territory, tag); + } + + void unset_default_territory() { + maybe_set(_default_territory, boost::optional<dcp::LanguageTag::RegionSubtag>()); + } + void set_default_metadata (std::map<std::string, std::string> const& metadata) { maybe_set (_default_metadata, metadata); } @@ -1305,6 +1317,7 @@ private: int _default_audio_delay; bool _default_interop; boost::optional<dcp::LanguageTag> _default_audio_language; + boost::optional<dcp::LanguageTag::RegionSubtag> _default_territory; std::map<std::string, std::string> _default_metadata; /** Default directory to offer to write KDMs to; if it's not set, the home directory will be offered. diff --git a/src/lib/film.cc b/src/lib/film.cc index e021c0aa9..8b1442849 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -174,6 +174,7 @@ Film::Film (optional<boost::filesystem::path> dir) , _user_explicit_container (false) , _user_explicit_resolution (false) , _name_language (dcp::LanguageTag("en-US")) + , _release_territory(Config::instance()->default_territory()) , _version_number (1) , _status (dcp::Status::FINAL) , _audio_language(Config::instance()->default_audio_language()) |
