X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fconfig.cc;h=e3be484e242542fbdd5f5d3107f306d6ceb479f9;hb=6cda037324ccaf7a8df142d037fa88520fb80f35;hp=235bace7b78f6b9c62cc30e450ee9c0a233c747e;hpb=da822af56c5e4acab361b8531fb75a1dcb4b110e;p=dcpomatic.git diff --git a/src/lib/config.cc b/src/lib/config.cc index 235bace7b..e3be484e2 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -23,6 +23,7 @@ #include "colour_conversion.h" #include "compose.hpp" #include "config.h" +#include "constants.h" #include "cross.h" #include "crypto.h" #include "dcp_content_type.h" @@ -32,8 +33,6 @@ #include "filter.h" #include "log.h" #include "ratio.h" -#include "types.h" -#include "util.h" #include "zipper.h" #include #include @@ -358,6 +357,20 @@ try _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) { + _default_audio_language = dcp::LanguageTag(*al); + } + } 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(); } @@ -755,6 +768,14 @@ Config::write_config () const root->add_child("DefaultAudioDelay")->add_child_text (raw_convert (_default_audio_delay)); /* [XML] DefaultInterop 1 to default new films to Interop, 0 for SMPTE. */ root->add_child("DefaultInterop")->add_child_text (_default_interop ? "1" : "0"); + if (_default_audio_language) { + /* [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);