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 using HandBrake.ApplicationServices.Model.Encoding;
\r
14 /// The Filters Panel
\r
16 public partial class Filters : UserControl
\r
19 /// The Filter settings have changed
\r
21 public event EventHandler FilterSettingsChanged;
\r
24 /// Initializes a new instance of the <see cref="Filters"/> class.
\r
25 /// Creates a new instance of Filters
\r
29 InitializeComponent();
\r
30 drop_decomb.SelectedIndex = 0;
\r
31 drop_deinterlace.SelectedIndex = 0;
\r
32 drop_denoise.SelectedIndex = 0;
\r
33 drop_detelecine.SelectedIndex = 0;
\r
37 /// Gets the CLI query for the query generator.
\r
39 public string GetCliQuery
\r
43 string query = string.Empty;
\r
45 switch (drop_detelecine.Text) // DeTelecine
\r
48 query += string.Empty;
\r
51 query += " --detelecine";
\r
54 query += " --detelecine=\"" + text_customDT.Text + "\"";
\r
57 query += string.Empty;
\r
61 switch (drop_decomb.Text) // Decomb
\r
64 query += string.Empty;
\r
67 query += " --decomb";
\r
70 query += " --decomb=\"" + text_customDC.Text + "\"";
\r
73 query += string.Empty;
\r
77 switch (drop_deinterlace.Text) // DeInterlace
\r
80 query += string.Empty;
\r
83 query += " --deinterlace=\"fast\"";
\r
86 query += " --deinterlace=\"slow\"";
\r
89 query += " --deinterlace=\"slower\"";
\r
92 query += " --deinterlace=\"" + text_customDI.Text + "\"";
\r
95 query += string.Empty;
\r
99 switch (drop_denoise.Text) // Denoise
\r
102 query += string.Empty;
\r
105 query += " --denoise=\"weak\"";
\r
108 query += " --denoise=\"medium\"";
\r
111 query += " --denoise=\"strong\"";
\r
114 query += " --denoise=\"" + text_customDN.Text + "\"";
\r
117 query += string.Empty;
\r
121 if (slider_deblock.Value != 4)
\r
122 query += " --deblock=" + slider_deblock.Value;
\r
124 if (check_grayscale.Checked)
\r
132 /// Set the Detelecine control
\r
134 /// <param name="value">
\r
135 /// The value part of the CLI string
\r
137 /// <param name="custom">
\r
138 /// The Custom Detelecine setting
\r
140 public void SetDeTelecine(Detelecine value, string custom)
\r
142 text_customDT.Text = string.Empty;
\r
143 text_customDT.Visible = false;
\r
146 case Detelecine.Off:
\r
147 drop_detelecine.SelectedIndex = 0;
\r
149 case Detelecine.Default:
\r
150 drop_detelecine.SelectedIndex = 2;
\r
153 drop_detelecine.SelectedIndex = 1;
\r
154 text_customDT.Text = custom;
\r
155 text_customDT.Visible = true;
\r
161 /// Set the Denoise control
\r
163 /// <param name="value">
\r
164 /// The value part of the CLI string
\r
166 /// <param name="custom">
\r
167 /// The custom denoise setting.
\r
169 public void SetDeNoise(Denoise value, string custom)
\r
171 text_customDN.Text = string.Empty;
\r
172 text_customDN.Visible = false;
\r
176 drop_denoise.SelectedIndex = 0;
\r
179 drop_denoise.SelectedIndex = 2;
\r
181 case Denoise.Medium:
\r
182 drop_denoise.SelectedIndex = 3;
\r
184 case Denoise.Strong:
\r
185 drop_denoise.SelectedIndex = 4;
\r
188 drop_denoise.SelectedIndex = 1;
\r
189 text_customDN.Text = custom;
\r
190 text_customDN.Visible = true;
\r
196 /// Set the Deinterlace Control
\r
198 /// <param name="value">
\r
199 /// The value part of the CLI string
\r
201 /// <param name="custom">
\r
202 /// The Custom Detinerlace Settings
\r
204 public void SetDeInterlace(Deinterlace value, string custom)
\r
206 text_customDI.Text = string.Empty;
\r
207 text_customDI.Visible = false;
\r
210 case Deinterlace.Off:
\r
211 drop_deinterlace.SelectedIndex = 0;
\r
213 case Deinterlace.Fast:
\r
214 drop_deinterlace.SelectedIndex = 2;
\r
216 case Deinterlace.Slow:
\r
217 drop_deinterlace.SelectedIndex = 3;
\r
219 case Deinterlace.Slower:
\r
220 drop_deinterlace.SelectedIndex = 4;
\r
224 drop_deinterlace.SelectedIndex = 1;
\r
225 text_customDI.Text = custom;
\r
226 text_customDI.Visible = true;
\r
232 /// Set the Decomb Control
\r
234 /// <param name="value">
\r
235 /// The value part of the CLI string
\r
237 /// <param name="custom">
\r
238 /// The custom option string
\r
240 public void SetDecomb(Decomb value, string custom)
\r
242 text_customDC.Text = string.Empty;
\r
243 text_customDC.Visible = false;
\r
247 drop_decomb.SelectedIndex = 0;
\r
249 case Decomb.Default:
\r
250 drop_decomb.SelectedIndex = 2;
\r
253 drop_decomb.SelectedIndex = 1;
\r
254 text_customDC.Text = custom;
\r
255 text_customDC.Visible = true;
\r
261 /// Set the Deblock Control
\r
263 /// <param name="value">The deblock value</param>
\r
264 public void SetDeBlock(int value)
\r
268 slider_deblock.Value = value;
\r
269 lbl_deblockVal.Text = value.ToString();
\r
273 slider_deblock.Value = 4;
\r
274 lbl_deblockVal.Text = "Off";
\r
279 /// Set the grayscale control
\r
281 /// <param name="value">Boolean value</param>
\r
282 public void SetGrayScale(bool value)
\r
284 check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
\r
288 private void DropDetelecineSelectedIndexChanged(object sender, EventArgs e)
\r
290 text_customDT.Visible = drop_detelecine.Text == "Custom";
\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 DropDecombSelectedIndexChanged(object sender, EventArgs e)
\r
298 text_customDC.Visible = drop_decomb.Text == "Custom";
\r
299 if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)
\r
300 drop_deinterlace.SelectedIndex = 0;
\r
302 // A Filter has changed so raise a FilterSettingsChanged event.
\r
303 if (this.FilterSettingsChanged != null)
\r
304 this.FilterSettingsChanged(this, new EventArgs());
\r
307 private void DropDeinterlaceSelectedIndexChanged(object sender, EventArgs e)
\r
309 text_customDI.Visible = drop_deinterlace.Text == "Custom";
\r
310 if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)
\r
311 drop_decomb.SelectedIndex = 0;
\r
313 // A Filter has changed so raise a FilterSettingsChanged event.
\r
314 if (this.FilterSettingsChanged != null)
\r
315 this.FilterSettingsChanged(this, new EventArgs());
\r
318 private void DropDenoiseSelectedIndexChanged(object sender, EventArgs e)
\r
320 text_customDN.Visible = drop_denoise.Text == "Custom";
\r
322 // A Filter has changed so raise a FilterSettingsChanged event.
\r
323 if (this.FilterSettingsChanged != null)
\r
324 this.FilterSettingsChanged(this, new EventArgs());
\r
327 private void SliderDeblockScroll(object sender, EventArgs e)
\r
329 lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();
\r
331 // A Filter has changed so raise a FilterSettingsChanged event.
\r
332 if (this.FilterSettingsChanged != null)
\r
333 this.FilterSettingsChanged(this, new EventArgs());
\r