summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-09-01 00:06:19 +0100
committerCarl Hetherington <cth@carlh.net>2014-09-01 00:06:19 +0100
commitcf8bbea2de38c4e9ac140f55b27311b7b6dcd814 (patch)
tree7786cf4672ce8c5134c5b9e53947609a1e1c9cc3 /src/lib
parent22b9f3b2090d8bdfe52cda1e69d3acbe874f1ce5 (diff)
parentbbb2a4b7ccec953900d13e7bcdad229028bc7795 (diff)
Merge master.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/config.cc12
-rw-r--r--src/lib/config.h10
-rw-r--r--src/lib/util.cc31
-rw-r--r--src/lib/writer.cc5
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;