-using System;\r
-using System.Collections.Generic;\r
-using System.ComponentModel;\r
-using System.Drawing;\r
-using System.Data;\r
-using System.Text;\r
+/* x264Panel.cs $\r
+ \r
+ This file is part of the HandBrake source code.\r
+ Homepage: <http://handbrake.fr>.\r
+ It may be used under the terms of the GNU General Public License. */\r
+\r
+using System;\r
using System.Windows.Forms;\r
\r
namespace Handbrake.Controls\r
public x264Panel()\r
{\r
InitializeComponent();\r
+\r
+ if (Properties.Settings.Default.tooltipEnable)\r
+ ToolTip.Active = true;\r
+\r
+ reset2Defaults();\r
}\r
\r
public string x264Query\r
get { return rtf_x264Query.Text; }\r
set { rtf_x264Query.Text = value; }\r
}\r
- public void setToolTipActive(Boolean active)\r
- {\r
- ToolTip.Active = active;\r
- }\r
\r
- #region Controls Changed\r
- private void drop_refFrames_SelectedIndexChanged(object sender, EventArgs e)\r
+ private void widgetControlChanged(object sender, EventArgs e)\r
{\r
- on_x264_WidgetChange("ref");\r
- }\r
- private void check_mixedReferences_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("mixed-refs");\r
- }\r
- private void drop_bFrames_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("bframes");\r
- }\r
- private void drop_directPrediction_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("direct");\r
- }\r
- private void check_weightedBFrames_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("weightb");\r
- }\r
- private void check_pyrmidalBFrames_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("b-pyramid");\r
- }\r
- private void drop_MotionEstimationMethod_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("me");\r
- }\r
- private void drop_MotionEstimationRange_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("merange");\r
- }\r
- private void drop_subpixelMotionEstimation_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("subq");\r
- }\r
- private void drop_analysis_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("analyse");\r
- }\r
- private void check_8x8DCT_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("8x8dct");\r
- }\r
- private void drop_deblockAlpha_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("deblock");\r
- }\r
- private void drop_deblockBeta_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("deblock");\r
- }\r
- private void drop_trellis_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("trellis");\r
- }\r
- private void check_noFastPSkip_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("no-fast-pskip");\r
- }\r
- private void check_noDCTDecimate_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("no-dct-decimate");\r
- }\r
- private void check_Cabac_CheckedChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("cabac");\r
- }\r
- private void slider_psyrd_Scroll(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("psy-rd");\r
- }\r
- private void slider_psytrellis_Scroll(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("psy-rd");\r
- }\r
- private void drop_adaptBFrames_SelectedIndexChanged(object sender, EventArgs e)\r
- {\r
- on_x264_WidgetChange("b-adapt");\r
+ Control changedControlName = (Control) sender;\r
+ string controlName = "";\r
+\r
+ switch (changedControlName.Name.Trim())\r
+ {\r
+ case "drop_refFrames":\r
+ controlName = "ref";\r
+ break;\r
+ case "check_mixedReferences":\r
+ controlName = "mixed-refs";\r
+ break;\r
+ case "drop_bFrames":\r
+ controlName = "bframes";\r
+ break;\r
+ case "drop_directPrediction":\r
+ controlName = "direct";\r
+ break;\r
+ case "check_weightedBFrames":\r
+ controlName = "weightb";\r
+ break;\r
+ case "check_pyrmidalBFrames":\r
+ controlName = "b-pyramid";\r
+ break;\r
+ case "drop_MotionEstimationMethod":\r
+ controlName = "me";\r
+ break;\r
+ case "drop_MotionEstimationRange":\r
+ controlName = "merange";\r
+ break;\r
+ case "drop_subpixelMotionEstimation":\r
+ controlName = "subq";\r
+ break;\r
+ case "drop_analysis":\r
+ controlName = "analyse";\r
+ break;\r
+ case "check_8x8DCT":\r
+ controlName = "8x8dct";\r
+ break;\r
+ case "drop_deblockAlpha":\r
+ controlName = "deblock";\r
+ break;\r
+ case "drop_deblockBeta":\r
+ controlName = "deblock";\r
+ break;\r
+ case "drop_trellis":\r
+ controlName = "trellis";\r
+ break;\r
+ case "check_noFastPSkip":\r
+ controlName = "no-fast-pskip";\r
+ break;\r
+ case "check_noDCTDecimate":\r
+ controlName = "no-dct-decimate";\r
+ break;\r
+ case "check_Cabac":\r
+ controlName = "cabac";\r
+ break;\r
+ case "slider_psyrd":\r
+ controlName = "psy-rd";\r
+ break;\r
+ case "slider_psytrellis":\r
+ controlName = "psy-rd";\r
+ break;\r
+ case "drop_adaptBFrames":\r
+ controlName = "b-adapt";\r
+ break;\r
+ }\r
+ on_x264_WidgetChange(controlName);\r
}\r
private void rtf_x264Query_TextChanged(object sender, EventArgs e)\r
{\r
rtf_x264Query.Text = "";\r
reset2Defaults();\r
}\r
- #endregion\r
-\r
+ \r
/// <summary>\r
/// Reset all components to defaults and clears the x264 rtf box\r
/// </summary>\r
public void reset2Defaults()\r
{\r
- check_8x8DCT.CheckState = CheckState.Unchecked;\r
+ check_8x8DCT.CheckState = CheckState.Checked;\r
check_Cabac.CheckState = CheckState.Checked;\r
- check_mixedReferences.CheckState = CheckState.Unchecked;\r
+ check_mixedReferences.CheckState = CheckState.Checked;\r
check_noDCTDecimate.CheckState = CheckState.Unchecked;\r
check_noFastPSkip.CheckState = CheckState.Unchecked;\r
check_pyrmidalBFrames.CheckState = CheckState.Unchecked;\r
- check_weightedBFrames.CheckState = CheckState.Unchecked;\r
+ check_weightedBFrames.CheckState = CheckState.Checked;\r
drop_analysis.SelectedIndex = 0;\r
drop_bFrames.SelectedIndex = 0;\r
drop_deblockAlpha.SelectedIndex = 0;\r
drop_refFrames.SelectedIndex = 0;\r
drop_subpixelMotionEstimation.SelectedIndex = 0;\r
drop_trellis.SelectedIndex = 0;\r
- slider_psyrd.Value = 0;\r
+ slider_psyrd.Value = 10;\r
slider_psytrellis.Value = 0;\r
drop_adaptBFrames.SelectedIndex = 0;\r
\r
/// </summary>\r
/// <param name="cleanOptNameString"></param>\r
/// <returns></returns>\r
- private string X264_StandardizeOptNames(String cleanOptNameString)\r
+ private static string X264_StandardizeOptNames(String cleanOptNameString)\r
{\r
String input = cleanOptNameString;\r
\r
}\r
else\r
{\r
- if (!alphaDeblock.Equals("0"))\r
- drop_deblockAlpha.SelectedItem = alphaDeblock;\r
- else\r
- drop_deblockAlpha.SelectedItem = "0";\r
-\r
- if (!betaDeblock.Replace("\n", "").Equals("0"))\r
- drop_deblockBeta.SelectedItem = betaDeblock.Replace("\n", "");\r
- else\r
- drop_deblockBeta.SelectedItem = "0";\r
+ drop_deblockAlpha.SelectedItem = !alphaDeblock.Equals("0") ? alphaDeblock : "0";\r
+\r
+ drop_deblockBeta.SelectedItem = !betaDeblock.Replace("\n", "").Equals("0") ? betaDeblock.Replace("\n", "") : "0";\r
}\r
continue;\r
case "analyse":\r
drop_analysis.SelectedItem = "All";\r
continue;\r
case "8x8dct":\r
- check_8x8DCT.CheckState = CheckState.Checked;\r
+ check_8x8DCT.CheckState = optValue == "1" ? CheckState.Checked : CheckState.Unchecked;\r
continue;\r
case "cabac":\r
check_Cabac.CheckState = CheckState.Unchecked;\r
case "psy-rd":\r
string[] x = optValue.Split(',');\r
\r
- double psyrd = 0, psytrellis = 0;\r
+ double psyrd, psytrellis;\r
int val, val2;\r
- double.TryParse(x[0], out psyrd);\r
- double.TryParse(x[1], out psytrellis);\r
\r
- psyrd = psyrd * 10;\r
- psytrellis = psytrellis * 10;\r
+ // default psy-rd = 1 (10 for the slider)\r
+ psyrd = double.TryParse(x[0], out psyrd) ? psyrd * 10 : 10.0;\r
+ // default psy-trellis = 0\r
+ psytrellis = double.TryParse(x[1], out psytrellis) ? psytrellis * 10 : 0.0; \r
\r
int.TryParse(psyrd.ToString(), out val);\r
int.TryParse(psytrellis.ToString(), out val2);\r
{\r
double psyrd = slider_psyrd.Value * 0.1;\r
double psytre = slider_psytrellis.Value * 0.1;\r
- string rd, rt;\r
- if (psyrd == 1)\r
- rd = "1.0";\r
- else\r
- rd = psyrd.ToString();\r
\r
- if (psytre == 1)\r
- rt = "1.0";\r
- else\r
- rt = psytre.ToString();\r
+ string rd = psyrd.ToString("f1");\r
+ string rt = psytre.ToString("f1");\r
\r
thisOpt = "psy-rd=" + rd + "," + rt;\r
}\r
}\r
else if (optNameToChange.Equals("mixed-refs"))\r
- {\r
- if (check_mixedReferences.CheckState == CheckState.Checked)\r
- thisOpt = "mixed-refs=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_mixedReferences.CheckState == CheckState.Checked ? "mixed-refs=1" : "mixed-refs=0";\r
else if (optNameToChange.Equals("weightb"))\r
- {\r
- if (check_weightedBFrames.CheckState == CheckState.Checked)\r
- thisOpt = "weightb=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_weightedBFrames.CheckState == CheckState.Checked ? "weightb=1" : "";\r
else if (optNameToChange.Equals("b-pyramid"))\r
- {\r
- if (check_pyrmidalBFrames.CheckState == CheckState.Checked)\r
- thisOpt = "b-pyramid=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_pyrmidalBFrames.CheckState == CheckState.Checked ? "b-pyramid=1" : "";\r
else if (optNameToChange.Equals("no-fast-pskip"))\r
- {\r
- if (check_noFastPSkip.CheckState == CheckState.Checked)\r
- thisOpt = "no-fast-pskip=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_noFastPSkip.CheckState == CheckState.Checked ? "no-fast-pskip=1" : "";\r
else if (optNameToChange.Equals("no-dct-decimate"))\r
- {\r
- if (check_noDCTDecimate.CheckState == CheckState.Checked)\r
- thisOpt = "no-dct-decimate=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_noDCTDecimate.CheckState == CheckState.Checked ? "no-dct-decimate=1" : "";\r
else if (optNameToChange.Equals("8x8dct"))\r
- {\r
- if (check_8x8DCT.CheckState == CheckState.Checked)\r
- thisOpt = "8x8dct=1";\r
- else\r
- thisOpt = "";\r
- }\r
+ thisOpt = check_8x8DCT.CheckState == CheckState.Checked ? "8x8dct=1" : "8x8dct=0";\r
else if (optNameToChange.Equals("cabac"))\r
- {\r
- if (check_Cabac.CheckState == CheckState.Checked)\r
- thisOpt = "";\r
- else\r
- thisOpt = "cabac=0";\r
- }\r
+ thisOpt = check_Cabac.CheckState == CheckState.Checked ? "" : "cabac=0";\r
else if (optNameToChange.Equals("me"))\r
{\r
switch (drop_MotionEstimationMethod.SelectedIndex)\r
}\r
else if (optNameToChange.Equals("merange"))\r
{\r
- if (!drop_MotionEstimationRange.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "merange=" + drop_MotionEstimationRange.SelectedItem;\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_MotionEstimationRange.SelectedItem.ToString().Contains("Default")\r
+ ? "merange=" + drop_MotionEstimationRange.SelectedItem\r
+ : "";\r
}\r
else if (optNameToChange.Equals("b-adapt"))\r
{\r
- if (!drop_adaptBFrames.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "b-adapt=" + (drop_adaptBFrames.SelectedIndex - 1);\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_adaptBFrames.SelectedItem.ToString().Contains("Default")\r
+ ? "b-adapt=" + (drop_adaptBFrames.SelectedIndex - 1)\r
+ : "";\r
}\r
else if (optNameToChange.Equals("ref"))\r
{\r
- if (!drop_refFrames.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "ref=" + drop_refFrames.SelectedItem;\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_refFrames.SelectedItem.ToString().Contains("Default")\r
+ ? "ref=" + drop_refFrames.SelectedItem\r
+ : "";\r
}\r
else if (optNameToChange.Equals("bframes"))\r
{\r
String value = drop_bFrames.SelectedItem.ToString();\r
- if (!drop_bFrames.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "bframes=" + value;\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_bFrames.SelectedItem.ToString().Contains("Default")\r
+ ? "bframes=" + value\r
+ : "";\r
}\r
else if (optNameToChange.Equals("subq"))\r
{\r
String value = drop_subpixelMotionEstimation.SelectedItem.ToString();\r
- if (!drop_subpixelMotionEstimation.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "subq=" + value;\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_subpixelMotionEstimation.SelectedItem.ToString().Contains("Default")\r
+ ? "subq=" + value\r
+ : "";\r
}\r
else if (optNameToChange.Equals("trellis"))\r
{\r
String value = drop_trellis.SelectedItem.ToString();\r
- if (!drop_trellis.SelectedItem.ToString().Contains("Default"))\r
- thisOpt = "trellis=" + value;\r
- else\r
- thisOpt = "";\r
+ thisOpt = !drop_trellis.SelectedItem.ToString().Contains("Default")\r
+ ? "trellis=" + value\r
+ : "";\r
}\r
}\r
}\r
\r
/* Construct New String for opts here */\r
if (!thisOpt.Equals(""))\r
- {\r
- if (changedOptString.Equals(""))\r
- changedOptString = thisOpt;\r
- else\r
- changedOptString = changedOptString + ":" + thisOpt;\r
- }\r
+ changedOptString = changedOptString.Equals("") ? thisOpt : changedOptString + ":" + thisOpt;\r
}\r
\r
/* Change the option string to reflect the new mod settings */\r
{\r
double psyrd = slider_psyrd.Value * 0.1;\r
double psytre = slider_psytrellis.Value * 0.1;\r
- string rd, rt;\r
- if (psyrd == 1)\r
- rd = "1.0";\r
- else\r
- rd = psyrd.ToString();\r
\r
- if (psytre == 1)\r
- rt = "1.0";\r
- else\r
- rt = psytre.ToString();\r
+ string rd = psyrd.ToString("f1");\r
+ string rt = psytre.ToString("f1");\r
\r
query += colon + "psy-rd=" + rd + "," + rt;\r
}\r
{\r
if (check_mixedReferences.CheckState == CheckState.Checked)\r
query = query + colon + "mixed-refs=1";\r
+ else\r
+ query = query + colon + "mixed-refs=0";\r
}\r
else if (optNameToChange.Equals("weightb"))\r
{\r
switch(sender)\r
{\r
case "bframes":\r
- if (drop_bFrames.SelectedIndex < 2)\r
+ if (drop_bFrames.SelectedIndex >0 && drop_bFrames.SelectedIndex < 2 )\r
{\r
/* If the b-frame widget is at 0 or 1, the user has chosen\r
not to use b-frames at all. So disable the options\r
check_8x8DCT.Visible = true;\r
break;\r
case "ref":\r
- if (drop_refFrames.SelectedIndex < 3)\r
+ if (drop_refFrames.SelectedIndex > 0 && drop_refFrames.SelectedIndex < 3)\r
{\r
check_mixedReferences.Visible = false;\r
if (sender != "mixed-refs")\r
}\r
break;\r
case "trellis": // subme\r
- if (drop_trellis.SelectedIndex < 2)\r
+ if (drop_trellis.SelectedIndex > 0 && drop_trellis.SelectedIndex < 2 )\r
{\r
slider_psytrellis.Visible = false;\r
slider_psytrellis.Value = 0;\r