-/* Export.cs $\r
- \r
- This file is part of the HandBrake source code.\r
- Homepage: <http://handbrake.fr/>.\r
- It may be used under the terms of the GNU General Public License. */\r
-\r
-using System;\r
-using System.Text;\r
-using System.Xml;\r
-\r
-namespace Handbrake.Presets\r
-{\r
- class Export\r
- {\r
- // WARNING This file is not complete!!!!!!\r
-\r
- // TODO \r
- // 1. Hookup all the widgets in the GUI so it exports real values.\r
- // 2. Check for any missing key/value pairs\r
- // 3. Test with MacGui / Cleanup code / Retest\r
-\r
- private XmlTextWriter writer;\r
-\r
- public void ExportMacPreset(string path)\r
- {\r
- writer = new XmlTextWriter("C:\\test.xml", Encoding.UTF8);\r
-\r
- // Header\r
- writer.WriteStartDocument();\r
- writer.WriteDocType("plist", "-//Apple//DTD PLIST 1.0//EN", @"http://www.apple.com/DTDs/PropertyList-1.0.dtd", null);\r
-\r
- writer.WriteStartElement("plist");\r
- writer.WriteStartElement("array");\r
- \r
- // Add New Preset Here. Can write multiple presets here if required in future.\r
- WritePreset();\r
-\r
- // Footer\r
- writer.WriteEndElement();\r
- writer.WriteEndElement();\r
-\r
- writer.WriteEndDocument();\r
-\r
- // Closeout\r
- writer.Close();\r
- }\r
-\r
- // Primary function for writing dict.\r
- private void WritePreset()\r
- {\r
- writer.WriteStartElement("dict");\r
- AudioListArrayDict();\r
- AddEncodeSettings();\r
-\r
- writer.WriteEndElement();\r
- }\r
-\r
- // Add all the encode settings to the preset\r
- private void AddEncodeSettings()\r
- {\r
- AddEncodeElement("ChapterMarkers", "integer", "");\r
- AddEncodeElement("Default", "integer", "");\r
- AddEncodeElement("FileFormat", "String", "");\r
- AddBooleanElement("Folder", true);\r
- AddEncodeElement("Mp4HttpOptimize", "integer", "");\r
- AddEncodeElement("Mp4LargeFile", "integer", "");\r
- AddEncodeElement("Mp4iPodCompatible", "integer", "");\r
- AddEncodeElement("PictureAutoCrop", "integer", "");\r
- AddEncodeElement("PictureBottomCrop", "integer", "");\r
- AddEncodeElement("PictureDeblock", "integer", "");\r
- AddEncodeElement("PictureDecomb", "integer", "");\r
- AddEncodeElement("PictureDecombCustom", "string", "");\r
- AddEncodeElement("PictureDecombDeinterlace", "integer", "");\r
- AddEncodeElement("PictureDeinterlace", "integer", "");\r
- AddEncodeElement("PictureDeinterlaceCustom", "string", "");\r
- AddEncodeElement("PictureDenoise", "integer", "");\r
- AddEncodeElement("PictureDenoiseCustom", "string", "");\r
- AddEncodeElement("PictureDetelecine", "integer", "");\r
- AddEncodeElement("PictureDetelecineCustom", "string", "");\r
- AddEncodeElement("PictureHeight", "integer", "");\r
- AddEncodeElement("PictureKeepRatio", "integer", "");\r
- AddEncodeElement("PictureLeftCrop", "integer", "");\r
- AddEncodeElement("PicturePAR", "integer", "");\r
- AddEncodeElement("PictureRightCrop", "integer", "");\r
- AddEncodeElement("PictureTopCrop", "integer", "");\r
- AddEncodeElement("PictureWidth", "integer", "");\r
- AddEncodeElement("PresetBuildNumber", "string", "");\r
- AddEncodeElement("PresetDescription", "string", "");\r
- AddEncodeElement("PresetName", "string", "");\r
- AddEncodeElement("Type", "integer", "");\r
- AddEncodeElement("UsesMaxPictureSettings", "integer", "");\r
- AddEncodeElement("UsesPictureFilters", "integer", "");\r
- AddEncodeElement("UsesPictureSettings", "integer", "");\r
- AddEncodeElement("VideoAvgBitrate", "string", "");\r
- AddEncodeElement("VideoEncoder", "string", "");\r
- AddEncodeElement("VideoFramerate", "string", "");\r
- AddEncodeElement("VideoGrayScale", "integer", "");\r
- AddEncodeElement("VideoQualitySlider", "real", "");\r
- AddEncodeElement("VideoQualityType", "integer", "");\r
- AddEncodeElement("VideoTargetSize", "string", "");\r
- AddEncodeElement("VideoTurboTwoPass", "integer", "");\r
- AddEncodeElement("VideoTwoPass", "integer", "");\r
- AddEncodeElement("x264Option", "string", "");\r
- }\r
-\r
- // Add Preset setting + value\r
- private void AddBooleanElement(string keyName, Boolean value)\r
- {\r
- writer.WriteStartElement("key");\r
- writer.WriteString(keyName);\r
- writer.WriteEndElement();\r
- if (value)\r
- {\r
- writer.WriteStartElement("true");\r
- writer.WriteEndElement();\r
- }\r
- else\r
- {\r
- writer.WriteStartElement("false");\r
- writer.WriteEndElement();\r
- }\r
- }\r
- private void AddEncodeElement(string keyName, string type, string value)\r
- {\r
- writer.WriteElementString("key", keyName);\r
- writer.WriteElementString(type, value);\r
- }\r
-\r
- // Add List of audio tracks\r
- private void AudioListArrayDict()\r
- {\r
- writer.WriteStartElement("key");\r
- writer.WriteString("AudioList");\r
- writer.WriteEndElement();\r
-\r
- writer.WriteStartElement("array");\r
- AddAudioItem();\r
- AddAudioItem();\r
- writer.WriteEndElement();\r
- }\r
- private void AddAudioItem()\r
- {\r
- int bitrate = 448;\r
- string encoder = "AC3 Passthru";\r
- string mixdown = "AC3 Passthru";\r
- string sample = "Auto";\r
- int track = 1;\r
- double drc = 0.0;\r
- string desc = "English (AC3) (5.1 ch)";\r
-\r
- writer.WriteStartElement("dict");\r
-\r
- writer.WriteElementString("key", "AudioBitrate");\r
- writer.WriteElementString("string", bitrate.ToString());\r
-\r
- writer.WriteElementString("key", "AudioEncoder");\r
- writer.WriteElementString("string", encoder);\r
-\r
- writer.WriteElementString("key", "AudioMixdown");\r
- writer.WriteElementString("string", mixdown);\r
-\r
- writer.WriteElementString("key", "AudioSamplerate");\r
- writer.WriteElementString("string", sample);\r
-\r
- writer.WriteElementString("key", "AudioTrack");\r
- writer.WriteElementString("integer", track.ToString());\r
-\r
- writer.WriteElementString("key", "AudioTrackDRCSlider");\r
- writer.WriteElementString("real", drc.ToString());\r
-\r
- writer.WriteElementString("key", "AudioTrackDescription");\r
- writer.WriteElementString("string", desc);\r
-\r
- writer.WriteEndElement();\r
- }\r
- }\r
-}
\ No newline at end of file