Merge remote-tracking branch 'origin/master' into 1.0
[dcpomatic.git] / src / lib / config.cc
index bb1fcd21173655a276055bf0becdcc67527396b5..f2f25efe90af3930b817c88f9f2291fbe40921db 100644 (file)
@@ -32,7 +32,7 @@
 #include "filter.h"
 #include "ratio.h"
 #include "dcp_content_type.h"
-#include "sound_processor.h"
+#include "cinema_sound_processor.h"
 #include "colour_conversion.h"
 #include "cinema.h"
 #include "util.h"
@@ -60,9 +60,10 @@ Config::Config ()
        , _server_port_base (6192)
        , _use_any_servers (true)
        , _tms_path (".")
-       , _sound_processor (SoundProcessor::from_id (N_("dolby_cp750")))
+       , _cinema_sound_processor (CinemaSoundProcessor::from_id (N_("dolby_cp750")))
        , _allow_any_dcp_frame_rate (false)
        , _default_still_length (10)
+       , _default_scale (Ratio::from_id ("185"))
        , _default_container (Ratio::from_id ("185"))
        , _default_dcp_content_type (DCPContentType::from_isdcf_name ("TST"))
        , _default_j2k_bandwidth (100000000)
@@ -90,7 +91,6 @@ void
 Config::read ()
 {
        if (!boost::filesystem::exists (file (false))) {
-               read_old_metadata ();
                return;
        }
 
@@ -128,11 +128,20 @@ Config::read ()
 
        c = f.optional_string_child ("SoundProcessor");
        if (c) {
-               _sound_processor = SoundProcessor::from_id (c.get ());
+               _cinema_sound_processor = CinemaSoundProcessor::from_id (c.get ());
+       }
+       c = f.optional_string_child ("CinemaSoundProcessor");
+       if (c) {
+               _cinema_sound_processor = CinemaSoundProcessor::from_id (c.get ());
        }
 
        _language = f.optional_string_child ("Language");
 
+       c = f.optional_string_child ("DefaultScale");
+       if (c) {
+               _default_scale = Ratio::from_id (c.get ());
+       }
+
        c = f.optional_string_child ("DefaultContainer");
        if (c) {
                _default_container = Ratio::from_id (c.get ());
@@ -186,6 +195,7 @@ Config::read ()
        _mail_server = f.string_child ("MailServer");
        _mail_user = f.optional_string_child("MailUser").get_value_or ("");
        _mail_password = f.optional_string_child("MailPassword").get_value_or ("");
+       _kdm_subject = f.optional_string_child ("KDMSubject").get_value_or (_("KDM delivery: $CPL_NAME"));
        _kdm_from = f.string_child ("KDMFrom");
        _kdm_cc = f.optional_string_child ("KDMCC").get_value_or ("");
        _kdm_email = f.string_child ("KDMEmail");
@@ -199,70 +209,6 @@ Config::read ()
        _log_types = f.optional_number_child<int> ("LogTypes").get_value_or (Log::TYPE_GENERAL | Log::TYPE_WARNING | Log::TYPE_ERROR);
 }
 
-void
-Config::read_old_metadata ()
-{
-       /* XXX: this won't work with non-Latin filenames */
-       ifstream f (file(true).string().c_str ());
-       string line;
-
-       while (getline (f, line)) {
-               if (line.empty ()) {
-                       continue;
-               }
-
-               if (line[0] == '#') {
-                       continue;
-               }
-
-               size_t const s = line.find (' ');
-               if (s == string::npos) {
-                       continue;
-               }
-               
-               string const k = line.substr (0, s);
-               string const v = line.substr (s + 1);
-
-               if (k == N_("num_local_encoding_threads")) {
-                       _num_local_encoding_threads = atoi (v.c_str ());
-               } else if (k == N_("default_directory")) {
-                       _default_directory = v;
-               } else if (k == N_("server_port")) {
-                       _server_port_base = atoi (v.c_str ());
-               } else if (k == N_("server")) {
-                       vector<string> b;
-                       split (b, v, is_any_of (" "));
-                       if (b.size() == 2) {
-                               _servers.push_back (b[0]);
-                       }
-               } else if (k == N_("tms_ip")) {
-                       _tms_ip = v;
-               } else if (k == N_("tms_path")) {
-                       _tms_path = v;
-               } else if (k == N_("tms_user")) {
-                       _tms_user = v;
-               } else if (k == N_("tms_password")) {
-                       _tms_password = v;
-               } else if (k == N_("sound_processor")) {
-                       _sound_processor = SoundProcessor::from_id (v);
-               } else if (k == "language") {
-                       _language = v;
-               } else if (k == "default_container") {
-                       _default_container = Ratio::from_id (v);
-               } else if (k == "default_dcp_content_type") {
-                       _default_dcp_content_type = DCPContentType::from_isdcf_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_isdcf_metadata.read_old_metadata (k, v);
-       }
-}
-
 /** @return Filename to write configuration to */
 boost::filesystem::path
 Config::file (bool old) const
@@ -334,12 +280,15 @@ Config::write () const
        root->add_child("TMSPath")->add_child_text (_tms_path);
        root->add_child("TMSUser")->add_child_text (_tms_user);
        root->add_child("TMSPassword")->add_child_text (_tms_password);
-       if (_sound_processor) {
-               root->add_child("SoundProcessor")->add_child_text (_sound_processor->id ());
+       if (_cinema_sound_processor) {
+               root->add_child("CinemaSoundProcessor")->add_child_text (_cinema_sound_processor->id ());
        }
        if (_language) {
                root->add_child("Language")->add_child_text (_language.get());
        }
+       if (_default_scale) {
+               root->add_child("DefaultScale")->add_child_text (_default_scale->id ());
+       }
        if (_default_container) {
                root->add_child("DefaultContainer")->add_child_text (_default_container->id ());
        }
@@ -366,6 +315,7 @@ Config::write () const
        root->add_child("MailServer")->add_child_text (_mail_server);
        root->add_child("MailUser")->add_child_text (_mail_user);
        root->add_child("MailPassword")->add_child_text (_mail_password);
+       root->add_child("KDMSubject")->add_child_text (_kdm_subject);
        root->add_child("KDMFrom")->add_child_text (_kdm_from);
        root->add_child("KDMCC")->add_child_text (_kdm_cc);
        root->add_child("KDMEmail")->add_child_text (_kdm_email);