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
7 namespace Handbrake.Controls
\r
10 using System.Windows.Forms;
\r
12 public partial class Filters : UserControl
\r
15 /// The Filter settings have changed
\r
17 public event EventHandler FilterSettingsChanged;
\r
20 /// Initializes a new instance of the <see cref="Filters"/> class.
\r
21 /// Creates a new instance of Filters
\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
33 /// Returns the CLI query for the query generator.
\r
35 public string GetCliQuery
\r
39 string query = string.Empty;
\r
41 switch (drop_detelecine.Text) // DeTelecine
\r
44 query += string.Empty;
\r
47 query += " --detelecine";
\r
50 query += " --detelecine=\"" + text_customDT.Text + "\"";
\r
53 query += string.Empty;
\r
58 switch (drop_decomb.Text) // Decomb
\r
61 query += string.Empty;
\r
64 query += " --decomb";
\r
67 query += " --decomb=\"" + text_customDC.Text + "\"";
\r
70 query += string.Empty;
\r
74 switch (drop_deinterlace.Text) // DeInterlace
\r
77 query += string.Empty;
\r
80 query += " --deinterlace=\"fast\"";
\r
83 query += " --deinterlace=\"slow\"";
\r
86 query += " --deinterlace=\"slower\"";
\r
89 query += " --deinterlace=\"" + text_customDI.Text + "\"";
\r
92 query += string.Empty;
\r
96 switch (drop_denoise.Text) // Denoise
\r
99 query += string.Empty;
\r
102 query += " --denoise=\"weak\"";
\r
105 query += " --denoise=\"medium\"";
\r
108 query += " --denoise=\"strong\"";
\r
111 query += " --denoise=\"" + text_customDN.Text + "\"";
\r
114 query += string.Empty;
\r
118 if (slider_deblock.Value != 4)
\r
119 query += " --deblock=" + slider_deblock.Value;
\r
121 if (check_grayscale.Checked)
\r
129 /// Set the Detelecine control
\r
131 /// <param name="value">The value part of the CLI string</param>
\r
132 public void SetDeTelecine(string value)
\r
134 text_customDT.Text = string.Empty;
\r
135 text_customDT.Visible = false;
\r
139 drop_detelecine.SelectedIndex = 0;
\r
142 drop_detelecine.SelectedIndex = 2;
\r
145 drop_detelecine.SelectedIndex = 1;
\r
146 text_customDT.Text = value;
\r
147 text_customDT.Visible = true;
\r
153 /// Set the Denoise control
\r
155 /// <param name="value">The value part of the CLI string</param>
\r
156 public void SetDeNoise(string value)
\r
158 text_customDN.Text = string.Empty;
\r
159 text_customDN.Visible = false;
\r
163 drop_denoise.SelectedIndex = 0;
\r
166 drop_denoise.SelectedIndex = 2;
\r
169 drop_denoise.SelectedIndex = 3;
\r
172 drop_denoise.SelectedIndex = 4;
\r
175 drop_denoise.SelectedIndex = 1;
\r
176 text_customDN.Text = value;
\r
177 text_customDN.Visible = true;
\r
183 /// Set the Deinterlace Control
\r
185 /// <param name="value">The value part of the CLI string</param>
\r
186 public void SetDeInterlace(string value)
\r
188 text_customDI.Text = string.Empty;
\r
189 text_customDI.Visible = false;
\r
193 drop_deinterlace.SelectedIndex = 0;
\r
196 drop_deinterlace.SelectedIndex = 2;
\r
199 drop_deinterlace.SelectedIndex = 3;
\r
202 drop_deinterlace.SelectedIndex = 4;
\r
206 drop_deinterlace.SelectedIndex = 1;
\r
207 text_customDI.Text = value;
\r
208 text_customDI.Visible = true;
\r
214 /// Set the Decomb Control
\r
216 /// <param name="value">The value part of the CLI string</param>
\r
217 public void SetDecomb(string value)
\r
219 text_customDC.Text = string.Empty;
\r
220 text_customDC.Visible = false;
\r
224 drop_decomb.SelectedIndex = 0;
\r
227 drop_decomb.SelectedIndex = 2;
\r
230 drop_decomb.SelectedIndex = 1;
\r
231 text_customDC.Text = value;
\r
232 text_customDC.Visible = true;
\r
238 /// Set the Deblock Control
\r
240 /// <param name="value">The deblock value</param>
\r
241 public void SetDeBlock(int value)
\r
245 slider_deblock.Value = value;
\r
246 lbl_deblockVal.Text = value.ToString();
\r
250 slider_deblock.Value = 4;
\r
251 lbl_deblockVal.Text = "Off";
\r
256 /// Set the grayscale control
\r
258 /// <param name="value">Boolean value</param>
\r
259 public void SetGrayScale(bool value)
\r
261 check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
\r
265 private void DropDetelecineSelectedIndexChanged(object sender, EventArgs e)
\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
273 private void DropDecombSelectedIndexChanged(object sender, EventArgs e)
\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
279 // A Filter has changed so raise a FilterSettingsChanged event.
\r
280 if (this.FilterSettingsChanged != null)
\r
281 this.FilterSettingsChanged(this, new EventArgs());
\r
284 private void DropDeinterlaceSelectedIndexChanged(object sender, EventArgs e)
\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
290 // A Filter has changed so raise a FilterSettingsChanged event.
\r
291 if (this.FilterSettingsChanged != null)
\r
292 this.FilterSettingsChanged(this, new EventArgs());
\r
295 private void DropDenoiseSelectedIndexChanged(object sender, EventArgs e)
\r
297 text_customDN.Visible = drop_denoise.Text == "Custom";
\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
304 private void SliderDeblockScroll(object sender, EventArgs e)
\r
306 lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();
\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