X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fconfig.cc;h=582a14c51f101f38069cac979381322a77a476fa;hb=0a4a087f872846d600f16ddacce99fb3f00472d7;hp=79a7b01f1dd68f4aebf39cb07e5797533926abfa;hpb=abf7799a1997c6519c04e6488f39553d92c5df16;p=dcpomatic.git diff --git a/src/lib/config.cc b/src/lib/config.cc index 79a7b01f1..582a14c51 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -71,6 +71,7 @@ Config::Config () _colour_conversions.push_back (PresetColourConversion (_("sRGB"), 2.4, true, libdcp::colour_matrix::srgb_to_xyz, 2.6)); _colour_conversions.push_back (PresetColourConversion (_("sRGB non-linearised"), 2.4, false, libdcp::colour_matrix::srgb_to_xyz, 2.6)); + _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), 2.4, false, libdcp::colour_matrix::rec709_to_xyz, 2.2)); } void @@ -85,6 +86,8 @@ Config::read () f.read_file (file (false)); optional c; + optional version = f.optional_number_child ("Version"); + _num_local_encoding_threads = f.number_child ("NumLocalEncodingThreads"); _default_directory = f.string_child ("DefaultDirectory"); _server_port = f.number_child ("ServerPort"); @@ -133,6 +136,13 @@ Config::read () _colour_conversions.push_back (PresetColourConversion (*i)); } + if (!version) { + /* Loading version 0 (before Rec. 709 was added as a preset). + Add it in. + */ + _colour_conversions.push_back (PresetColourConversion (_("Rec. 709"), 2.4, false, libdcp::colour_matrix::rec709_to_xyz, 2.2)); + } + list > cin = f.node_children ("Cinema"); for (list >::iterator i = cin.begin(); i != cin.end(); ++i) { /* Slightly grotty two-part construction of Cinema here so that we can use @@ -222,6 +232,7 @@ Config::file (bool old) const p /= ".dvdomatic"; } else { p /= "dcpomatic"; + boost::filesystem::create_directory (p, ec); p /= "config.xml"; } return p; @@ -263,6 +274,7 @@ Config::write () const xmlpp::Document doc; xmlpp::Element* root = doc.create_root_node ("Config"); + root->add_child("Version")->add_child_text ("1"); root->add_child("NumLocalEncodingThreads")->add_child_text (lexical_cast (_num_local_encoding_threads)); root->add_child("DefaultDirectory")->add_child_text (_default_directory.string ()); root->add_child("ServerPort")->add_child_text (lexical_cast (_server_port));