OSDN Git Service

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