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
11 public partial class Filters : UserControl
\r
14 /// The Filter settings have changed
\r
16 public event EventHandler FilterSettingsChanged;
\r
19 /// Initializes a new instance of the <see cref="Filters"/> class.
\r
20 /// Creates a new instance of Filters
\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
32 /// Gets the CLI query for the query generator.
\r
34 public string GetCliQuery
\r
38 string query = string.Empty;
\r
40 switch (drop_detelecine.Text) // DeTelecine
\r
43 query += string.Empty;
\r
46 query += " --detelecine";
\r
49 query += " --detelecine=\"" + text_customDT.Text + "\"";
\r
52 query += string.Empty;
\r
56 switch (drop_decomb.Text) // Decomb
\r
59 query += string.Empty;
\r
62 query += " --decomb";
\r
65 query += " --decomb=\"" + text_customDC.Text + "\"";
\r
68 query += string.Empty;
\r
72 switch (drop_deinterlace.Text) // DeInterlace
\r
75 query += string.Empty;
\r
78 query += " --deinterlace=\"fast\"";
\r
81 query += " --deinterlace=\"slow\"";
\r
84 query += " --deinterlace=\"slower\"";
\r
87 query += " --deinterlace=\"" + text_customDI.Text + "\"";
\r
90 query += string.Empty;
\r
94 switch (drop_denoise.Text) // Denoise
\r
97 query += string.Empty;
\r
100 query += " --denoise=\"weak\"";
\r
103 query += " --denoise=\"medium\"";
\r
106 query += " --denoise=\"strong\"";
\r
109 query += " --denoise=\"" + text_customDN.Text + "\"";
\r
112 query += string.Empty;
\r
116 if (slider_deblock.Value != 4)
\r
117 query += " --deblock=" + slider_deblock.Value;
\r
119 if (check_grayscale.Checked)
\r
127 /// Set the Detelecine control
\r
129 /// <param name="value">The value part of the CLI string</param>
\r
130 public void SetDeTelecine(string value)
\r
132 text_customDT.Text = string.Empty;
\r
133 text_customDT.Visible = false;
\r
137 drop_detelecine.SelectedIndex = 0;
\r
140 drop_detelecine.SelectedIndex = 2;
\r
143 drop_detelecine.SelectedIndex = 1;
\r
144 text_customDT.Text = value;
\r
145 text_customDT.Visible = true;
\r
151 /// Set the Denoise control
\r
153 /// <param name="value">The value part of the CLI string</param>
\r
154 public void SetDeNoise(string value)
\r
156 text_customDN.Text = string.Empty;
\r
157 text_customDN.Visible = false;
\r
161 drop_denoise.SelectedIndex = 0;
\r
164 drop_denoise.SelectedIndex = 2;
\r
167 drop_denoise.SelectedIndex = 3;
\r
170 drop_denoise.SelectedIndex = 4;
\r
173 drop_denoise.SelectedIndex = 1;
\r
174 text_customDN.Text = value;
\r
175 text_customDN.Visible = true;
\r
181 /// Set the Deinterlace Control
\r
183 /// <param name="value">The value part of the CLI string</param>
\r
184 public void SetDeInterlace(string value)
\r
186 text_customDI.Text = string.Empty;
\r
187 text_customDI.Visible = false;
\r
191 drop_deinterlace.SelectedIndex = 0;
\r
194 drop_deinterlace.SelectedIndex = 2;
\r
197 drop_deinterlace.SelectedIndex = 3;
\r
200 drop_deinterlace.SelectedIndex = 4;
\r
204 drop_deinterlace.SelectedIndex = 1;
\r
205 text_customDI.Text = value;
\r
206 text_customDI.Visible = true;
\r
212 /// Set the Decomb Control
\r
214 /// <param name="value">The value part of the CLI string</param>
\r
215 public void SetDecomb(string value)
\r
217 text_customDC.Text = string.Empty;
\r
218 text_customDC.Visible = false;
\r
222 drop_decomb.SelectedIndex = 0;
\r
225 drop_decomb.SelectedIndex = 2;
\r
228 drop_decomb.SelectedIndex = 1;
\r
229 text_customDC.Text = value;
\r
230 text_customDC.Visible = true;
\r
236 /// Set the Deblock Control
\r
238 /// <param name="value">The deblock value</param>
\r
239 public void SetDeBlock(int value)
\r
243 slider_deblock.Value = value;
\r
244 lbl_deblockVal.Text = value.ToString();
\r
248 slider_deblock.Value = 4;
\r
249 lbl_deblockVal.Text = "Off";
\r
254 /// Set the grayscale control
\r
256 /// <param name="value">Boolean value</param>
\r
257 public void SetGrayScale(bool value)
\r
259 check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
\r
263 private void DropDetelecineSelectedIndexChanged(object sender, EventArgs e)
\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
271 private void DropDecombSelectedIndexChanged(object sender, EventArgs e)
\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
277 // A Filter has changed so raise a FilterSettingsChanged event.
\r
278 if (this.FilterSettingsChanged != null)
\r
279 this.FilterSettingsChanged(this, new EventArgs());
\r
282 private void DropDeinterlaceSelectedIndexChanged(object sender, EventArgs e)
\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
288 // A Filter has changed so raise a FilterSettingsChanged event.
\r
289 if (this.FilterSettingsChanged != null)
\r
290 this.FilterSettingsChanged(this, new EventArgs());
\r
293 private void DropDenoiseSelectedIndexChanged(object sender, EventArgs e)
\r
295 text_customDN.Visible = drop_denoise.Text == "Custom";
\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
302 private void SliderDeblockScroll(object sender, EventArgs e)
\r
304 lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();
\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