public void ExportPreset(Preset preset) { var exportPreset = new Preset { EncodingProfile = preset.EncodingProfile.Clone(), IsBuiltIn = false, IsModified = false, IsQueue = false, Name = preset.Name }; string initialFileName = exportPreset.Name; if (preset.IsModified) { initialFileName += "_Modified"; } string exportFileName = this.fileService.GetFileNameSave( Config.RememberPreviousFiles ? Config.LastPresetExportFolder : null, MainRes.ExportPresetFilePickerText, Utilities.CleanFileName(initialFileName + ".xml"), "xml", Utilities.GetFilePickerFilter("xml")); if (exportFileName != null) { if (Config.RememberPreviousFiles) { Config.LastPresetExportFolder = Path.GetDirectoryName(exportFileName); } if (Presets.SavePresetToFile(exportPreset, exportFileName)) { this.messageBoxService.Show( string.Format(MainRes.PresetExportSuccessMessage, exportFileName), CommonRes.Success, System.Windows.MessageBoxButton.OK); } } }
public void SaveUserPresets() { List<Preset> userPresets = new List<Preset>(); foreach (PresetViewModel presetVM in this.AllPresets) { if ((!presetVM.Preset.IsBuiltIn || presetVM.Preset.IsModified) && !presetVM.IsQueue) { userPresets.Add(presetVM.Preset); } // Add the original version of the preset, if we're working with a more recent version. if (!presetVM.Preset.IsBuiltIn && presetVM.Preset.IsModified) { Trace.Assert(presetVM.OriginalProfile != null, "Error saving user presets: Preset marked as modified but no OriginalProfile could be found."); if (presetVM.OriginalProfile != null) { var originalPreset = new Preset { Name = presetVM.Preset.Name, IsBuiltIn = presetVM.Preset.IsBuiltIn, IsModified = false, EncodingProfile = presetVM.OriginalProfile }; userPresets.Add(originalPreset); } } } Presets.UserPresets = userPresets; }
public void AddPreset(Preset newPreset) { var newPresetVM = new PresetViewModel(newPreset); this.InsertNewPreset(newPresetVM); // Switch to the new preset if we can do it cleanly. if (!this.SelectedPreset.IsModified) { this.selectedPreset = null; this.SelectedPreset = newPresetVM; this.main.StartAnimation("PresetGlowHighlight"); } this.SaveUserPresets(); }
public void SavePresetAs(string newPresetName) { var newPreset = new Preset { IsBuiltIn = false, IsModified = false, Name = newPresetName, EncodingProfile = this.SelectedPreset.Preset.EncodingProfile.Clone() }; var newPresetVM = new PresetViewModel(newPreset); this.InsertNewPreset(newPresetVM); if (this.SelectedPreset.IsModified) { this.RevertPreset(userInitiated: false); this.SelectedPreset.RefreshView(); } this.selectedPreset = null; this.SelectedPreset = newPresetVM; this.main.StartAnimation("PresetGlowHighlight"); this.SaveUserPresets(); }
/// <summary> /// Serializes a preset to XML. Does not include wrapper. /// </summary> /// <param name="preset">The preset to serialize.</param> /// <returns>The serialized XML of the preset.</returns> public static string SerializePreset(Preset preset) { var xmlBuilder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(xmlBuilder)) { presetSerializer.Serialize(writer, preset); } return xmlBuilder.ToString(); }
private static void ErrorCheckPreset(Preset preset) { // mp4v2 only available on x86 string containerName = preset.EncodingProfile.ContainerName; if (Encoders.GetContainer(containerName) == null) { if (containerName == "mp4v2") { preset.EncodingProfile.ContainerName = "av_mp4"; } } // QSV H.264 only available on systems with the right hardware. string videoEncoderName = preset.EncodingProfile.VideoEncoder; if (Encoders.GetVideoEncoder(videoEncoderName) == null) { if (videoEncoderName == "qsv_h264") { preset.EncodingProfile.VideoEncoder = "x264"; } } }
/// <summary> /// Saves a user preset to a file. Includes wrapper XML. /// </summary> /// <param name="preset">The preset to save.</param> /// <param name="filePath">The path to save the preset to.</param> /// <returns>True if the save succeeded.</returns> public static bool SavePresetToFile(Preset preset, string filePath) { try { string presetXml = SerializePreset(preset); XElement element = XElement.Parse(presetXml); var doc = new XDocument( new XElement("UserPreset", new XAttribute("Version", CurrentPresetVersion.ToString(CultureInfo.InvariantCulture)), element)); doc.Save(filePath); return true; } catch (XmlException exception) { System.Windows.MessageBox.Show(string.Format(MainRes.CouldNotSavePresetMessage, preset.Name, Environment.NewLine, exception)); } return false; }
public PresetViewModel(Preset preset) { this.preset = preset; }