diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 12 | ||||
| -rw-r--r-- | src/lib/config.h | 10 | ||||
| -rw-r--r-- | src/lib/util.cc | 31 | ||||
| -rw-r--r-- | src/lib/writer.cc | 5 |
4 files changed, 35 insertions, 23 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index 7e3762587..1f5a25ae4 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -160,9 +160,12 @@ Config::read () _default_dcp_content_type = DCPContentType::from_isdcf_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 (""); - + if (f.optional_string_child ("DCPMetadataIssuer")) { + _dcp_issuer = f.string_child ("DCPMetadataIssuer"); + } else if (f.optional_string_child ("DCPIssuer")) { + _dcp_issuer = f.string_child ("DCPIssuer"); + } + if (version && version.get() >= 2) { _default_isdcf_metadata = ISDCFMetadata (f.node_child ("ISDCFMetadata")); } else { @@ -335,8 +338,7 @@ Config::write () const if (_default_dcp_content_type) { root->add_child("DefaultDCPContentType")->add_child_text (_default_dcp_content_type->isdcf_name ()); } - root->add_child("DCPMetadataIssuer")->add_child_text (_dcp_metadata.issuer); - root->add_child("DCPMetadataCreator")->add_child_text (_dcp_metadata.creator); + root->add_child("DCPIssuer")->add_child_text (_dcp_issuer); _default_isdcf_metadata.as_xml (root->add_child ("ISDCFMetadata")); diff --git a/src/lib/config.h b/src/lib/config.h index 05bc7945f..9a1808682 100644 --- a/src/lib/config.h +++ b/src/lib/config.h @@ -146,8 +146,8 @@ public: return _default_dcp_content_type; } - dcp::XMLMetadata dcp_metadata () const { - return _dcp_metadata; + std::string dcp_issuer () const { + return _dcp_issuer; } int default_j2k_bandwidth () const { @@ -322,8 +322,8 @@ public: changed (); } - void set_dcp_metadata (dcp::XMLMetadata m) { - _dcp_metadata = m; + void set_dcp_issuer (std::string i) { + _dcp_issuer = i; changed (); } @@ -471,7 +471,7 @@ private: Ratio const * _default_scale; Ratio const * _default_container; DCPContentType const * _default_dcp_content_type; - dcp::XMLMetadata _dcp_metadata; + std::string _dcp_issuer; int _default_j2k_bandwidth; int _default_audio_delay; std::vector<PresetColourConversion> _colour_conversions; diff --git a/src/lib/util.cc b/src/lib/util.cc index c9685aa44..c09ed9cb2 100644 --- a/src/lib/util.cc +++ b/src/lib/util.cc @@ -383,35 +383,42 @@ mo_path () } #endif +#ifdef DCPOMATIC_OSX +boost::filesystem::path +mo_path () +{ + return "DCP-o-matic.app/Contents/Resources"; +} +#endif + void dcpomatic_setup_gettext_i18n (string lang) { -#ifdef DCPOMATIC_POSIX +#ifdef DCPOMATIC_LINUX lang += ".UTF8"; #endif if (!lang.empty ()) { - /* Override our environment language; this is essential on - Windows. + /* Override our environment language. Note that the caller must not + free the string passed into putenv(). */ - char cmd[64]; - snprintf (cmd, sizeof(cmd), "LANGUAGE=%s", lang.c_str ()); - putenv (cmd); - snprintf (cmd, sizeof(cmd), "LANG=%s", lang.c_str ()); - putenv (cmd); - snprintf (cmd, sizeof(cmd), "LC_ALL=%s", lang.c_str ()); - putenv (cmd); + string s = String::compose ("LANGUAGE=%1", lang); + putenv (strdup (s.c_str ())); + s = String::compose ("LANG=%1", lang); + putenv (strdup (s.c_str ())); + s = String::compose ("LC_ALL=%1", lang); + putenv (strdup (s.c_str ())); } setlocale (LC_ALL, ""); textdomain ("libdcpomatic"); -#ifdef DCPOMATIC_WINDOWS +#if defined(DCPOMATIC_WINDOWS) || defined(DCPOMATIC_OSX) bindtextdomain ("libdcpomatic", mo_path().string().c_str()); bind_textdomain_codeset ("libdcpomatic", "UTF8"); #endif -#ifdef DCPOMATIC_POSIX +#ifdef DCPOMATIC_LINUX bindtextdomain ("libdcpomatic", POSIX_LOCALE_PREFIX); #endif } diff --git a/src/lib/writer.cc b/src/lib/writer.cc index eda82f277..a023d5cd2 100644 --- a/src/lib/writer.cc +++ b/src/lib/writer.cc @@ -45,6 +45,7 @@ #include "audio_buffers.h" #include "md5_digester.h" #include "encoded_data.h" +#include "version.h" #include "i18n.h" @@ -486,7 +487,9 @@ Writer::finish () _sound_mxf->hash (boost::bind (&Job::set_progress, job.get(), _1, false)); } - dcp::XMLMetadata meta = Config::instance()->dcp_metadata (); + dcp::XMLMetadata meta; + meta.issuer = Config::instance()->dcp_issuer (); + meta.creator = String::compose ("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit); meta.set_issue_date_now (); shared_ptr<const dcp::Signer> signer; |
