/// <summary> /// The export preset. /// </summary> /// <param name="filename"> /// The filename. /// </param> /// <param name="container"> /// The container. /// </param> public static void ExportPreset(string filename, PresetTransportContainer container) { string preset = JsonConvert.SerializeObject(container, Formatting.Indented); using (StreamWriter writer = new StreamWriter(filename)) { writer.Write(preset); } }
/// <summary> /// The export preset. /// </summary> /// <param name="export"> /// The export. /// </param> /// <param name="config"> /// HandBrakes configuration options. /// </param> /// <returns> /// The <see cref="Preset"/>. /// </returns> public static PresetTransportContainer ExportPreset(Preset export, HBConfiguration config) { PresetTransportContainer container = new PresetTransportContainer(); container.VersionMajor = "0"; container.VersionMinor = "10"; container.VersionMicro = "2"; container.PresetList = new List<HBPreset> { CreateHbPreset(export, config) }; return container; }
/// <summary> /// Export a list of Presets. /// </summary> /// <param name="exportList">A list of presets to export</param> /// <param name="config">HB's configuration</param> /// <returns>A list of JSON object presets.</returns> public static PresetTransportContainer ExportPresets(IEnumerable<Preset> exportList, HBConfiguration config) { PresetTransportContainer container = new PresetTransportContainer(); container.VersionMajor = Constants.PresetVersionMajor; container.VersionMinor = Constants.PresetVersionMinor; container.VersionMicro = Constants.PresetVersionMicro; List<HBPreset> presets = exportList.Select(item => CreateHbPreset(item, config)).ToList(); container.PresetList = new List<object>(); container.PresetList.AddRange(presets); return container; }
/// <summary> /// The export preset. /// </summary> /// <param name="export"> /// The export. /// </param> /// <param name="config"> /// HandBrakes configuration options. /// </param> /// <returns> /// The <see cref="Preset"/>. /// </returns> public static PresetTransportContainer ExportPreset(Preset export, HBConfiguration config) { PresetTransportContainer container = new PresetTransportContainer(); container.VersionMajor = Constants.PresetVersionMajor; container.VersionMinor = Constants.PresetVersionMinor; container.VersionMicro = Constants.PresetVersionMicro; container.PresetList = new List<object> { CreateHbPreset(export, config) }; return container; }
/// <summary> /// Update the preset files /// </summary> private void SavePresetFiles() { try { // Verify Directories. string directory = Path.GetDirectoryName(this.presetFile); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } // Orgamise the Presets list into Json Equivilent objects. Dictionary<string, PresetCategory> presetCategories = new Dictionary<string, PresetCategory>(); List<HBPreset> uncategorisedPresets = new List<HBPreset>(); foreach (Preset item in this.presets) { if (string.IsNullOrEmpty(item.Category)) { uncategorisedPresets.Add(JsonPresetFactory.CreateHbPreset(item, HBConfigurationFactory.Create())); } else { HBPreset preset = JsonPresetFactory.CreateHbPreset(item, HBConfigurationFactory.Create()); if (presetCategories.ContainsKey(item.Category)) { presetCategories[item.Category].ChildrenArray.Add(preset); } else { presetCategories[item.Category] = new PresetCategory { ChildrenArray = new List<HBPreset> { preset }, Folder = true, PresetName = item.Category, Type = item.IsBuildIn ? 0 : 1 }; } } } // Wrap the categories in a container. JsonSerializerSettings settings = new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore }; PresetTransportContainer container = new PresetTransportContainer( Constants.PresetVersionMajor, Constants.PresetVersionMinor, Constants.PresetVersionMicro) { PresetList = new List<object>() }; container.PresetList.AddRange(presetCategories.Values); container.PresetList.AddRange(uncategorisedPresets); // Write the preset container out to file. using (FileStream strm = new FileStream(this.presetFile, FileMode.Create, FileAccess.Write)) { string presetsJson = JsonConvert.SerializeObject(container, Formatting.Indented, settings); using (StreamWriter writer = new StreamWriter(strm)) { writer.WriteLine(presetsJson); } } } catch (Exception exc) { Debug.WriteLine(exc); throw new GeneralApplicationException("Unable to write to the presets file.", "The details section below may indicate why this error has occured.", exc); } }