_dkdm_recipients_file = read_path ("dkdm_recipients.xml");
_show_hints_before_make_dcp = true;
_confirm_kdm_email = true;
- _kdm_container_name_format = dcp::NameFormat ("KDM %f %c");
- _kdm_filename_format = dcp::NameFormat ("KDM %f %c %s");
- _dkdm_filename_format = dcp::NameFormat ("DKDM %f %c %s");
+ _kdm_container_name_format = dcp::NameFormat("KDM_%f_%c");
+ _kdm_filename_format = dcp::NameFormat("KDM_%f_%c_%s");
+ _dkdm_filename_format = dcp::NameFormat("DKDM_%f_%c_%s");
_dcp_metadata_filename_format = dcp::NameFormat ("%t");
_dcp_asset_filename_format = dcp::NameFormat ("%t");
_jump_to_selected = true;
_sound_output = optional<string> ();
_last_kdm_write_type = KDM_WRITE_FLAT;
_last_dkdm_write_type = DKDM_WRITE_INTERNAL;
+ _default_add_file_location = DefaultAddFileLocation::SAME_AS_LAST_TIME;
/* I think the scaling factor here should be the ratio of the longest frame
encode time to the shortest; if the thread count is T, longest time is L
_initial_paths.clear();
_initial_paths["AddFilesPath"] = boost::none;
_initial_paths["AddDKDMPath"] = boost::none;
+ _initial_paths["SelectCertificatePath"] = boost::none;
+ _initial_paths["AddCombinerInputPath"] = boost::none;
_use_isdcf_name_by_default = true;
_write_kdms_to_disk = true;
_email_kdms = false;
_default_kdm_duration = RoughDuration(1, RoughDuration::Unit::WEEKS);
_auto_crop_threshold = 0.1;
_last_release_notes_version = boost::none;
+ _allow_smpte_bv20 = false;
_allowed_dcp_frame_rates.clear ();
_allowed_dcp_frame_rates.push_back (24);
_main_divider_sash_position = f.optional_number_child<int>("MainDividerSashPosition");
_main_content_divider_sash_position = f.optional_number_child<int>("MainContentDividerSashPosition");
+ if (auto loc = f.optional_string_child("DefaultAddFileLocation")) {
+ if (*loc == "last") {
+ _default_add_file_location = DefaultAddFileLocation::SAME_AS_LAST_TIME;
+ } else if (*loc == "project") {
+ _default_add_file_location = DefaultAddFileLocation::SAME_AS_PROJECT;
+ }
+ }
+
+ _allow_smpte_bv20 = f.optional_bool_child("AllowSMPTEBv20").get_value_or(false);
+
_export.read(f.optional_node_child("Export"));
}
catch (...) {
root->add_child("MainContentDividerSashPosition")->add_child_text(raw_convert<string>(*_main_content_divider_sash_position));
}
+ root->add_child("DefaultAddFileLocation")->add_child_text(
+ _default_add_file_location == DefaultAddFileLocation::SAME_AS_LAST_TIME ? "last" : "project"
+ );
+
+ /* [XML] AllowSMPTEBv20 1 to allow the user to choose SMPTE (Bv2.0 only) as a standard, otherwise 0 */
+ root->add_child("AllowSMPTEBv20")->add_child_text(_allow_smpte_bv20 ? "1" : "0");
+
_export.write(root->add_child("Export"));
auto target = config_write_file();
add_to_history_internal (_player_history, p);
}
-/** Remove non-existant items from the player history */
+/** Remove non-existent items from the player history */
void
Config::clean_player_history ()
{