OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / frmMain / PresetLoader.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows.Forms;\r
5 using System.Drawing;\r
6 \r
7 namespace Handbrake\r
8 {\r
9     class PresetLoader\r
10     {\r
11         /// <summary>\r
12         /// This function takes in a Query which has been parsed by QueryParser and\r
13         /// set's all the GUI widgets correctly.\r
14         /// </summary>\r
15         /// <param name="mainWindow"></param>\r
16         /// <param name="presetQuery">The Parsed CLI Query</param>\r
17         /// <param name="name">Name of the preset</param>\r
18         public void presetLoader(frmMain mainWindow, Functions.QueryParser presetQuery, string name)\r
19         {\r
20             // ---------------------------\r
21             // Setup the GUI\r
22             // ---------------------------\r
23 \r
24             // Source tab\r
25             #region source\r
26             // Reset some vaules to stock first to prevent errors.\r
27             mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
28 \r
29             // Now load all the new settings onto the main window\r
30             mainWindow.drp_dvdtitle.Text = "Automatic";\r
31             mainWindow.drop_chapterStart.Text = "Auto";\r
32             mainWindow.drop_chapterFinish.Text = "Auto";\r
33 \r
34             if (presetQuery.Format != null)\r
35             {\r
36                 string destination = mainWindow.text_destination.Text;\r
37                 destination = destination.Replace(".mp4", "." + presetQuery.Format);\r
38                 destination = destination.Replace(".m4v", "." + presetQuery.Format);\r
39                 destination = destination.Replace(".avi", "." + presetQuery.Format);\r
40                 destination = destination.Replace(".mkv", "." + presetQuery.Format);\r
41                 destination = destination.Replace(".ogm", "." + presetQuery.Format);\r
42                 mainWindow.text_destination.Text = destination;\r
43             }\r
44 \r
45             #endregion\r
46 \r
47             // Destination tab\r
48             #region destination\r
49 \r
50             mainWindow.drp_videoEncoder.Text = presetQuery.VideoEncoder;\r
51 \r
52             if (presetQuery.Format != null)\r
53             {\r
54                 if (presetQuery.Format == "mp4")\r
55                     mainWindow.drop_format.SelectedIndex = 0;\r
56                 else if (presetQuery.Format == "m4v")\r
57                     mainWindow.drop_format.SelectedIndex = 1;\r
58                 else if (presetQuery.Format == "mkv")\r
59                     mainWindow.drop_format.SelectedIndex = 2;\r
60                 else if (presetQuery.Format == "avi")\r
61                     mainWindow.drop_format.SelectedIndex = 3;\r
62                 else if (presetQuery.Format == "ogm")\r
63                     mainWindow.drop_format.SelectedIndex = 4;\r
64             }\r
65 \r
66             if (presetQuery.IpodAtom == true)\r
67                 mainWindow.check_iPodAtom.CheckState = CheckState.Checked;\r
68             else\r
69                 mainWindow.check_iPodAtom.CheckState = CheckState.Unchecked;\r
70 \r
71             if (presetQuery.OptimizeMP4 == true)\r
72                 mainWindow.check_optimiseMP4.CheckState = CheckState.Checked;\r
73             else\r
74                 mainWindow.check_optimiseMP4.CheckState = CheckState.Unchecked;\r
75 \r
76             #endregion\r
77 \r
78             // Picture Settings Tab\r
79             #region Picture\r
80             mainWindow.check_autoCrop.Checked = true;\r
81             mainWindow.drp_deInterlace_option.Text = presetQuery.DeInterlace;\r
82             mainWindow.drp_deNoise.Text = presetQuery.DeNoise;\r
83 \r
84             if (presetQuery.Decomb == true)\r
85                 mainWindow.check_decomb.CheckState = CheckState.Checked;\r
86             else\r
87                 mainWindow.check_decomb.CheckState = CheckState.Unchecked;\r
88 \r
89             if (presetQuery.DeTelecine == true)\r
90                 mainWindow.check_detelecine.CheckState = CheckState.Checked;\r
91             else\r
92                 mainWindow.check_detelecine.CheckState = CheckState.Unchecked;\r
93 \r
94             if (presetQuery.DeBlock != 0)\r
95             {\r
96                 mainWindow.slider_deblock.Value = presetQuery.DeBlock;\r
97                 mainWindow.lbl_deblockVal.Text = presetQuery.DeBlock.ToString();\r
98             }\r
99             else\r
100             {\r
101                 mainWindow.slider_deblock.Value = 4;\r
102                 mainWindow.lbl_deblockVal.Text = "Off";\r
103             }\r
104 \r
105             if (presetQuery.Anamorphic == true)\r
106                 mainWindow.drp_anamorphic.SelectedIndex = 1;\r
107             else\r
108                 mainWindow.drp_anamorphic.SelectedIndex = 0;\r
109 \r
110             if (presetQuery.LooseAnamorphic == true)\r
111                 mainWindow.drp_anamorphic.SelectedIndex = 2;\r
112             else\r
113             {\r
114                 if (presetQuery.Anamorphic != true)\r
115                     mainWindow.drp_anamorphic.SelectedIndex = 0;\r
116             }\r
117 \r
118             if (presetQuery.Width != 0)\r
119                 mainWindow.text_width.Text = presetQuery.Width.ToString();\r
120             else\r
121             {\r
122                 mainWindow.text_width.Text = "";\r
123             }\r
124 \r
125             if (presetQuery.Height != 0)\r
126                 mainWindow.text_height.Text = presetQuery.Height.ToString();\r
127             else\r
128             {\r
129                 mainWindow.text_height.Text = "";\r
130             }\r
131 \r
132             #endregion\r
133 \r
134             // Video Settings Tab\r
135             #region video\r
136             mainWindow.text_bitrate.Text = presetQuery.AverageVideoBitrate;\r
137             mainWindow.text_filesize.Text = presetQuery.VideoTargetSize;\r
138             mainWindow.slider_videoQuality.Value = presetQuery.VideoQuality;\r
139             if (mainWindow.slider_videoQuality.Value != 0)\r
140             {\r
141                 int ql = presetQuery.VideoQuality;\r
142                 mainWindow.SliderValue.Text = ql.ToString() + "%";\r
143             }\r
144 \r
145             if (presetQuery.TwoPass == true)\r
146                 mainWindow.check_2PassEncode.CheckState = CheckState.Checked;\r
147             else\r
148                 mainWindow.check_2PassEncode.CheckState = CheckState.Unchecked;\r
149 \r
150             if (presetQuery.Grayscale == true)\r
151                 mainWindow.check_grayscale.CheckState = CheckState.Checked;\r
152             else\r
153                 mainWindow.check_grayscale.CheckState = CheckState.Unchecked;\r
154 \r
155             mainWindow.drp_videoFramerate.Text = presetQuery.VideoFramerate;\r
156 \r
157             if (presetQuery.TurboFirstPass == true)\r
158                 mainWindow.check_turbo.CheckState = CheckState.Checked;\r
159             else\r
160                 mainWindow.check_turbo.CheckState = CheckState.Unchecked;\r
161 \r
162             if (presetQuery.LargeMP4 == true)\r
163                 mainWindow.check_largeFile.CheckState = CheckState.Checked;\r
164             else\r
165             {\r
166                 mainWindow.check_largeFile.CheckState = CheckState.Unchecked;\r
167                 mainWindow.check_largeFile.BackColor = Color.Transparent;\r
168             }\r
169             #endregion\r
170 \r
171             // Chapter Markers Tab\r
172             #region Chapter Markers\r
173 \r
174             if (presetQuery.ChapterMarkers == true)\r
175                 mainWindow.Check_ChapterMarkers.CheckState = CheckState.Checked;\r
176             else\r
177                 mainWindow.Check_ChapterMarkers.CheckState = CheckState.Unchecked;\r
178 \r
179             #endregion\r
180 \r
181             // Audio Settings Tab\r
182             #region Audio\r
183 \r
184             // Handle Track 1\r
185             mainWindow.drp_track1Audio.Text = "Automatic";\r
186 \r
187             // Handle Track 2\r
188             if (presetQuery.AudioEncoder2 != null)  // Fix for loading in built in presets. Where 2 encoders but no tracks in the preset.\r
189             {\r
190                 mainWindow.drp_track2Audio.Enabled = true;\r
191                 mainWindow.drp_audsr_2.Enabled = true;\r
192                 mainWindow.drp_audmix_2.Enabled = true;\r
193                 mainWindow.drp_audenc_2.Enabled = true;\r
194                 mainWindow.drp_audbit_2.Enabled = true;\r
195                 mainWindow.drp_audsr_2.Text = "48";\r
196                 mainWindow.drp_track2Audio.Text = "Automatic";\r
197             }\r
198             else if (presetQuery.AudioTrack2 == "None")\r
199             {\r
200                 mainWindow.drp_track2Audio.Text = "None";\r
201                 mainWindow.drp_track2Audio.SelectedIndex = 0;\r
202                 mainWindow.drp_audsr_2.Enabled = false;\r
203                 mainWindow.drp_audmix_2.Enabled = false;\r
204                 mainWindow.drp_audenc_2.Enabled = false;\r
205                 mainWindow.drp_audbit_2.Enabled = false;\r
206             }\r
207             else\r
208             {\r
209                 mainWindow.drp_track2Audio.Text = presetQuery.AudioTrack2;\r
210                 mainWindow.drp_audsr_2.Enabled = true;\r
211                 mainWindow.drp_audmix_2.Enabled = true;\r
212                 mainWindow.drp_audenc_2.Enabled = true;\r
213                 mainWindow.drp_audbit_2.Enabled = true;\r
214             }\r
215 \r
216             // Handle Track 3\r
217             if (presetQuery.AudioTrack3 == "None")\r
218             {\r
219                 mainWindow.drp_track3Audio.SelectedIndex = 0;\r
220                 mainWindow.drp_audsr_3.Enabled = false;\r
221                 mainWindow.drp_audmix_3.Enabled = false;\r
222                 mainWindow.drp_audenc_3.Enabled = false;\r
223                 mainWindow.drp_audbit_3.Enabled = false;\r
224                 mainWindow.trackBar3.Enabled = false;\r
225 \r
226                 mainWindow.drp_track3Audio.Text = "None";\r
227                 mainWindow.drp_audsr_3.Text = "";\r
228                 mainWindow.drp_audmix_3.Text = "Automatic";\r
229                 mainWindow.drp_audenc_3.Text = "";\r
230                 mainWindow.drp_audbit_3.Text = "";\r
231                 mainWindow.trackBar3.Value = 0;\r
232 \r
233             }\r
234             else\r
235             {\r
236                 mainWindow.drp_track3Audio.Text = presetQuery.AudioTrack3;\r
237                 mainWindow.drp_audsr_3.Enabled = true;\r
238                 mainWindow.drp_audmix_3.Enabled = true;\r
239                 mainWindow.drp_audenc_3.Enabled = true;\r
240                 mainWindow.drp_audbit_3.Enabled = true;\r
241                 mainWindow.trackBar3.Enabled = true;\r
242             }\r
243 \r
244             // Handle Track 4\r
245             if (presetQuery.AudioTrack4 == "None")\r
246             {\r
247                 mainWindow.drp_track4Audio.SelectedIndex = 0;\r
248                 mainWindow.drp_audsr_4.Enabled = false;\r
249                 mainWindow.drp_audmix_4.Enabled = false;\r
250                 mainWindow.drp_audenc_4.Enabled = false;\r
251                 mainWindow.drp_audbit_4.Enabled = false;\r
252                 mainWindow.trackBar4.Enabled = false;\r
253 \r
254                 mainWindow.drp_track4Audio.Text = "None";\r
255                 mainWindow.drp_audsr_4.Text = "";\r
256                 mainWindow.drp_audmix_4.Text = "Automatic";\r
257                 mainWindow.drp_audenc_4.Text = "";\r
258                 mainWindow.drp_audbit_4.Text = "";\r
259                 mainWindow.trackBar4.Value = 0;\r
260             }\r
261             else\r
262             {\r
263                 mainWindow.drp_track4Audio.Text = presetQuery.AudioTrack4;\r
264                 mainWindow.drp_audsr_4.Enabled = true;\r
265                 mainWindow.drp_audmix_4.Enabled = true;\r
266                 mainWindow.drp_audenc_4.Enabled = true;\r
267                 mainWindow.drp_audbit_4.Enabled = true;\r
268                 mainWindow.trackBar4.Enabled = true;\r
269             }\r
270 \r
271             // Now lets start setting stuff\r
272             if (presetQuery.AudioEncoder1 != null)\r
273                 mainWindow.drp_audenc_1.Text = presetQuery.AudioEncoder1;\r
274             mainWindow.drp_audenc_2.Text = presetQuery.AudioEncoder2;\r
275             mainWindow.drp_audenc_3.Text = presetQuery.AudioEncoder3;\r
276             mainWindow.drp_audenc_4.Text = presetQuery.AudioEncoder4;\r
277 \r
278             mainWindow.drp_audmix_1.Text = presetQuery.AudioTrackMix1;\r
279             mainWindow.drp_audmix_2.Text = presetQuery.AudioTrackMix2;\r
280             mainWindow.drp_audmix_3.Text = presetQuery.AudioTrackMix3;\r
281             mainWindow.drp_audmix_4.Text = presetQuery.AudioTrackMix4;\r
282 \r
283             if (presetQuery.AudioBitrate1 != null)\r
284                 mainWindow.drp_audbit_1.Text = presetQuery.AudioBitrate1;\r
285             mainWindow.drp_audbit_2.Text = presetQuery.AudioBitrate2;\r
286             mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
287             mainWindow.drp_audbit_3.Text = presetQuery.AudioBitrate4;\r
288 \r
289             if (presetQuery.AudioSamplerate1 != null)\r
290                 mainWindow.drp_audsr_1.Text = presetQuery.AudioSamplerate1;\r
291             mainWindow.drp_audsr_2.Text = presetQuery.AudioSamplerate2;\r
292             mainWindow.drp_audsr_3.Text = presetQuery.AudioSamplerate3;\r
293             mainWindow.drp_audsr_4.Text = presetQuery.AudioSamplerate4;\r
294 \r
295             // Dynamic Range Compression (Should be a float but we use double for ease)\r
296             double value = 0;\r
297             double actualValue = 0;\r
298 \r
299             value = presetQuery.DRC1;\r
300             if (value > 0)\r
301                 value = value - 10;\r
302             mainWindow.trackBar1.Value = int.Parse(value.ToString());\r
303             actualValue = presetQuery.DRC1 / 10;\r
304             mainWindow.lbl_drc1.Text = actualValue.ToString();\r
305 \r
306             value = presetQuery.DRC2;\r
307             if (value > 0)\r
308                 value = value - 10;\r
309             mainWindow.trackBar2.Value = int.Parse(value.ToString());\r
310             actualValue = presetQuery.DRC2 / 10;\r
311             mainWindow.lbl_drc2.Text = actualValue.ToString();\r
312 \r
313             value = presetQuery.DRC3;\r
314             if (value > 0)\r
315                 value = value - 10;\r
316             mainWindow.trackBar3.Value = int.Parse(value.ToString());\r
317             actualValue = presetQuery.DRC3 / 10;\r
318             mainWindow.lbl_drc3.Text = actualValue.ToString();\r
319 \r
320             value = presetQuery.DRC4;\r
321             if (value > 0)\r
322                 value = value - 10;\r
323             mainWindow.trackBar4.Value = int.Parse(value.ToString());\r
324             actualValue = presetQuery.DRC4 / 10;\r
325             mainWindow.lbl_drc4.Text = actualValue.ToString();\r
326 \r
327 \r
328             // Subtitle Stuff\r
329             mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
330 \r
331             if (presetQuery.ForcedSubtitles == true)\r
332             {\r
333                 mainWindow.check_forced.CheckState = CheckState.Checked;\r
334                 mainWindow.check_forced.Enabled = true;\r
335             }\r
336             else\r
337                 mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
338 \r
339 \r
340             #endregion\r
341 \r
342             // H264 Tab & Preset Name\r
343             #region other\r
344             mainWindow.rtf_x264Query.Text = presetQuery.H264Query;\r
345 \r
346             // Set the preset name\r
347             mainWindow.groupBox_output.Text = "Output Settings (Preset: " + name + ")";\r
348             #endregion\r
349         }\r
350     }\r
351 }\r