X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fconfig.cc;fp=src%2Flib%2Fconfig.cc;h=b6f464717b48c7f6ca3f5a590c58ca5480d01e22;hp=4f90581f627b32f3201c6246516fcbd6c859a40a;hb=cd4a82d90677cec80e891ac190000cb70767446f;hpb=2cc2dc2aeaec62a4983991170fc5368e10d21748 diff --git a/src/lib/config.cc b/src/lib/config.cc index 4f90581f6..b6f464717 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -27,6 +27,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" @@ -50,6 +52,8 @@ Config::Config () , _tms_path (N_(".")) , _sound_processor (SoundProcessor::from_id (N_("dolby_cp750"))) , _default_still_length (10) + , _default_format (0) + , _default_dcp_content_type (0) { _allowed_dcp_frame_rates.push_back (24); _allowed_dcp_frame_rates.push_back (25); @@ -95,6 +99,20 @@ Config::Config () } _language = f.optional_string_child ("Language"); + + c = f.optional_string_child ("DefaultFormat"); + if (c) { + _default_format = Format::from_id (c.get ()); + } + + c = f.optional_string_child ("DefaultDCPContentType"); + if (c) { + _default_dcp_content_type = DCPContentType::from_dci_name (c.get ()); + } + + _dcp_metadata.issuer = f.optional_string_child ("DCPMetadataIssuer").get_value_or (""); + _dcp_metadata.creator = f.optional_string_child ("DCPMetadataCreator").get_value_or (""); + _default_dci_metadata = DCIMetadata (f.node_child ("DCIMetadata")); _default_still_length = f.optional_number_child("DefaultStillLength").get_value_or (10); } @@ -145,6 +163,16 @@ Config::read_old_metadata () _sound_processor = SoundProcessor::from_id (v); } else if (k == "language") { _language = v; + } else if (k == "default_format") { + _default_format = Format::from_id (v); + } else if (k == "default_dcp_content_type") { + _default_dcp_content_type = DCPContentType::from_dci_name (v); + } else if (k == "dcp_metadata_issuer") { + _dcp_metadata.issuer = v; + } else if (k == "dcp_metadata_creator") { + _dcp_metadata.creator = v; + } else if (k == "dcp_metadata_issue_date") { + _dcp_metadata.issue_date = v; } _default_dci_metadata.read_old_metadata (k, v); @@ -208,6 +236,14 @@ Config::write () const if (_language) { root->add_child("Language")->add_child_text (_language.get()); } + if (_default_format) { + root->add_child("DefaultFormat")->add_child_text (_default_format->id ()); + } + if (_default_dcp_content_type) { + root->add_child("DefaultDCPContentType")->add_child_text (_default_dcp_content_type->dci_name ()); + } + root->add_child("DCPMetadataIssuer")->add_child_text (_dcp_metadata.issuer); + root->add_child("DCPMetadataCreator")->add_child_text (_dcp_metadata.creator); _default_dci_metadata.as_xml (root->add_child ("DCIMetadata"));