OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmMain / PresetLoader.cs
1 using System;\r
2 using System.Windows.Forms;\r
3 using System.Drawing;\r
4 \r
5 namespace Handbrake\r
6 {\r
7     class PresetLoader\r
8     {\r
9         /// <summary>\r
10         /// This function takes in a Query which has been parsed by QueryParser and\r
11         /// set's all the GUI widgets correctly.\r
12         /// </summary>\r
13         /// <param name="mainWindow"></param>\r
14         /// <param name="presetQuery">The Parsed CLI Query</param>\r
15         /// <param name="name">Name of the preset</param>\r
16         public void presetLoader(frmMain mainWindow, Functions.QueryParser presetQuery, string name, Boolean pictureSettings)\r
17         {\r
18             // ---------------------------\r
19             // Setup the GUI\r
20             // ---------------------------\r
21 \r
22             // Source tab\r
23             #region source\r
24             // Reset some vaules to stock first to prevent errors.\r
25             mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
26 \r
27             // Now load all the new settings onto the main window\r
28             if (presetQuery.Format != null)\r
29             {\r
30                 string destination = mainWindow.text_destination.Text;\r
31                 destination = destination.Replace(".mp4", "." + presetQuery.Format);\r
32                 destination = destination.Replace(".m4v", "." + presetQuery.Format);\r
33                 destination = destination.Replace(".avi", "." + presetQuery.Format);\r
34                 destination = destination.Replace(".mkv", "." + presetQuery.Format);\r
35                 destination = destination.Replace(".ogm", "." + presetQuery.Format);\r
36                 mainWindow.text_destination.Text = destination;\r
37             }\r
38 \r
39             #endregion\r
40 \r
41             // Destination tab\r
42             #region destination\r
43 \r
44             mainWindow.drp_videoEncoder.Text = presetQuery.VideoEncoder;\r
45 \r
46             if (presetQuery.Format != null)\r
47             {\r
48                 if (presetQuery.Format == "mp4")\r
49                     mainWindow.drop_format.SelectedIndex = 0;\r
50                 else if (presetQuery.Format == "m4v")\r
51                     mainWindow.drop_format.SelectedIndex = 1;\r
52                 else if (presetQuery.Format == "mkv")\r
53                     mainWindow.drop_format.SelectedIndex = 2;\r
54                 else if (presetQuery.Format == "avi")\r
55                     mainWindow.drop_format.SelectedIndex = 3;\r
56                 else if (presetQuery.Format == "ogm")\r
57                     mainWindow.drop_format.SelectedIndex = 4;\r
58 \r
59                 if (presetQuery.ChapterMarkers == true && presetQuery.Format == "mp4")\r
60                     mainWindow.drop_format.SelectedIndex = 1;\r
61             }\r
62 \r
63             if (presetQuery.IpodAtom == true)\r
64                 mainWindow.check_iPodAtom.CheckState = CheckState.Checked;\r
65             else\r
66                 mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
67 \r
68             if (presetQuery.OptimizeMP4 == true)\r
69                 mainWindow.check_optimiseMP4.CheckState = CheckState.Checked;\r
70             else\r
71                 mainWindow.check_optimiseMP4.CheckState = CheckState.Unchecked;\r
72 \r
73             #endregion\r
74 \r
75             // Picture Settings Tab\r
76             #region Picture\r
77             mainWindow.check_autoCrop.Checked = true;\r
78             if (presetQuery.CropBottom == "0" && presetQuery.CropTop == "0")\r
79                 if (presetQuery.CropLeft == "0" && presetQuery.CropRight == "0")\r
80                     mainWindow.check_customCrop.Checked = true;\r
81 \r
82             mainWindow.text_width.Text = "";\r
83             mainWindow.text_height.Text = "";\r
84 \r
85             if (pictureSettings == true)\r
86             {\r
87                 if (presetQuery.CropTop != null)\r
88                 {\r
89                     int top, bottom, left, right;\r
90                     int.TryParse(presetQuery.CropTop, out top);\r
91                     int.TryParse(presetQuery.CropBottom, out bottom);\r
92                     int.TryParse(presetQuery.CropLeft, out left);\r
93                     int.TryParse(presetQuery.CropRight, out right);\r
94 \r
95                     mainWindow.check_customCrop.Checked = true;\r
96                     mainWindow.text_top.Value = top;\r
97                     mainWindow.text_bottom.Value = bottom;\r
98                     mainWindow.text_left.Value = left;\r
99                     mainWindow.text_right.Value = right;\r
100                 }\r
101 \r
102                 if (presetQuery.Width != 0)\r
103                     mainWindow.text_width.Text = presetQuery.Width.ToString();\r
104 \r
105                 if (presetQuery.Height != 0)\r
106                     mainWindow.text_height.Text = presetQuery.Height.ToString();\r
107             }\r
108 \r
109             mainWindow.drp_deInterlace_option.Text = presetQuery.DeInterlace;\r
110             mainWindow.drp_deNoise.Text = presetQuery.DeNoise;\r
111 \r
112             if (presetQuery.Decomb == true)\r
113                 mainWindow.check_decomb.CheckState = CheckState.Checked;\r
114             else\r
115                 mainWindow.check_decomb.CheckState = CheckState.Unchecked;\r
116 \r
117             if (presetQuery.DeTelecine == true)\r
118                 mainWindow.check_detelecine.CheckState = CheckState.Checked;\r
119             else\r
120                 mainWindow.check_detelecine.CheckState = CheckState.Unchecked;\r
121 \r
122             if (presetQuery.DeBlock != 0)\r
123             {\r
124                 mainWindow.slider_deblock.Value = presetQuery.DeBlock;\r
125                 mainWindow.lbl_deblockVal.Text = presetQuery.DeBlock.ToString();\r
126             }\r
127             else\r
128             {\r
129                 mainWindow.slider_deblock.Value = 4;\r
130                 mainWindow.lbl_deblockVal.Text = "Off";\r
131             }\r
132 \r
133             if (presetQuery.Anamorphic == true)\r
134                 mainWindow.drp_anamorphic.SelectedIndex = 1;\r
135             else\r
136                 mainWindow.drp_anamorphic.SelectedIndex = 0;\r
137 \r
138             if (presetQuery.LooseAnamorphic == true)\r
139                 mainWindow.drp_anamorphic.SelectedIndex = 2;\r
140             else\r
141             {\r
142                 if (presetQuery.Anamorphic != true)\r
143                     mainWindow.drp_anamorphic.SelectedIndex = 0;\r
144             }\r
145 \r
146             // Set the public max width and max height varibles in frmMain\r
147             // These are used by the query generator to determine if it should use -X or -w  / -Y or -h\r
148             if (presetQuery.MaxWidth != 0)\r
149             {\r
150                 mainWindow.text_width.Text = presetQuery.MaxWidth.ToString();\r
151                 mainWindow.maxWidth = presetQuery.MaxWidth;\r
152             }\r
153 \r
154             if (presetQuery.MaxHeight != 0)\r
155             {\r
156                 mainWindow.text_height.Text = presetQuery.MaxHeight.ToString();\r
157                 mainWindow.maxHeight = presetQuery.MaxHeight;\r
158             }\r
159 \r
160 \r
161             #endregion\r
162 \r
163             // Video Settings Tab\r
164             #region video\r
165             mainWindow.text_bitrate.Text = presetQuery.AverageVideoBitrate;\r
166             mainWindow.text_filesize.Text = presetQuery.VideoTargetSize;\r
167             mainWindow.slider_videoQuality.Value = presetQuery.VideoQuality;\r
168             if (mainWindow.slider_videoQuality.Value != 0)\r
169             {\r
170                 int ql = presetQuery.VideoQuality;\r
171                 mainWindow.SliderValue.Text = ql.ToString() + "%";\r
172             }\r
173 \r
174             if (presetQuery.TwoPass == true)\r
175                 mainWindow.check_2PassEncode.CheckState = CheckState.Checked;\r
176             else\r
177                 mainWindow.check_2PassEncode.CheckState = CheckState.Unchecked;\r
178 \r
179             if (presetQuery.Grayscale == true)\r
180                 mainWindow.check_grayscale.CheckState = CheckState.Checked;\r
181             else\r
182                 mainWindow.check_grayscale.CheckState = CheckState.Unchecked;\r
183 \r
184             mainWindow.drp_videoFramerate.Text = presetQuery.VideoFramerate;\r
185 \r
186             if (presetQuery.TurboFirstPass == true)\r
187                 mainWindow.check_turbo.CheckState = CheckState.Checked;\r
188             else\r
189                 mainWindow.check_turbo.CheckState = CheckState.Unchecked;\r
190 \r
191             if (presetQuery.LargeMP4 == true)\r
192                 mainWindow.check_largeFile.CheckState = CheckState.Checked;\r
193             else\r
194             {\r
195                 mainWindow.check_largeFile.CheckState = CheckState.Unchecked;\r
196                 mainWindow.check_largeFile.BackColor = Color.Transparent;\r
197             }\r
198             #endregion\r
199 \r
200             // Chapter Markers Tab\r
201             #region Chapter Markers\r
202 \r
203             if (presetQuery.ChapterMarkers == true)\r
204             {\r
205                 mainWindow.Check_ChapterMarkers.CheckState = CheckState.Checked;\r
206                 mainWindow.Check_ChapterMarkers.Enabled = true;\r
207             }\r
208             else\r
209                 mainWindow.Check_ChapterMarkers.CheckState = CheckState.Unchecked;\r
210 \r
211             #endregion\r
212 \r
213             // Audio Settings Tab\r
214             #region Audio\r
215             // Clear the audio listing\r
216             mainWindow.lv_audioList.Items.Clear();\r
217 \r
218             // Create a new row for the Audio list based on the currently selected items in the dropdown.\r
219             ListViewItem newTrack;\r
220             if (presetQuery.AudioTrack1 != "None")\r
221             {\r
222                 newTrack = new ListViewItem("Automatic");\r
223                 newTrack.SubItems.Add(presetQuery.AudioEncoder1);\r
224                 newTrack.SubItems.Add(presetQuery.AudioTrackMix1);\r
225                 newTrack.SubItems.Add(presetQuery.AudioSamplerate1);\r
226                 newTrack.SubItems.Add(presetQuery.AudioBitrate1);\r
227                 newTrack.SubItems.Add(presetQuery.DRC1.ToString());\r
228                 mainWindow.lv_audioList.Items.Add(newTrack);\r
229             }\r
230 \r
231             if (presetQuery.AudioTrack2 != "None")\r
232             {\r
233                 newTrack = new ListViewItem("Automatic");\r
234                 newTrack.SubItems.Add(presetQuery.AudioEncoder2);\r
235                 newTrack.SubItems.Add(presetQuery.AudioTrackMix2);\r
236                 newTrack.SubItems.Add(presetQuery.AudioSamplerate2);\r
237                 newTrack.SubItems.Add(presetQuery.AudioBitrate2);\r
238                 newTrack.SubItems.Add(presetQuery.DRC2.ToString());\r
239                 mainWindow.lv_audioList.Items.Add(newTrack);\r
240             }\r
241 \r
242             if (presetQuery.AudioTrack3 != "None")\r
243             {\r
244                 newTrack = new ListViewItem("Automatic");\r
245                 newTrack.SubItems.Add(presetQuery.AudioEncoder3);\r
246                 newTrack.SubItems.Add(presetQuery.AudioTrackMix3);\r
247                 newTrack.SubItems.Add(presetQuery.AudioSamplerate3);\r
248                 newTrack.SubItems.Add(presetQuery.AudioBitrate3);\r
249                 newTrack.SubItems.Add(presetQuery.DRC3.ToString());\r
250                 mainWindow.lv_audioList.Items.Add(newTrack);\r
251             }\r
252 \r
253             if (presetQuery.AudioTrack4 != "None")\r
254             {\r
255                 newTrack = new ListViewItem("Automatic");\r
256                 newTrack.SubItems.Add(presetQuery.AudioEncoder4);\r
257                 newTrack.SubItems.Add(presetQuery.AudioTrackMix4);\r
258                 newTrack.SubItems.Add(presetQuery.AudioSamplerate4);\r
259                 newTrack.SubItems.Add(presetQuery.AudioBitrate4);\r
260                 newTrack.SubItems.Add(presetQuery.DRC4.ToString());\r
261                 mainWindow.lv_audioList.Items.Add(newTrack);\r
262             }\r
263 \r
264             // Subtitle Stuff\r
265             mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
266 \r
267             if (presetQuery.ForcedSubtitles == true)\r
268             {\r
269                 mainWindow.check_forced.CheckState = CheckState.Checked;\r
270                 mainWindow.check_forced.Enabled = true;\r
271             }\r
272             else\r
273                 mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
274 \r
275             #endregion\r
276 \r
277             // H264 Tab & Preset Name\r
278             #region other\r
279             mainWindow.rtf_x264Query.Text = presetQuery.H264Query;\r
280 \r
281             // Set the preset name\r
282             mainWindow.groupBox_output.Text = "Output Settings (Preset: " + name + ")";\r
283             #endregion\r
284         }\r
285     }\r
286 }