{\r
public class PresetsHandler\r
{\r
- List<Preset> _presets = new List<Preset>();\r
- List<Preset> _userPresets = new List<Preset>();\r
+ List<Preset> Presets = new List<Preset>();\r
+ List<Preset> UserPresets = new List<Preset>();\r
private static readonly XmlSerializer Ser = new XmlSerializer(typeof(List<Preset>));\r
- readonly string _userPresetFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\user_presets.xml";\r
- readonly string _hbPresetFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\presets.xml";\r
+ readonly string UserPresetFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\user_presets.xml";\r
+ readonly string HbPresetFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\HandBrake\\presets.xml";\r
\r
/// <summary>\r
/// Add a new preset to the system\r
/// </summary>\r
/// <param name="presetName">String, The name of the new preset</param>\r
/// <param name="query">String, the CLI query for the new preset</param>\r
- /// <param name="pictureSettings"> Bool, store crop/picture sizes in the _presets</param>\r
+ /// <param name="pictureSettings"> Bool, store crop/picture sizes in the Presets</param>\r
public Boolean Add(string presetName, string query, Boolean pictureSettings)\r
{\r
if (CheckIfPresetExists(presetName) == false)\r
{\r
Preset newPreset = new Preset { Name = presetName, Query = query, PictureSettings = pictureSettings, Version = Properties.Settings.Default.hb_version };\r
- _userPresets.Add(newPreset);\r
+ UserPresets.Add(newPreset);\r
UpdatePresetFiles();\r
return true;\r
}\r
List<Preset> newUserPresets = new List<Preset>();\r
\r
// Built In Presets\r
- foreach (Preset item in _presets)\r
+ foreach (Preset item in Presets)\r
{\r
if (item.Name != name)\r
{\r
newPresets.Add(item);\r
}\r
}\r
- _presets = newPresets;\r
+ Presets = newPresets;\r
\r
// User Presets\r
- foreach (Preset item in _userPresets)\r
+ foreach (Preset item in UserPresets)\r
{\r
if (item.Name != name)\r
{\r
newUserPresets.Add(item);\r
}\r
}\r
- _userPresets = newUserPresets;\r
+ UserPresets = newUserPresets;\r
\r
- // Rebuild the _userPresets.xml file\r
+ // Rebuild the UserPresets.xml file\r
UpdatePresetFiles();\r
UpdatePresetFiles();\r
}\r
\r
/// <summary>\r
- /// Remove all built in _presets;\r
+ /// Remove all built in Presets;\r
/// </summary>\r
public void RemoveBuiltInPresets()\r
{\r
- _presets.Clear();\r
+ Presets.Clear();\r
UpdatePresetFiles();\r
}\r
\r
public void Update(string presetName, string query, Boolean pictureSettings)\r
{\r
// User Presets\r
- foreach (Preset item in _userPresets)\r
+ foreach (Preset item in UserPresets)\r
{\r
if (item.Name == presetName)\r
{\r
public Preset GetPreset(string name)\r
{\r
// Built In Presets\r
- foreach (Preset item in _presets)\r
+ foreach (Preset item in Presets)\r
{\r
if (item.Name == name)\r
return item;\r
}\r
\r
// User Presets\r
- foreach (Preset item in _userPresets)\r
+ foreach (Preset item in UserPresets)\r
{\r
if (item.Name == name)\r
return item;\r
/// </summary>\r
public void UpdateBuiltInPresets()\r
{\r
- // Create a new tempory file and execute the CLI to get the built in _presets.\r
+ // Create a new tempory file and execute the CLI to get the built in Presets.\r
string handbrakeCLIPath = Path.Combine(Application.StartupPath, "HandBrakeCLI.exe");\r
string presetsPath = Path.Combine(Path.GetTempPath(), "temp_presets.dat");\r
string strCmdLine = String.Format(@"cmd /c """"{0}"" --preset-list >""{1}"" 2>&1""", handbrakeCLIPath, presetsPath);\r
hbproc.Close();\r
}\r
\r
- // Clear the current built in _presets and now parse the tempory _presets file.\r
- _presets.Clear();\r
+ // Clear the current built in Presets and now parse the tempory Presets file.\r
+ Presets.Clear();\r
\r
if (File.Exists(presetsPath))\r
{\r
Regex r = new Regex("(: )"); // Split on hyphens. \r
string[] presetName = r.Split(line);\r
\r
+ bool pic = false;\r
+ if (presetName[2].Contains("crop"))\r
+ pic = true;\r
+\r
Preset newPreset = new Preset\r
- { Category = category,\r
+ {\r
+ Category = category,\r
Name = presetName[0].Replace("+", "").Trim(),\r
Query = presetName[2],\r
Version = Properties.Settings.Default.hb_version,\r
- PictureSettings = true\r
+ PictureSettings = pic\r
};\r
- _presets.Add(newPreset);\r
+ Presets.Add(newPreset);\r
}\r
}\r
presetInput.Close();\r
presetInput.Dispose();\r
}\r
\r
- // Finally, Create a new or update the current _presets.xml file\r
+ // Finally, Create a new or update the current Presets.xml file\r
UpdatePresetFiles();\r
}\r
\r
/// <summary>\r
- /// Load in the preset data from _presets.xml and _userPresets.xml\r
- /// Load it into the 2 arraylist's _presets and _userPresets\r
+ /// Load in the preset data from Presets.xml and UserPresets.xml\r
+ /// Load it into the 2 arraylist's Presets and UserPresets\r
/// </summary>\r
private void LoadPresetData()\r
{\r
- // First clear the _presets arraylists\r
- _presets.Clear();\r
- _userPresets.Clear();\r
+ // First clear the Presets arraylists\r
+ Presets.Clear();\r
+ UserPresets.Clear();\r
\r
- // Load in the users _presets from _userPresets.xml\r
- if (File.Exists(_hbPresetFile))\r
+ try\r
{\r
- using (FileStream strm = new FileStream(_hbPresetFile, FileMode.Open, FileAccess.Read))\r
+ // Load in the users Presets from UserPresets.xml\r
+ if (File.Exists(HbPresetFile))\r
{\r
- if (strm.Length != 0)\r
+ using (FileStream strm = new FileStream(HbPresetFile, FileMode.Open, FileAccess.Read))\r
{\r
- List<Preset> list = Ser.Deserialize(strm) as List<Preset>;\r
-\r
- if (list != null)\r
- foreach (Preset preset in list)\r
- _presets.Add(preset);\r
+ if (strm.Length != 0)\r
+ {\r
+ List<Preset> list = Ser.Deserialize(strm) as List<Preset>;\r
+\r
+ if (list != null)\r
+ foreach (Preset preset in list)\r
+ Presets.Add(preset);\r
+ }\r
}\r
}\r
}\r
+ catch (Exception)\r
+ {\r
+ MessageBox.Show(\r
+ "HandBrakes preset file appears to have been corrupted. This file will now be re-generated!\n" +\r
+ "If the problem presists, please delete the file: \n\n" + HbPresetFile, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ UpdateBuiltInPresets();\r
+ }\r
\r
- // Load in the users _presets from _userPresets.xml\r
- if (File.Exists(_userPresetFile))\r
+ try\r
{\r
- using (FileStream strm = new FileStream(_userPresetFile, FileMode.Open, FileAccess.Read))\r
+ // Load in the users Presets from UserPresets.xml\r
+ if (File.Exists(UserPresetFile))\r
{\r
- if (strm.Length != 0)\r
+ using (FileStream strm = new FileStream(UserPresetFile, FileMode.Open, FileAccess.Read))\r
{\r
- List<Preset> list = Ser.Deserialize(strm) as List<Preset>;\r
-\r
- if (list != null)\r
- foreach (Preset preset in list)\r
- _userPresets.Add(preset);\r
+ if (strm.Length != 0)\r
+ {\r
+ List<Preset> list = Ser.Deserialize(strm) as List<Preset>;\r
+\r
+ if (list != null)\r
+ foreach (Preset preset in list)\r
+ UserPresets.Add(preset);\r
+ }\r
}\r
}\r
}\r
+ catch (Exception)\r
+ {\r
+ MessageBox.Show(\r
+ "Your User presets file appears to have been corrupted.\n" +\r
+ "Your presets will not be loaded. You may need to re-create your presets.\n\n" +\r
+ "Your user presets file has been renamed to 'user_presets.xml.old' and is located in:\n " +\r
+ Path.GetDirectoryName(UserPresetFile) + "\n" +\r
+ "You may be able to recover some presets if you know the XML language.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+\r
+ // Recover from Error.\r
+ if (File.Exists(UserPresetFile))\r
+ {\r
+ string disabledFile = UserPresetFile + ".old";\r
+ if (File.Exists(disabledFile))\r
+ File.Delete(disabledFile);\r
+ File.Move(UserPresetFile, disabledFile);\r
+ }\r
+\r
+ }\r
}\r
\r
/// <summary>\r
string category = string.Empty;\r
TreeNode rootNode = null;\r
\r
- if (_presets.Count != 0) // Built In Presets\r
+ if (Presets.Count != 0) // Built In Presets\r
{\r
- \r
- foreach (Preset preset in _presets)\r
+\r
+ foreach (Preset preset in Presets)\r
{\r
if (preset.Category != category)\r
{\r
}\r
\r
rootNode = null; category = null;\r
- foreach (Preset preset in _userPresets) // User Presets\r
+ foreach (Preset preset in UserPresets) // User Presets\r
{\r
if (preset.Category != category && preset.Category != null)\r
{\r
{\r
try\r
{\r
- using (FileStream strm = new FileStream(_hbPresetFile, FileMode.Create, FileAccess.Write))\r
+ using (FileStream strm = new FileStream(HbPresetFile, FileMode.Create, FileAccess.Write))\r
{\r
- Ser.Serialize(strm, _presets);\r
+ Ser.Serialize(strm, Presets);\r
strm.Close();\r
strm.Dispose();\r
}\r
\r
- using (FileStream strm = new FileStream(_userPresetFile, FileMode.Create, FileAccess.Write))\r
+ using (FileStream strm = new FileStream(UserPresetFile, FileMode.Create, FileAccess.Write))\r
{\r
- Ser.Serialize(strm, _userPresets);\r
+ Ser.Serialize(strm, UserPresets);\r
strm.Close();\r
strm.Dispose();\r
}\r
}\r
\r
/// <summary>\r
- /// Check if the preset "name" exists in either _presets or _userPresets lists.\r
+ /// Check if the preset "name" exists in either Presets or UserPresets lists.\r
/// </summary>\r
/// <param name="name"></param>\r
/// <returns></returns>\r
return true;\r
\r
// Built In Presets\r
- foreach (Preset item in _presets)\r
+ foreach (Preset item in Presets)\r
{\r
if (item.Name == name)\r
return true;\r
}\r
\r
// User Presets\r
- foreach (Preset item in _userPresets)\r
+ foreach (Preset item in UserPresets)\r
{\r
if (item.Name == name)\r
return true;\r
}\r
\r
/// <summary>\r
- /// Check if the user preset "name" exists in _userPresets list.\r
+ /// Check if the user preset "name" exists in UserPresets list.\r
/// </summary>\r
/// <param name="name"></param>\r
/// <returns></returns>\r
return false;\r
\r
// User Presets\r
- foreach (Preset item in _userPresets)\r
+ foreach (Preset item in UserPresets)\r
{\r
if (item.Name == name)\r
return true;\r
}\r
\r
/// <summary>\r
- /// Check if the built in _presets stored are not out of date.\r
+ /// Check if the built in Presets stored are not out of date.\r
/// Update them if they are.\r
/// </summary>\r
/// <returns></returns>\r
public Boolean CheckIfPresetsAreOutOfDate()\r
{\r
LoadPresetData();\r
- // Update built-in _presets if the built-in _presets belong to an older version.\r
- if (_presets.Count != 0)\r
- if (_presets[0].Version != Properties.Settings.Default.hb_version)\r
+ // Update built-in Presets if the built-in Presets belong to an older version.\r
+ if (Presets.Count != 0)\r
+ if (Presets[0].Version != Properties.Settings.Default.hb_version)\r
{\r
UpdateBuiltInPresets();\r
return true;\r