OSDN Git Service

MacGui: Remove Target Size as a rate control option as it doesn't really work correct...
[handbrake-jp/handbrake-jp-git.git] / win / C# / Controls / Filters.cs
1 /*  Filters.cs $\r
2     This file is part of the HandBrake source code.\r
3     Homepage: <http://handbrake.fr>.\r
4     It may be used under the terms of the GNU General Public License. */\r
5 \r
6 namespace Handbrake.Controls\r
7 {\r
8     using System;\r
9     using System.Windows.Forms;\r
10 \r
11     using HandBrake.ApplicationServices.Model.Encoding;\r
12 \r
13     /// <summary>\r
14     /// The Filters Panel\r
15     /// </summary>\r
16     public partial class Filters : UserControl\r
17     {\r
18         /// <summary>\r
19         /// The Filter settings have changed\r
20         /// </summary>\r
21         public event EventHandler FilterSettingsChanged;\r
22 \r
23         /// <summary>\r
24         /// Initializes a new instance of the <see cref="Filters"/> class. \r
25         /// Creates a new instance of Filters\r
26         /// </summary>\r
27         public Filters()\r
28         {\r
29             InitializeComponent();\r
30             drop_decomb.SelectedIndex = 0;\r
31             drop_deinterlace.SelectedIndex = 0;\r
32             drop_denoise.SelectedIndex = 0;\r
33             drop_detelecine.SelectedIndex = 0;\r
34         }\r
35 \r
36         /// <summary>\r
37         /// Gets the CLI query for the query generator.\r
38         /// </summary>\r
39         public string GetCliQuery\r
40         {\r
41             get\r
42             {\r
43                 string query = string.Empty;\r
44 \r
45                 switch (drop_detelecine.Text) // DeTelecine\r
46                 {\r
47                     case "Off":\r
48                         query += string.Empty;\r
49                         break;\r
50                     case "Default":\r
51                         query += " --detelecine";\r
52                         break;\r
53                     case "Custom":\r
54                         query += " --detelecine=\"" + text_customDT.Text + "\"";\r
55                         break;\r
56                     default:\r
57                         query += string.Empty;\r
58                         break;\r
59                 }\r
60 \r
61                 switch (drop_decomb.Text) // Decomb\r
62                 {\r
63                     case "Off":\r
64                         query += string.Empty;\r
65                         break;\r
66                     case "Default":\r
67                         query += " --decomb";\r
68                         break;\r
69                     case "Custom":\r
70                         query += " --decomb=\"" + text_customDC.Text + "\"";\r
71                         break;\r
72                     default:\r
73                         query += string.Empty;\r
74                         break;\r
75                 }\r
76 \r
77                 switch (drop_deinterlace.Text) // DeInterlace\r
78                 {\r
79                     case "None":\r
80                         query += string.Empty;\r
81                         break;\r
82                     case "Fast":\r
83                         query += " --deinterlace=\"fast\"";\r
84                         break;\r
85                     case "Slow":\r
86                         query += " --deinterlace=\"slow\"";\r
87                         break;\r
88                     case "Slower":\r
89                         query += " --deinterlace=\"slower\"";\r
90                         break;\r
91                     case "Custom":\r
92                         query += " --deinterlace=\"" + text_customDI.Text + "\"";\r
93                         break;\r
94                     default:\r
95                         query += string.Empty;\r
96                         break;\r
97                 }\r
98 \r
99                 switch (drop_denoise.Text) // Denoise\r
100                 {\r
101                     case "None":\r
102                         query += string.Empty;\r
103                         break;\r
104                     case "Weak":\r
105                         query += " --denoise=\"weak\"";\r
106                         break;\r
107                     case "Medium":\r
108                         query += " --denoise=\"medium\"";\r
109                         break;\r
110                     case "Strong":\r
111                         query += " --denoise=\"strong\"";\r
112                         break;\r
113                     case "Custom":\r
114                         query += " --denoise=\"" + text_customDN.Text + "\"";\r
115                         break;\r
116                     default:\r
117                         query += string.Empty;\r
118                         break;\r
119                 }\r
120 \r
121                 if (slider_deblock.Value != 4)\r
122                     query += " --deblock=" + slider_deblock.Value;\r
123 \r
124                 if (check_grayscale.Checked)\r
125                     query += " -g ";\r
126 \r
127                 return query;\r
128             }\r
129         }\r
130 \r
131         /// <summary>\r
132         /// Set the Detelecine control\r
133         /// </summary>\r
134         /// <param name="value">\r
135         /// The value part of the CLI string\r
136         /// </param>\r
137         /// <param name="custom">\r
138         /// The Custom Detelecine setting\r
139         /// </param>\r
140         public void SetDeTelecine(Detelecine value, string custom)\r
141         {\r
142             text_customDT.Text = string.Empty;\r
143             text_customDT.Visible = false;\r
144             switch (value)\r
145             {\r
146                 case Detelecine.Off:\r
147                     drop_detelecine.SelectedIndex = 0;\r
148                     break;\r
149                 case Detelecine.Default:\r
150                     drop_detelecine.SelectedIndex = 2;\r
151                     break;\r
152                 default:\r
153                     drop_detelecine.SelectedIndex = 1;\r
154                     text_customDT.Text = custom;\r
155                     text_customDT.Visible = true;\r
156                     break;\r
157             }\r
158         }\r
159 \r
160         /// <summary>\r
161         /// Set the Denoise control\r
162         /// </summary>\r
163         /// <param name="value">\r
164         /// The value part of the CLI string\r
165         /// </param>\r
166         /// <param name="custom">\r
167         /// The custom denoise setting.\r
168         /// </param>\r
169         public void SetDeNoise(Denoise value, string custom)\r
170         {\r
171             text_customDN.Text = string.Empty;\r
172             text_customDN.Visible = false;\r
173             switch (value)\r
174             {\r
175                 case Denoise.Off:\r
176                     drop_denoise.SelectedIndex = 0;\r
177                     break;\r
178                 case Denoise.Weak:\r
179                     drop_denoise.SelectedIndex = 2;\r
180                     break;\r
181                 case Denoise.Medium:\r
182                     drop_denoise.SelectedIndex = 3;\r
183                     break;\r
184                 case Denoise.Strong:\r
185                     drop_denoise.SelectedIndex = 4;\r
186                     break;\r
187                 default:\r
188                     drop_denoise.SelectedIndex = 1;\r
189                     text_customDN.Text = custom;\r
190                     text_customDN.Visible = true;\r
191                     break;\r
192             }\r
193         }\r
194 \r
195         /// <summary>\r
196         /// Set the Deinterlace Control\r
197         /// </summary>\r
198         /// <param name="value">\r
199         /// The value part of the CLI string\r
200         /// </param>\r
201         /// <param name="custom">\r
202         /// The Custom Detinerlace Settings\r
203         /// </param>\r
204         public void SetDeInterlace(Deinterlace value, string custom)\r
205         {\r
206             text_customDI.Text = string.Empty;\r
207             text_customDI.Visible = false;\r
208             switch (value)\r
209             {\r
210                 case Deinterlace.Off:\r
211                     drop_deinterlace.SelectedIndex = 0;\r
212                     break;\r
213                 case Deinterlace.Fast:\r
214                     drop_deinterlace.SelectedIndex = 2;\r
215                     break;\r
216                 case Deinterlace.Slow:\r
217                     drop_deinterlace.SelectedIndex = 3;\r
218                     break;\r
219                 case Deinterlace.Slower:\r
220                     drop_deinterlace.SelectedIndex = 4;\r
221 \r
222                     break;\r
223                 default:\r
224                     drop_deinterlace.SelectedIndex = 1;\r
225                     text_customDI.Text = custom;\r
226                     text_customDI.Visible = true;\r
227                     break;\r
228             }\r
229         }\r
230 \r
231         /// <summary>\r
232         /// Set the Decomb Control\r
233         /// </summary>\r
234         /// <param name="value">\r
235         /// The value part of the CLI string\r
236         /// </param>\r
237         /// <param name="custom">\r
238         /// The custom option string\r
239         /// </param>\r
240         public void SetDecomb(Decomb value, string custom)\r
241         {\r
242             text_customDC.Text = string.Empty;\r
243             text_customDC.Visible = false;\r
244             switch (value)\r
245             {\r
246                 case Decomb.Off:\r
247                     drop_decomb.SelectedIndex = 0;\r
248                     break;\r
249                 case Decomb.Default:\r
250                     drop_decomb.SelectedIndex = 2;\r
251                     break;\r
252                 default:\r
253                     drop_decomb.SelectedIndex = 1;\r
254                     text_customDC.Text = custom;\r
255                     text_customDC.Visible = true;\r
256                     break;\r
257             }\r
258         }\r
259 \r
260         /// <summary>\r
261         /// Set the Deblock Control\r
262         /// </summary>\r
263         /// <param name="value">The deblock value</param>\r
264         public void SetDeBlock(int value)\r
265         {\r
266             if (value != 0)\r
267             {\r
268                 slider_deblock.Value = value;\r
269                 lbl_deblockVal.Text = value.ToString();\r
270             }\r
271             else\r
272             {\r
273                 slider_deblock.Value = 4;\r
274                 lbl_deblockVal.Text = "Off";\r
275             }\r
276         }\r
277 \r
278         /// <summary>\r
279         /// Set the grayscale control\r
280         /// </summary>\r
281         /// <param name="value">Boolean value</param>\r
282         public void SetGrayScale(bool value)\r
283         {\r
284             check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;\r
285         }\r
286 \r
287         // Controls\r
288         private void DropDetelecineSelectedIndexChanged(object sender, EventArgs e)\r
289         {\r
290             text_customDT.Visible = drop_detelecine.Text == "Custom";\r
291             // A Filter has changed so raise a FilterSettingsChanged event.\r
292             if (this.FilterSettingsChanged != null)\r
293                 this.FilterSettingsChanged(this, new EventArgs());\r
294         }\r
295 \r
296         private void DropDecombSelectedIndexChanged(object sender, EventArgs e)\r
297         {\r
298             text_customDC.Visible = drop_decomb.Text == "Custom";\r
299             if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)\r
300                 drop_deinterlace.SelectedIndex = 0;\r
301 \r
302             // A Filter has changed so raise a FilterSettingsChanged event.\r
303             if (this.FilterSettingsChanged != null)\r
304                 this.FilterSettingsChanged(this, new EventArgs());\r
305         }\r
306 \r
307         private void DropDeinterlaceSelectedIndexChanged(object sender, EventArgs e)\r
308         {\r
309             text_customDI.Visible = drop_deinterlace.Text == "Custom";\r
310             if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)\r
311                 drop_decomb.SelectedIndex = 0;\r
312 \r
313             // A Filter has changed so raise a FilterSettingsChanged event.\r
314             if (this.FilterSettingsChanged != null)\r
315                 this.FilterSettingsChanged(this, new EventArgs());\r
316         }\r
317 \r
318         private void DropDenoiseSelectedIndexChanged(object sender, EventArgs e)\r
319         {\r
320             text_customDN.Visible = drop_denoise.Text == "Custom";\r
321 \r
322             // A Filter has changed so raise a FilterSettingsChanged event.\r
323             if (this.FilterSettingsChanged != null)\r
324                 this.FilterSettingsChanged(this, new EventArgs());\r
325         }\r
326 \r
327         private void SliderDeblockScroll(object sender, EventArgs e)\r
328         {\r
329             lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();\r
330 \r
331             // A Filter has changed so raise a FilterSettingsChanged event.\r
332             if (this.FilterSettingsChanged != null)\r
333                 this.FilterSettingsChanged(this, new EventArgs());\r
334         }\r
335     }\r
336 }