X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fconfig.cc;h=a19a60f55aa06d5d16072f2cacea23f5bdd4ced6;hp=9fdf572070b79eee467d7b0613f46b4e8fe224e6;hb=89ae13638097f259f3e50b4b61068dd23451107d;hpb=1f7f758273eb3c98356438da897b7709f8cb87f0 diff --git a/src/lib/config.cc b/src/lib/config.cc index 9fdf57207..a19a60f55 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -117,6 +117,9 @@ Config::set_defaults () _dcp_metadata_filename_format = dcp::NameFormat ("%t"); _dcp_asset_filename_format = dcp::NameFormat ("%t"); _jump_to_selected = true; + for (int i = 0; i < NAG_COUNT; ++i) { + _nagged[i] = false; + } _preview_sound = false; _preview_sound_output = optional (); @@ -129,6 +132,7 @@ Config::set_defaults () _allowed_dcp_frame_rates.push_back (60); set_kdm_email_to_default (); + set_cover_sheet_to_default (); } void @@ -318,8 +322,17 @@ try _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("Id"); + if (id >= 0 && id < NAG_COUNT) { + _nagged[id] = raw_convert(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)) { @@ -496,10 +509,16 @@ Config::write_config () const root->add_child("DCPMetadataFilenameFormat")->add_child_text (_dcp_metadata_filename_format.specification ()); root->add_child("DCPAssetFilenameFormat")->add_child_text (_dcp_asset_filename_format.specification ()); root->add_child("JumpToSelected")->add_child_text (_jump_to_selected ? "1" : "0"); + for (int i = 0; i < NAG_COUNT; ++i) { + xmlpp::Element* e = root->add_child ("Nagged"); + e->set_attribute ("Id", raw_convert(i)); + e->add_child_text (_nagged[i] ? "1" : "0"); + } root->add_child("PreviewSound")->add_child_text (_preview_sound ? "1" : "0"); if (_preview_sound_output) { root->add_child("PreviewSoundOutput")->add_child_text (_preview_sound_output.get()); } + root->add_child("CoverSheet")->add_child_text (_cover_sheet); try { doc.write_to_file_formatted (path("config.xml").string ()); @@ -593,6 +612,18 @@ Config::reset_kdm_email () changed (); } +void +Config::set_cover_sheet_to_default () +{ + _cover_sheet = _( + "$CPL_NAME\n\n" + "Type: $TYPE\n" + "Format: $CONTAINER\n" + "Audio: $AUDIO\n" + "Length: $LENGTH\n" + ); +} + void Config::add_to_history (boost::filesystem::path p) { @@ -686,3 +717,17 @@ Config::delete_template (string name) const { boost::filesystem::remove (template_path (name)); } + +/** @return Path to the config.xml, for telling the user what it is */ +boost::filesystem::path +Config::config_path () +{ + return path("config.xml", false); +} + +void +Config::reset_cover_sheet () +{ + set_cover_sheet_to_default (); + changed (); +}