--- /dev/null
+using System;\r
+using System.Windows.Forms;\r
+\r
+namespace Handbrake.Controls\r
+{\r
+ public partial class Filters : UserControl\r
+ {\r
+ public event EventHandler FilterSettingsChanged;\r
+\r
+ public Filters()\r
+ {\r
+ InitializeComponent();\r
+ drop_decomb.SelectedIndex = 0;\r
+ drop_deinterlace.SelectedIndex = 0;\r
+ drop_denoise.SelectedIndex = 0;\r
+ drop_detelecine.SelectedIndex = 0;\r
+ }\r
+\r
+ // Controls\r
+ private void drop_detelecine_SelectedIndexChanged(object sender, EventArgs e)\r
+ {\r
+ text_customDT.Visible = drop_detelecine.Text == "Custom";\r
+ // A Filter has changed so raise a FilterSettingsChanged event.\r
+ if (this.FilterSettingsChanged != null)\r
+ this.FilterSettingsChanged(this, new EventArgs());\r
+ }\r
+ private void drop_decomb_SelectedIndexChanged(object sender, EventArgs e)\r
+ {\r
+ text_customDC.Visible = drop_decomb.Text == "Custom";\r
+ if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)\r
+ drop_deinterlace.SelectedIndex = 0;\r
+\r
+ // A Filter has changed so raise a FilterSettingsChanged event.\r
+ if (this.FilterSettingsChanged != null)\r
+ this.FilterSettingsChanged(this, new EventArgs());\r
+ }\r
+ private void drop_deinterlace_SelectedIndexChanged(object sender, EventArgs e)\r
+ {\r
+ text_customDI.Visible = drop_deinterlace.Text == "Custom";\r
+ if (drop_decomb.SelectedIndex != 0 && drop_deinterlace.SelectedIndex != 0)\r
+ drop_decomb.SelectedIndex = 0;\r
+\r
+ // A Filter has changed so raise a FilterSettingsChanged event.\r
+ if (this.FilterSettingsChanged != null)\r
+ this.FilterSettingsChanged(this, new EventArgs());\r
+ }\r
+ private void drop_denoise_SelectedIndexChanged(object sender, EventArgs e)\r
+ {\r
+ text_customDN.Visible = drop_denoise.Text == "Custom";\r
+\r
+ // A Filter has changed so raise a FilterSettingsChanged event.\r
+ if (this.FilterSettingsChanged != null)\r
+ this.FilterSettingsChanged(this, new EventArgs());\r
+ }\r
+ private void slider_deblock_Scroll(object sender, EventArgs e)\r
+ {\r
+ lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();\r
+\r
+ // A Filter has changed so raise a FilterSettingsChanged event.\r
+ if (this.FilterSettingsChanged != null)\r
+ this.FilterSettingsChanged(this, new EventArgs());\r
+ }\r
+\r
+ // Returns the CLI query for the query generator.\r
+ public string getCLIQuery\r
+ {\r
+ get\r
+ {\r
+ string query = "";\r
+\r
+ switch (drop_detelecine.Text) // DeTelecine\r
+ {\r
+ case "Off":\r
+ query += "";\r
+ break;\r
+ case "Default":\r
+ query += " --detelecine";\r
+ break;\r
+ case "Custom":\r
+ query += " --detelecine=\"" + text_customDT.Text + "\"";\r
+ break;\r
+ default:\r
+ query += "";\r
+ break;\r
+ }\r
+\r
+\r
+ switch (drop_decomb.Text) // Decomb\r
+ {\r
+ case "Off":\r
+ query += "";\r
+ break;\r
+ case "Default":\r
+ query += " --decomb";\r
+ break;\r
+ case "Custom":\r
+ query += " --decomb=\"" + text_customDC.Text + "\"";\r
+ break;\r
+ default:\r
+ query += "";\r
+ break;\r
+ }\r
+\r
+ switch (drop_deinterlace.Text) // DeInterlace\r
+ {\r
+ case "None":\r
+ query += "";\r
+ break;\r
+ case "Fast":\r
+ query += " --deinterlace=\"fast\"";\r
+ break;\r
+ case "Slow":\r
+ query += " --deinterlace=\"slow\"";\r
+ break;\r
+ case "Slower":\r
+ query += " --deinterlace=\"slower\"";\r
+ break;\r
+ case "Custom":\r
+ query += " --deinterlace=\"" + text_customDI.Text + "\"";\r
+ break;\r
+ default:\r
+ query += "";\r
+ break;\r
+ }\r
+\r
+ switch (drop_denoise.Text) // Denoise\r
+ {\r
+ case "None":\r
+ query += "";\r
+ break;\r
+ case "Weak":\r
+ query += " --denoise=\"weak\"";\r
+ break;\r
+ case "Medium":\r
+ query += " --denoise=\"medium\"";\r
+ break;\r
+ case "Strong":\r
+ query += " --denoise=\"strong\"";\r
+ break;\r
+ case "Custom":\r
+ query += " --denoise=\"" + text_customDN.Text + "\"";\r
+ break;\r
+ default:\r
+ query += "";\r
+ break;\r
+ }\r
+\r
+ if (slider_deblock.Value != 4)\r
+ query += " --deblock=" + slider_deblock.Value;\r
+\r
+ if (check_grayscale.Checked)\r
+ query += " -g ";\r
+\r
+ return query;\r
+ }\r
+ }\r
+\r
+ // Setup for each component for the preset loader.\r
+ public void setDeTelecine(string value)\r
+ {\r
+ text_customDT.Text = "";\r
+ text_customDT.Visible = false;\r
+ switch (value)\r
+ {\r
+ case "Off":\r
+ drop_detelecine.SelectedIndex = 0;\r
+ break;\r
+ case "Default":\r
+ drop_detelecine.SelectedIndex = 2;\r
+ break;\r
+ default:\r
+ drop_detelecine.SelectedIndex = 1;\r
+ text_customDT.Text = value;\r
+ text_customDT.Visible = true;\r
+ break;\r
+ }\r
+ }\r
+ public void setDeNoise(string value)\r
+ {\r
+ text_customDN.Text = "";\r
+ text_customDN.Visible = false;\r
+ switch (value)\r
+ {\r
+ case "Off":\r
+ drop_denoise.SelectedIndex = 0;\r
+ break;\r
+ case "Weak":\r
+ drop_denoise.SelectedIndex = 2;\r
+ break;\r
+ case "Medium":\r
+ drop_denoise.SelectedIndex = 3;\r
+ break;\r
+ case "Strong":\r
+ drop_denoise.SelectedIndex = 4;\r
+ break;\r
+ default:\r
+ drop_denoise.SelectedIndex = 1;\r
+ text_customDN.Text = value;\r
+ text_customDN.Visible = true;\r
+ break;\r
+ }\r
+ }\r
+ public void setDeInterlace(string value)\r
+ {\r
+ text_customDI.Text = "";\r
+ text_customDI.Visible = false;\r
+ switch (value)\r
+ {\r
+\r
+ case "Off":\r
+ drop_deinterlace.SelectedIndex = 0;\r
+ break;\r
+ case "Fast":\r
+ drop_deinterlace.SelectedIndex = 2;\r
+ break;\r
+ case "Slow":\r
+ drop_deinterlace.SelectedIndex = 3;\r
+ break;\r
+ case "Slower":\r
+ drop_deinterlace.SelectedIndex = 4;\r
+\r
+ break;\r
+ default:\r
+ drop_deinterlace.SelectedIndex = 1;\r
+ text_customDI.Text = value;\r
+ text_customDI.Visible = true;\r
+ break;\r
+ }\r
+ }\r
+ public void setDecomb(string value)\r
+ {\r
+ text_customDC.Text = "";\r
+ text_customDC.Visible = false;\r
+ switch (value)\r
+ {\r
+ case "Off":\r
+ drop_decomb.SelectedIndex = 0;\r
+ break;\r
+ case "Default":\r
+ drop_decomb.SelectedIndex = 2;\r
+ break;\r
+ default:\r
+ drop_decomb.SelectedIndex = 1;\r
+ text_customDC.Text = value;\r
+ text_customDC.Visible = true;\r
+ break;\r
+ }\r
+ }\r
+ public void setDeBlock(int value)\r
+ {\r
+ if (value != 0)\r
+ {\r
+ slider_deblock.Value = value;\r
+ lbl_deblockVal.Text = value.ToString();\r
+ }\r
+ else\r
+ {\r
+ slider_deblock.Value = 4;\r
+ lbl_deblockVal.Text = "Off";\r
+ }\r
+ }\r
+ public void setGrayScale(bool value)\r
+ {\r
+ check_grayscale.CheckState = value ? CheckState.Checked : CheckState.Unchecked;\r
+ } \r
+ }\r
+}\r