+ _decryption_chain = create_certificate_chain ();
+ }
+
+ list<cxml::NodePtr> dkdm = f.node_children ("DKDM");
+ BOOST_FOREACH (cxml::NodePtr i, f.node_children ("DKDM")) {
+ _dkdms.push_back (dcp::EncryptedKDM (i->content ()));
+ }
+
+ _cinemas_file = f.optional_string_child("CinemasFile").get_value_or (path ("cinemas.xml").string ());
+ _show_hints_before_make_dcp = f.optional_bool_child("ShowHintsBeforeMakeDCP").get_value_or (true);
+ _confirm_kdm_email = f.optional_bool_child("ConfirmKDMEmail").get_value_or (true);
+ _kdm_container_name_format = dcp::NameFormat (f.optional_string_child("KDMContainerNameFormat").get_value_or ("KDM %f %c"));
+ _kdm_filename_format = dcp::NameFormat (f.optional_string_child("KDMFilenameFormat").get_value_or ("KDM %f %c %s"));
+ _dcp_metadata_filename_format = dcp::NameFormat (f.optional_string_child("DCPMetadataFilenameFormat").get_value_or ("%t"));
+ _dcp_asset_filename_format = dcp::NameFormat (f.optional_string_child("DCPAssetFilenameFormat").get_value_or ("%t"));
+ _jump_to_selected = f.optional_bool_child("JumpToSelected").get_value_or (true);
+ BOOST_FOREACH (cxml::NodePtr i, f.node_children("Nagged")) {
+ int const id = i->number_attribute<int>("Id");
+ if (id >= 0 && id < NAG_COUNT) {
+ _nagged[id] = raw_convert<int>(i->content());
+ }
+ }
+ _preview_sound = f.optional_bool_child("PreviewSound").get_value_or (false);
+ _preview_sound_output = f.optional_string_child("PreviewSoundOutput");
+ if (f.optional_string_child("CoverSheet")) {
+ _cover_sheet = f.optional_string_child("CoverSheet").get();
+ }
+
+ /* Replace any cinemas from config.xml with those from the configured file */
+ if (boost::filesystem::exists (_cinemas_file)) {
+ cxml::Document f ("Cinemas");
+ f.read_file (_cinemas_file);
+ read_cinemas (f);