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
6 namespace Handbrake.Controls
\r
9 using System.Windows.Forms;
\r
12 /// The Filters Panel
\r
14 public partial class Filters : UserControl
\r
17 /// The Filter settings have changed
\r
19 public event EventHandler FilterSettingsChanged;
\r
22 /// Initializes a new instance of the <see cref="Filters"/> class.
\r
23 /// Creates a new instance of Filters
\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
35 /// Gets the CLI query for the query generator.
\r
37 public string GetCliQuery
\r
41 string query = string.Empty;
\r
43 switch (drop_detelecine.Text) // DeTelecine
\r
46 query += string.Empty;
\r
49 query += " --detelecine";
\r
52 query += " --detelecine=\"" + text_customDT.Text + "\"";
\r
55 query += string.Empty;
\r
59 switch (drop_decomb.Text) // Decomb
\r
62 query += string.Empty;
\r
65 query += " --decomb";
\r
68 query += " --decomb=\"" + text_customDC.Text + "\"";
\r
71 query += string.Empty;
\r
75 switch (drop_deinterlace.Text) // DeInterlace
\r
78 query += string.Empty;
\r
81 query += " --deinterlace=\"fast\"";
\r
84 query += " --deinterlace=\"slow\"";
\r
87 query += " --deinterlace=\"slower\"";
\r
90 query += " --deinterlace=\"" + text_customDI.Text + "\"";
\r
93 query += string.Empty;
\r
97 switch (drop_denoise.Text) // Denoise
\r
100 query += string.Empty;
\r
103 query += " --denoise=\"weak\"";
\r
106 query += " --denoise=\"medium\"";
\r
109 query += " --denoise=\"strong\"";
\r
112 query += " --denoise=\"" + text_customDN.Text + "\"";
\r
115 query += string.Empty;
\r
119 if (slider_deblock.Value != 4)
\r
120 query += " --deblock=" + slider_deblock.Value;
\r
122 if (check_grayscale.Checked)
\r
130 /// Set the Detelecine control
\r
132 /// <param name="value">The value part of the CLI string</param>
\r
133 public void SetDeTelecine(string value)
\r
135 text_customDT.Text = string.Empty;
\r
136 text_customDT.Visible = false;
\r
140 drop_detelecine.SelectedIndex = 0;
\r
143 drop_detelecine.SelectedIndex = 2;
\r
146 drop_detelecine.SelectedIndex = 1;
\r
147 text_customDT.Text = value;
\r
148 text_customDT.Visible = true;
\r
154 /// Set the Denoise control
\r
156 /// <param name="value">The value part of the CLI string</param>
\r
157 public void SetDeNoise(string value)
\r
159 text_customDN.Text = string.Empty;
\r
160 text_customDN.Visible = false;
\r
164 drop_denoise.SelectedIndex = 0;
\r
167 drop_denoise.SelectedIndex = 2;
\r
170 drop_denoise.SelectedIndex = 3;
\r
173 drop_denoise.SelectedIndex = 4;
\r
176 drop_denoise.SelectedIndex = 1;
\r
177 text_customDN.Text = value;
\r
178 text_customDN.Visible = true;
\r
184 /// Set the Deinterlace Control
\r
186 /// <param name="value">The value part of the CLI string</param>
\r
187 public void SetDeInterlace(string value)
\r
189 text_customDI.Text = string.Empty;
\r
190 text_customDI.Visible = false;
\r
194 drop_deinterlace.SelectedIndex = 0;
\r
197 drop_deinterlace.SelectedIndex = 2;
\r
200 drop_deinterlace.SelectedIndex = 3;
\r
203 drop_deinterlace.SelectedIndex = 4;
\r
207 drop_deinterlace.SelectedIndex = 1;
\r
208 text_customDI.Text = value;
\r
209 text_customDI.Visible = true;
\r
215 /// Set the Decomb Control
\r
217 /// <param name="value">The value part of the CLI string</param>
\r
218 public void SetDecomb(string value)
\r
220 text_customDC.Text = string.Empty;
\r
221 text_customDC.Visible = false;
\r
225 drop_decomb.SelectedIndex = 0;
\r
228 drop_decomb.SelectedIndex = 2;
\r
231 drop_decomb.SelectedIndex = 1;
\r
232 text_customDC.Text = value;
\r
233 text_customDC.Visible = true;
\r
239 /// Set the Deblock Control
\r
241 /// <param name="value">The deblock value</param>
\r
242 public void SetDeBlock(int value)
\r
246 slider_deblock.Value = value;
\r
247 lbl_deblockVal.Text = value.ToString();
\r
251 slider_deblock.Value = 4;
\r
252 lbl_deblockVal.Text = "Off";
\r
257 /// Set the grayscale control
\r
259 /// <param name="value">Boolean value</param>
\r
260 public void SetGrayScale(bool value)
\r
262 check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
\r
266 private void DropDetelecineSelectedIndexChanged(object sender, EventArgs e)
\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
274 private void DropDecombSelectedIndexChanged(object sender, EventArgs e)
\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
280 // A Filter has changed so raise a FilterSettingsChanged event.
\r
281 if (this.FilterSettingsChanged != null)
\r
282 this.FilterSettingsChanged(this, new EventArgs());
\r
285 private void DropDeinterlaceSelectedIndexChanged(object sender, EventArgs e)
\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
291 // A Filter has changed so raise a FilterSettingsChanged event.
\r
292 if (this.FilterSettingsChanged != null)
\r
293 this.FilterSettingsChanged(this, new EventArgs());
\r
296 private void DropDenoiseSelectedIndexChanged(object sender, EventArgs e)
\r
298 text_customDN.Visible = drop_denoise.Text == "Custom";
\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
305 private void SliderDeblockScroll(object sender, EventArgs e)
\r
307 lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();
\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