From 00885f610bb9957c602a3aff92fa79066b2b2ef3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 29 Nov 2022 00:06:29 +0100 Subject: Add default release territory configuration (#2375). --- src/lib/config.cc | 12 ++++++++++++ src/lib/config.h | 13 +++++++++++++ src/lib/film.cc | 1 + 3 files changed, 26 insertions(+) (limited to 'src/lib') 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("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); + 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 default_territory() const { + return _default_territory; + } + std::map default_metadata () const { return _default_metadata; } @@ -774,6 +778,14 @@ public: maybe_set(_default_audio_language, boost::optional()); } + void set_default_territory(dcp::LanguageTag::RegionSubtag tag) { + maybe_set(_default_territory, tag); + } + + void unset_default_territory() { + maybe_set(_default_territory, boost::optional()); + } + void set_default_metadata (std::map const& metadata) { maybe_set (_default_metadata, metadata); } @@ -1305,6 +1317,7 @@ private: int _default_audio_delay; bool _default_interop; boost::optional _default_audio_language; + boost::optional _default_territory; std::map _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 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()) -- cgit v1.2.3