diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-04-02 10:47:35 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-04-02 10:47:35 +0200 |
| commit | a6696b9a58c14d81f0ae30482051c2cd47a004db (patch) | |
| tree | 0fb2983324b891f7dd3ecde04eb92dae00cb0a85 /src/lib/audio_content.cc | |
| parent | a4b7d0af831b8cd9aafca5f2b264be416a7b1148 (diff) | |
Add language to audio content and use it instead of the general metadata.
Diffstat (limited to 'src/lib/audio_content.cc')
| -rw-r--r-- | src/lib/audio_content.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/audio_content.cc b/src/lib/audio_content.cc index 748cbb7d0..3d9f6ac05 100644 --- a/src/lib/audio_content.cc +++ b/src/lib/audio_content.cc @@ -52,6 +52,7 @@ using namespace dcpomatic; int const AudioContentProperty::STREAMS = 200; int const AudioContentProperty::GAIN = 201; int const AudioContentProperty::DELAY = 202; +int const AudioContentProperty::LANGUAGE = 203; AudioContent::AudioContent (Content* parent) @@ -89,6 +90,10 @@ AudioContent::AudioContent (Content* parent, cxml::ConstNodePtr node) { _gain = node->number_child<double> ("AudioGain"); _delay = node->number_child<int> ("AudioDelay"); + auto lang = node->optional_node_child ("Language"); + if (lang) { + _language = dcp::LanguageTag (lang->content()); + } /* Backwards compatibility */ auto r = node->optional_number_child<double>("AudioVideoFrameRate"); @@ -112,11 +117,16 @@ AudioContent::AudioContent (Content* parent, vector<shared_ptr<Content> > c) if (c[i]->audio->delay() != ref->delay()) { throw JoinError (_("Content to be joined must have the same audio delay.")); } + + if (c[i]->audio->language() != ref->language()) { + throw JoinError (_("Content to be joined must have the same audio language.")); + } } _gain = ref->gain (); _delay = ref->delay (); _streams = ref->streams (); + _language = ref->language (); } @@ -126,6 +136,9 @@ AudioContent::as_xml (xmlpp::Node* node) const boost::mutex::scoped_lock lm (_mutex); node->add_child("AudioGain")->add_child_text(raw_convert<string>(_gain)); node->add_child("AudioDelay")->add_child_text(raw_convert<string>(_delay)); + if (_language) { + node->add_child("Language")->add_child_text(_language->to_string()); + } } @@ -143,6 +156,13 @@ AudioContent::set_delay (int d) } +void +AudioContent::set_language (optional<dcp::LanguageTag> language) +{ + maybe_set (_language, language, AudioContentProperty::LANGUAGE); +} + + string AudioContent::technical_summary () const { |
