OSDN Git Service

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