OSDN Git Service

LinGui: enable libdvdnav by default
[handbrake-jp/handbrake-jp-git.git] / win / C# / Controls / x264Panel.cs
index 59b049b..6df49e7 100644 (file)
@@ -1,9 +1,10 @@
-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
@@ -13,6 +14,11 @@ namespace Handbrake.Controls
         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
@@ -20,91 +26,76 @@ namespace Handbrake.Controls
             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
@@ -125,20 +116,19 @@ namespace Handbrake.Controls
             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
@@ -149,7 +139,7 @@ namespace Handbrake.Controls
             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
@@ -232,7 +222,7 @@ namespace Handbrake.Controls
         /// </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
@@ -389,15 +379,9 @@ namespace Handbrake.Controls
                                 }\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
@@ -409,7 +393,7 @@ namespace Handbrake.Controls
                                     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
@@ -417,13 +401,13 @@ namespace Handbrake.Controls
                             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
@@ -527,69 +511,27 @@ namespace Handbrake.Controls
                             {\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
@@ -663,60 +605,49 @@ namespace Handbrake.Controls
                         }\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
@@ -844,16 +775,9 @@ namespace Handbrake.Controls
                 {\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
@@ -862,6 +786,8 @@ namespace Handbrake.Controls
             {\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
@@ -937,7 +863,7 @@ namespace Handbrake.Controls
             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
@@ -1005,7 +931,7 @@ namespace Handbrake.Controls
                         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
@@ -1052,7 +978,7 @@ namespace Handbrake.Controls
                     }\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