3 This file is part of the HandBrake source code.
\r
4 Homepage: <http://handbrake.fr/>.
\r
5 It may be used under the terms of the GNU General Public License. */
\r
11 namespace Handbrake.Presets
\r
15 // WARNING This file is not complete!!!!!!
\r
18 // 1. Hookup all the widgets in the GUI so it exports real values.
\r
19 // 2. Check for any missing key/value pairs
\r
20 // 3. Test with MacGui / Cleanup code / Retest
\r
22 private XmlTextWriter writer;
\r
24 public void ExportMacPreset(string path)
\r
26 writer = new XmlTextWriter("C:\\test.xml", Encoding.UTF8);
\r
29 writer.WriteStartDocument();
\r
30 writer.WriteDocType("plist", "-//Apple//DTD PLIST 1.0//EN", @"http://www.apple.com/DTDs/PropertyList-1.0.dtd", null);
\r
32 writer.WriteStartElement("plist");
\r
33 writer.WriteStartElement("array");
\r
35 // Add New Preset Here. Can write multiple presets here if required in future.
\r
39 writer.WriteEndElement();
\r
40 writer.WriteEndElement();
\r
42 writer.WriteEndDocument();
\r
48 // Primary function for writing dict.
\r
49 private void WritePreset()
\r
51 writer.WriteStartElement("dict");
\r
52 AudioListArrayDict();
\r
53 AddEncodeSettings();
\r
55 writer.WriteEndElement();
\r
58 // Add all the encode settings to the preset
\r
59 private void AddEncodeSettings()
\r
61 AddEncodeElement("ChapterMarkers", "integer", "");
\r
62 AddEncodeElement("Default", "integer", "");
\r
63 AddEncodeElement("FileFormat", "String", "");
\r
64 AddBooleanElement("Folder", true);
\r
65 AddEncodeElement("Mp4HttpOptimize", "integer", "");
\r
66 AddEncodeElement("Mp4LargeFile", "integer", "");
\r
67 AddEncodeElement("Mp4iPodCompatible", "integer", "");
\r
68 AddEncodeElement("PictureAutoCrop", "integer", "");
\r
69 AddEncodeElement("PictureBottomCrop", "integer", "");
\r
70 AddEncodeElement("PictureDeblock", "integer", "");
\r
71 AddEncodeElement("PictureDecomb", "integer", "");
\r
72 AddEncodeElement("PictureDecombCustom", "string", "");
\r
73 AddEncodeElement("PictureDecombDeinterlace", "integer", "");
\r
74 AddEncodeElement("PictureDeinterlace", "integer", "");
\r
75 AddEncodeElement("PictureDeinterlaceCustom", "string", "");
\r
76 AddEncodeElement("PictureDenoise", "integer", "");
\r
77 AddEncodeElement("PictureDenoiseCustom", "string", "");
\r
78 AddEncodeElement("PictureDetelecine", "integer", "");
\r
79 AddEncodeElement("PictureDetelecineCustom", "string", "");
\r
80 AddEncodeElement("PictureHeight", "integer", "");
\r
81 AddEncodeElement("PictureKeepRatio", "integer", "");
\r
82 AddEncodeElement("PictureLeftCrop", "integer", "");
\r
83 AddEncodeElement("PicturePAR", "integer", "");
\r
84 AddEncodeElement("PictureRightCrop", "integer", "");
\r
85 AddEncodeElement("PictureTopCrop", "integer", "");
\r
86 AddEncodeElement("PictureWidth", "integer", "");
\r
87 AddEncodeElement("PresetBuildNumber", "string", "");
\r
88 AddEncodeElement("PresetDescription", "string", "");
\r
89 AddEncodeElement("PresetName", "string", "");
\r
90 AddEncodeElement("Type", "integer", "");
\r
91 AddEncodeElement("UsesMaxPictureSettings", "integer", "");
\r
92 AddEncodeElement("UsesPictureFilters", "integer", "");
\r
93 AddEncodeElement("UsesPictureSettings", "integer", "");
\r
94 AddEncodeElement("VideoAvgBitrate", "string", "");
\r
95 AddEncodeElement("VideoEncoder", "string", "");
\r
96 AddEncodeElement("VideoFramerate", "string", "");
\r
97 AddEncodeElement("VideoGrayScale", "integer", "");
\r
98 AddEncodeElement("VideoQualitySlider", "real", "");
\r
99 AddEncodeElement("VideoQualityType", "integer", "");
\r
100 AddEncodeElement("VideoTargetSize", "string", "");
\r
101 AddEncodeElement("VideoTurboTwoPass", "integer", "");
\r
102 AddEncodeElement("VideoTwoPass", "integer", "");
\r
103 AddEncodeElement("x264Option", "string", "");
\r
106 // Add Preset setting + value
\r
107 private void AddBooleanElement(string keyName, Boolean value)
\r
109 writer.WriteStartElement("key");
\r
110 writer.WriteString(keyName);
\r
111 writer.WriteEndElement();
\r
114 writer.WriteStartElement("true");
\r
115 writer.WriteEndElement();
\r
119 writer.WriteStartElement("false");
\r
120 writer.WriteEndElement();
\r
123 private void AddEncodeElement(string keyName, string type, string value)
\r
125 writer.WriteElementString("key", keyName);
\r
126 writer.WriteElementString(type, value);
\r
129 // Add List of audio tracks
\r
130 private void AudioListArrayDict()
\r
132 writer.WriteStartElement("key");
\r
133 writer.WriteString("AudioList");
\r
134 writer.WriteEndElement();
\r
136 writer.WriteStartElement("array");
\r
139 writer.WriteEndElement();
\r
141 private void AddAudioItem()
\r
144 string encoder = "AC3 Passthru";
\r
145 string mixdown = "AC3 Passthru";
\r
146 string sample = "Auto";
\r
149 string desc = "English (AC3) (5.1 ch)";
\r
151 writer.WriteStartElement("dict");
\r
153 writer.WriteElementString("key", "AudioBitrate");
\r
154 writer.WriteElementString("string", bitrate.ToString());
\r
156 writer.WriteElementString("key", "AudioEncoder");
\r
157 writer.WriteElementString("string", encoder);
\r
159 writer.WriteElementString("key", "AudioMixdown");
\r
160 writer.WriteElementString("string", mixdown);
\r
162 writer.WriteElementString("key", "AudioSamplerate");
\r
163 writer.WriteElementString("string", sample);
\r
165 writer.WriteElementString("key", "AudioTrack");
\r
166 writer.WriteElementString("integer", track.ToString());
\r
168 writer.WriteElementString("key", "AudioTrackDRCSlider");
\r
169 writer.WriteElementString("real", drc.ToString());
\r
171 writer.WriteElementString("key", "AudioTrackDescription");
\r
172 writer.WriteElementString("string", desc);
\r
174 writer.WriteEndElement();
\r