OSDN Git Service

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