OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 13 Jun 2009 19:55:49 +0000 (19:55 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Sat, 13 Jun 2009 19:55:49 +0000 (19:55 +0000)
- New subtitle tab. All complaints to j45 please.

git-svn-id: svn://localhost/HandBrake/trunk@2531 b64f7644-9d1e-0410-96f1-a4d463321fa5

14 files changed:
win/C#/Controls/AudioPanel.cs
win/C#/EncodeQueue/Encode.cs
win/C#/Functions/Main.cs
win/C#/Functions/PresetLoader.cs
win/C#/Functions/QueryGenerator.cs
win/C#/Functions/QueryParser.cs
win/C#/HandBrakeCS.csproj
win/C#/Parsing/Subtitle.cs
win/C#/frmMain.Designer.cs
win/C#/frmMain.cs
win/C#/frmMain.resx
win/C#/frmTestWindow.Designer.cs [deleted file]
win/C#/frmTestWindow.cs [deleted file]
win/C#/frmTestWindow.resx [deleted file]

index f657106..57a2583 100644 (file)
@@ -137,27 +137,7 @@ namespace Handbrake.Controls
         }\r
         private void btn_RemoveAudioTrack_Click(object sender, EventArgs e)\r
         {\r
-            // Remove the Item and reselect the control if the following conditions are met.\r
-            if (lv_audioList.SelectedItems.Count != 0)\r
-            {\r
-                // Record the current selected index.\r
-                int currentPosition = lv_audioList.SelectedIndices[0];\r
-\r
-                lv_audioList.Items.RemoveAt(lv_audioList.SelectedIndices[0]);\r
-\r
-                // Now reslect the correct item and give focus to the audio list.\r
-                if (lv_audioList.Items.Count != 0)\r
-                {\r
-                    if (currentPosition <= (lv_audioList.Items.Count - 1))\r
-                        lv_audioList.Items[currentPosition].Selected = true;\r
-                    else if (currentPosition > (lv_audioList.Items.Count - 1))\r
-                        lv_audioList.Items[lv_audioList.Items.Count - 1].Selected = true;\r
-\r
-                    lv_audioList.Select();\r
-                }\r
-                // Regenerate the ID numers\r
-                reGenerateListIDs();\r
-            }\r
+            removeAudioTrack();\r
         }\r
 \r
         // Audio List Menu\r
@@ -219,6 +199,8 @@ namespace Handbrake.Controls
 \r
                     lv_audioList.Select();\r
                 }\r
+                // Regenerate the ID numers\r
+                reGenerateListIDs();\r
             }\r
         }\r
 \r
index 22518bf..c0e0b7c 100644 (file)
@@ -86,18 +86,9 @@ namespace Handbrake.EncodeQueue
         /// </summary>\r
         public void closeCLI(EncodeProcess ep)\r
         {\r
-            Process[] prs = Process.GetProcesses();\r
-            foreach (Process process in prs)\r
-            {\r
-                if (process.Id == ep.processID)\r
-                {\r
-                    process.Refresh();\r
-                    if (!process.HasExited)\r
-                        process.Kill();\r
-\r
-                    process.WaitForExit();\r
-                }\r
-            } \r
+            Process cli = Process.GetProcessById(ep.processID);\r
+            if (!cli.HasExited)\r
+                cli.Kill();\r
         }\r
 \r
         /// <summary>\r
index be46465..84ba263 100644 (file)
@@ -54,62 +54,6 @@ namespace Handbrake.Functions
         }\r
 \r
         /// <summary>\r
-        /// Calculate the non-anamorphic resoltuion of the source\r
-        /// </summary>\r
-        /// <param name="width"></param>\r
-        /// <param name="top"></param>\r
-        /// <param name="bottom"></param>\r
-        /// <param name="left"></param>\r
-        /// <param name="right"></param>\r
-        /// <param name="selectedTitle"></param>\r
-        /// <returns></returns>\r
-        public static int cacluateNonAnamorphicHeight(int width, decimal top, decimal bottom, decimal left, decimal right, Parsing.Title selectedTitle)\r
-        {\r
-            float aspect = selectedTitle.AspectRatio;\r
-            int aw = 0;\r
-            int ah = 0;\r
-            if (aspect.ToString() == "1.78")\r
-            {\r
-                aw = 16;\r
-                ah = 9;\r
-            }\r
-            else if (aspect.ToString() == "1.33")\r
-            {\r
-                aw = 4;\r
-                ah = 3;\r
-            }\r
-\r
-            if (aw != 0)\r
-            {\r
-                double a = width * selectedTitle.Resolution.Width * ah * (selectedTitle.Resolution.Height - (double)top - (double)bottom);\r
-                double b = selectedTitle.Resolution.Height * aw * (selectedTitle.Resolution.Width - (double)left - (double)right);\r
-\r
-                double y = a / b;\r
-\r
-                // If it's not Mod 16, make it mod 16\r
-                if ((y % 16) != 0)\r
-                {\r
-                    double mod16 = y % 16;\r
-                    if (mod16 >= 8)\r
-                    {\r
-                        mod16 = 16 - mod16;\r
-                        y = y + mod16;\r
-                    }\r
-                    else\r
-                    {\r
-                        y = y - mod16;\r
-                    }\r
-                }\r
-\r
-                //16 * (421 / 16)\r
-                //double z = ( 16 * (( y + 8 ) / 16 ) );\r
-                int x = int.Parse(y.ToString());\r
-                return x;\r
-            }\r
-            return 0;\r
-        }\r
-\r
-        /// <summary>\r
         /// Select the longest title in the DVD title dropdown menu on frmMain\r
         /// </summary>\r
         public static Parsing.Title selectLongestTitle(ComboBox drp_dvdtitle)\r
@@ -315,8 +259,7 @@ namespace Handbrake.Functions
                         Properties.Settings.Default.hb_version = arr[0];\r
                     }\r
                     if (cliProcess.TotalProcessorTime.Seconds > 10) // Don't wait longer than 10 seconds.\r
-                        killCLI();\r
-\r
+                        killCLI(cliProcess.Id);\r
                 }\r
             }\r
             catch (Exception e)\r
@@ -328,21 +271,11 @@ namespace Handbrake.Functions
         /// <summary>\r
         /// Search through the running processes on the system and kill HandBrakeCLI\r
         /// </summary>\r
-        private static void killCLI()\r
+        private static void killCLI(int id)\r
         {\r
-            string AppName = "HandBrakeCLI";\r
-            AppName = AppName.ToUpper();\r
-\r
-            Process[] prs = Process.GetProcesses();\r
-            foreach (Process proces in prs)\r
-            {\r
-                if (proces.ProcessName.ToUpper() == AppName)\r
-                {\r
-                    proces.Refresh();\r
-                    if (!proces.HasExited)\r
-                        proces.Kill();\r
-                }\r
-            }\r
+            Process cli = Process.GetProcessById(id);\r
+            if (!cli.HasExited)\r
+                cli.Kill();\r
         }\r
 \r
         /// <summary>\r
index 44f9016..15eb741 100644 (file)
@@ -246,7 +246,7 @@ namespace Handbrake.Functions
                     mainWindow.audioPanel.addTrackForPreset(newTrack);\r
                 }\r
 \r
-            // Subtitle Stuff\r
+            /*/ Subtitle Stuff\r
             mainWindow.drp_subtitle.Text = presetQuery.Subtitles;\r
 \r
             if (presetQuery.ForcedSubtitles)\r
@@ -255,7 +255,7 @@ namespace Handbrake.Functions
                 mainWindow.check_forced.Enabled = true;\r
             }\r
             else\r
-                mainWindow.check_forced.CheckState = CheckState.Unchecked;\r
+                mainWindow.check_forced.CheckState = CheckState.Unchecked;*/\r
 \r
             #endregion\r
 \r
index c90d7db..2f6e474 100644 (file)
@@ -391,18 +391,74 @@ namespace Handbrake.Functions
             if (audioItems.Trim() != String.Empty)\r
                 query += " -D " + audioItems;\r
 \r
-            // Subtitles\r
-            string subtitles = mainWindow.drp_subtitle.Text;\r
-            if (subtitles == "Autoselect")\r
-                query += " -U ";\r
-            else if (subtitles != "" && subtitles != "None")\r
+            #endregion\r
+\r
+            #region Subtitles Tab\r
+\r
+            if (mainWindow.Subtitles.lv_subList.Items.Count != 0) // If we have subtitle tracks\r
             {\r
-                string[] tempSub = subtitles.Split(' ');\r
-                query += " -s " + tempSub[0];\r
-            }\r
+                // Find --subtitle <string>\r
+                query += " --subtitle ";\r
+                String subtitleTracks = "";\r
+                String itemToAdd;\r
+                foreach (ListViewItem item in mainWindow.Subtitles.lv_subList.Items)\r
+                {\r
+                    if (item.SubItems[1].Text.Contains("Foreign Audio Search"))\r
+                        itemToAdd = "scan";\r
+                    else\r
+                    {\r
+                        string[] tempSub = item.SubItems[1].Text.Split(' ');\r
+                        itemToAdd = tempSub[0];\r
+                    }\r
+\r
+                    subtitleTracks += subtitleTracks == "" ? itemToAdd : "," + itemToAdd;\r
+                }\r
+                query += subtitleTracks;\r
+\r
+\r
+                // Find --subtitle-forced\r
+                String forcedTrack = "";\r
+                foreach (ListViewItem item in mainWindow.Subtitles.lv_subList.Items)\r
+                {\r
+                    itemToAdd = "";\r
+                    string[] tempSub = item.SubItems[1].Text.Split(' ');\r
+                    string trackID = tempSub[0];\r
+\r
+                    if (item.SubItems[2].Text == "Yes")\r
+                        itemToAdd = trackID;\r
 \r
-            if (mainWindow.check_forced.Checked)\r
-                query += " -F ";\r
+                    if (itemToAdd != "")\r
+                        forcedTrack += forcedTrack == "" ? itemToAdd : "," + itemToAdd;\r
+                }\r
+                if (forcedTrack != "")\r
+                    query += " --subtitle-forced " + forcedTrack;\r
+\r
+\r
+                // Find --subtitle-burn and --subtitle-default\r
+                String burned = "";\r
+                String defaultTrack = "";\r
+                foreach (ListViewItem item in mainWindow.Subtitles.lv_subList.Items)\r
+                {\r
+                    string[] tempSub = item.SubItems[1].Text.Split(' ');\r
+                    string trackID = tempSub[0];\r
+\r
+                    if (trackID.Trim() == "Foreign")\r
+                        trackID = "scan";\r
+\r
+                    if (item.SubItems[3].Text == "Yes") // Burned\r
+                        burned = trackID;\r
+\r
+                    if (item.SubItems[4].Text == "Yes") // Burned\r
+                        defaultTrack = trackID;\r
+\r
+                }\r
+                if (burned != "")\r
+                    query += " --subtitle-burn " + burned;\r
+\r
+                if (defaultTrack != "")\r
+                    query += " --subtitle-default " + defaultTrack;\r
+\r
+            }\r
 \r
             #endregion\r
 \r
index 659073a..5c1576c 100644 (file)
@@ -97,10 +97,6 @@ namespace Handbrake.Functions
 \r
             #region Regular Expressions\r
 \r
-            // Useful Destination Finder\r
-            //Regex r1 = new Regex(@"(-i)(?:\s\"")([a-zA-Z0-9?';!^%&*()_\-:\\\s\.]+)(?:\"")");\r
-            //Match source = r1.Match(input.Replace('"', '\"'));\r
-\r
             //Source\r
             Match title = Regex.Match(input, @"-t ([0-9]*)");\r
             Match chapters = Regex.Match(input, @"-c ([0-9-]*)");\r
index d0082e2..a65f0c2 100644 (file)
     <Compile Include="Functions\PresetLoader.cs" />\r
     <Compile Include="Functions\QueryGenerator.cs" />\r
     <Compile Include="Functions\Main.cs" />\r
-    <Compile Include="frmTestWindow.cs">\r
-      <SubType>Form</SubType>\r
-    </Compile>\r
-    <Compile Include="frmTestWindow.Designer.cs">\r
-      <DependentUpon>frmTestWindow.cs</DependentUpon>\r
-    </Compile>\r
     <Compile Include="Functions\Win32.cs" />\r
     <Compile Include="Presets\preset.cs" />\r
     <Compile Include="Presets\PresetsHandler.cs" />\r
       <DependentUpon>frmUpdater.cs</DependentUpon>\r
       <SubType>Designer</SubType>\r
     </EmbeddedResource>\r
-    <EmbeddedResource Include="frmTestWindow.resx">\r
-      <DependentUpon>frmTestWindow.cs</DependentUpon>\r
-      <SubType>Designer</SubType>\r
-    </EmbeddedResource>\r
     <EmbeddedResource Include="Properties\Resources.resx">\r
       <Generator>ResXFileCodeGenerator</Generator>\r
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>\r
index 1fe45c2..a765f1d 100644 (file)
@@ -60,7 +60,7 @@ namespace Handbrake.Parsing
         /// <returns>A string formatted as: {track #} {language}</returns>\r
         public override string ToString()\r
         {\r
-            return string.Format("{0} {1}", m_trackNumber, m_language);\r
+            return string.Format("{0} {1} ({2})", m_trackNumber, m_language, m_type);\r
         }\r
 \r
         public static Subtitle Parse(StringReader output)\r
index 912b49f..11d50ff 100644 (file)
@@ -56,7 +56,6 @@ namespace Handbrake
             this.slider_videoQuality = new System.Windows.Forms.TrackBar();\r
             this.text_filesize = new System.Windows.Forms.TextBox();\r
             this.text_bitrate = new System.Windows.Forms.TextBox();\r
-            this.drp_subtitle = new System.Windows.Forms.ComboBox();\r
             this.btn_setDefault = new System.Windows.Forms.Button();\r
             this.check_optimiseMP4 = new System.Windows.Forms.CheckBox();\r
             this.check_iPodAtom = new System.Windows.Forms.CheckBox();\r
@@ -97,8 +96,6 @@ namespace Handbrake
             this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();\r
             this.mnu_about = new System.Windows.Forms.ToolStripMenuItem();\r
             this.frmMainMenu = new System.Windows.Forms.MenuStrip();\r
-            this.debugToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-            this.mnu_qptest = new System.Windows.Forms.ToolStripMenuItem();\r
             this.gb_source = new System.Windows.Forms.GroupBox();\r
             this.lbl_angle = new System.Windows.Forms.Label();\r
             this.Label13 = new System.Windows.Forms.Label();\r
@@ -112,9 +109,6 @@ namespace Handbrake
             this.tab_audio = new System.Windows.Forms.TabPage();\r
             this.audioPanel = new Handbrake.Controls.AudioPanel();\r
             this.AudioMenuRowHeightHack = new System.Windows.Forms.ImageList(this.components);\r
-            this.check_forced = new System.Windows.Forms.CheckBox();\r
-            this.Label19 = new System.Windows.Forms.Label();\r
-            this.Label20 = new System.Windows.Forms.Label();\r
             this.tab_video = new System.Windows.Forms.TabPage();\r
             this.radio_cq = new System.Windows.Forms.RadioButton();\r
             this.radio_avgBitrate = new System.Windows.Forms.RadioButton();\r
@@ -139,6 +133,7 @@ namespace Handbrake
             this.ctl_decomb = new Handbrake.Decomb();\r
             this.ctl_detelecine = new Handbrake.Detelecine();\r
             this.tab_subtitles = new System.Windows.Forms.TabPage();\r
+            this.Subtitles = new Handbrake.Controls.Subtitles();\r
             this.tab_chapters = new System.Windows.Forms.TabPage();\r
             this.label31 = new System.Windows.Forms.Label();\r
             this.tab_advanced = new System.Windows.Forms.TabPage();\r
@@ -383,21 +378,6 @@ namespace Handbrake
             this.text_bitrate.TabIndex = 10;\r
             this.ToolTip.SetToolTip(this.text_bitrate, "Set the bitrate of the video");\r
             // \r
-            // drp_subtitle\r
-            // \r
-            this.drp_subtitle.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.drp_subtitle.FormattingEnabled = true;\r
-            this.drp_subtitle.Items.AddRange(new object[] {\r
-            "None",\r
-            "Autoselect"});\r
-            this.drp_subtitle.Location = new System.Drawing.Point(79, 39);\r
-            this.drp_subtitle.Name = "drp_subtitle";\r
-            this.drp_subtitle.Size = new System.Drawing.Size(138, 21);\r
-            this.drp_subtitle.TabIndex = 43;\r
-            this.drp_subtitle.Text = "None";\r
-            this.ToolTip.SetToolTip(this.drp_subtitle, resources.GetString("drp_subtitle.ToolTip"));\r
-            this.drp_subtitle.SelectedIndexChanged += new System.EventHandler(this.drp_subtitle_SelectedIndexChanged);\r
-            // \r
             // btn_setDefault\r
             // \r
             this.btn_setDefault.FlatAppearance.BorderColor = System.Drawing.Color.Black;\r
@@ -771,8 +751,7 @@ namespace Handbrake
             this.FileToolStripMenuItem,\r
             this.ToolsToolStripMenuItem,\r
             this.PresetsToolStripMenuItem,\r
-            this.HelpToolStripMenuItem,\r
-            this.debugToolStripMenuItem});\r
+            this.HelpToolStripMenuItem});\r
             this.frmMainMenu.Location = new System.Drawing.Point(0, 0);\r
             this.frmMainMenu.Name = "frmMainMenu";\r
             this.frmMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;\r
@@ -780,22 +759,6 @@ namespace Handbrake
             this.frmMainMenu.TabIndex = 0;\r
             this.frmMainMenu.Text = "MenuStrip";\r
             // \r
-            // debugToolStripMenuItem\r
-            // \r
-            this.debugToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-            this.mnu_qptest});\r
-            this.debugToolStripMenuItem.Name = "debugToolStripMenuItem";\r
-            this.debugToolStripMenuItem.Size = new System.Drawing.Size(56, 20);\r
-            this.debugToolStripMenuItem.Text = "Debug";\r
-            this.debugToolStripMenuItem.Visible = false;\r
-            // \r
-            // mnu_qptest\r
-            // \r
-            this.mnu_qptest.Name = "mnu_qptest";\r
-            this.mnu_qptest.Size = new System.Drawing.Size(201, 22);\r
-            this.mnu_qptest.Text = "Query Parser Tester";\r
-            this.mnu_qptest.Click += new System.EventHandler(this.mnu_qptest_Click);\r
-            // \r
             // gb_source\r
             // \r
             this.gb_source.Controls.Add(this.drop_angle);\r
@@ -941,7 +904,6 @@ namespace Handbrake
             this.audioPanel.Name = "audioPanel";\r
             this.audioPanel.Size = new System.Drawing.Size(715, 310);\r
             this.audioPanel.TabIndex = 0;\r
-\r
             // \r
             // AudioMenuRowHeightHack\r
             // \r
@@ -949,40 +911,6 @@ namespace Handbrake
             this.AudioMenuRowHeightHack.ImageSize = new System.Drawing.Size(1, 18);\r
             this.AudioMenuRowHeightHack.TransparentColor = System.Drawing.Color.Transparent;\r
             // \r
-            // check_forced\r
-            // \r
-            this.check_forced.AutoSize = true;\r
-            this.check_forced.BackColor = System.Drawing.Color.Transparent;\r
-            this.check_forced.Enabled = false;\r
-            this.check_forced.Location = new System.Drawing.Point(223, 42);\r
-            this.check_forced.Name = "check_forced";\r
-            this.check_forced.Size = new System.Drawing.Size(147, 17);\r
-            this.check_forced.TabIndex = 44;\r
-            this.check_forced.Text = "Forced Subtitles Only";\r
-            this.check_forced.UseVisualStyleBackColor = false;\r
-            // \r
-            // Label19\r
-            // \r
-            this.Label19.AutoSize = true;\r
-            this.Label19.BackColor = System.Drawing.Color.Transparent;\r
-            this.Label19.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Label19.Location = new System.Drawing.Point(13, 13);\r
-            this.Label19.Name = "Label19";\r
-            this.Label19.Size = new System.Drawing.Size(64, 13);\r
-            this.Label19.TabIndex = 40;\r
-            this.Label19.Text = "Subtitles";\r
-            // \r
-            // Label20\r
-            // \r
-            this.Label20.AutoSize = true;\r
-            this.Label20.BackColor = System.Drawing.Color.Transparent;\r
-            this.Label20.Font = new System.Drawing.Font("Verdana", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));\r
-            this.Label20.Location = new System.Drawing.Point(13, 42);\r
-            this.Label20.Name = "Label20";\r
-            this.Label20.Size = new System.Drawing.Size(61, 13);\r
-            this.Label20.TabIndex = 42;\r
-            this.Label20.Text = "Subtitles:";\r
-            // \r
             // tab_video\r
             // \r
             this.tab_video.BackColor = System.Drawing.Color.Transparent;\r
@@ -1269,10 +1197,7 @@ namespace Handbrake
             // \r
             // tab_subtitles\r
             // \r
-            this.tab_subtitles.Controls.Add(this.drp_subtitle);\r
-            this.tab_subtitles.Controls.Add(this.check_forced);\r
-            this.tab_subtitles.Controls.Add(this.Label20);\r
-            this.tab_subtitles.Controls.Add(this.Label19);\r
+            this.tab_subtitles.Controls.Add(this.Subtitles);\r
             this.tab_subtitles.Location = new System.Drawing.Point(4, 22);\r
             this.tab_subtitles.Name = "tab_subtitles";\r
             this.tab_subtitles.Padding = new System.Windows.Forms.Padding(3);\r
@@ -1281,6 +1206,15 @@ namespace Handbrake
             this.tab_subtitles.Text = "Subtitles";\r
             this.tab_subtitles.UseVisualStyleBackColor = true;\r
             // \r
+            // Subtitles\r
+            // \r
+            this.Subtitles.BackColor = System.Drawing.Color.Transparent;\r
+            this.Subtitles.Location = new System.Drawing.Point(0, 0);\r
+            this.Subtitles.Name = "Subtitles";\r
+            this.Subtitles.setContainer = 0;\r
+            this.Subtitles.Size = new System.Drawing.Size(722, 310);\r
+            this.Subtitles.TabIndex = 0;\r
+            // \r
             // tab_chapters\r
             // \r
             this.tab_chapters.BackColor = System.Drawing.Color.Transparent;\r
@@ -1723,7 +1657,6 @@ namespace Handbrake
             this.tab_filters.ResumeLayout(false);\r
             this.tab_filters.PerformLayout();\r
             this.tab_subtitles.ResumeLayout(false);\r
-            this.tab_subtitles.PerformLayout();\r
             this.tab_chapters.ResumeLayout(false);\r
             this.tab_chapters.PerformLayout();\r
             this.tab_advanced.ResumeLayout(false);\r
@@ -1791,9 +1724,6 @@ namespace Handbrake
         internal System.Windows.Forms.TabControl tabs_panel;\r
         internal System.Windows.Forms.Label Label46;\r
         private System.Windows.Forms.GroupBox groupBox_dest;\r
-        internal System.Windows.Forms.ComboBox drp_subtitle;\r
-        internal System.Windows.Forms.Label Label19;\r
-        internal System.Windows.Forms.Label Label20;\r
         internal System.Windows.Forms.CheckBox check_grayscale;\r
         internal System.Windows.Forms.Label label24;\r
         private System.Windows.Forms.GroupBox groupBox2;\r
@@ -1808,7 +1738,6 @@ namespace Handbrake
         private System.Windows.Forms.TabPage tab_chapters;\r
         internal System.Windows.Forms.Label label31;\r
         internal System.Windows.Forms.CheckBox check_optimiseMP4;\r
-        internal System.Windows.Forms.CheckBox check_forced;\r
         internal System.Windows.Forms.DataGridView data_chpt;\r
         private System.Windows.Forms.TabPage tab_query;\r
         private System.Windows.Forms.Label label34;\r
@@ -1862,8 +1791,6 @@ namespace Handbrake
         private System.Windows.Forms.ImageList AudioMenuRowHeightHack;\r
         private System.Windows.Forms.ToolStripMenuItem pmnu_saveChanges;\r
         private System.Windows.Forms.ToolStripMenuItem mnu_killCLI;\r
-        private System.Windows.Forms.ToolStripMenuItem debugToolStripMenuItem;\r
-        private System.Windows.Forms.ToolStripMenuItem mnu_qptest;\r
         private System.Windows.Forms.TabPage tab_filters;\r
         internal Deinterlace ctl_deinterlace;\r
         internal Denoise ctl_denoise;\r
@@ -1883,6 +1810,7 @@ namespace Handbrake
         private TabPage tab_subtitles;\r
         internal Handbrake.Controls.AudioPanel audioPanel;\r
         internal Handbrake.Controls.PictureSettings pictureSettings;\r
+        internal Handbrake.Controls.Subtitles Subtitles;\r
 \r
  \r
     }\r
index 33a177a..b74499e 100644 (file)
@@ -337,14 +337,6 @@ namespace Handbrake
         }\r
         #endregion\r
 \r
-        #region Debug Menu\r
-        private void mnu_qptest_Click(object sender, EventArgs e)\r
-        {\r
-            QueryParserTester qptest = new QueryParserTester();\r
-            qptest.Show();\r
-        }\r
-        #endregion\r
-\r
         #region Preset Bar\r
         // Right Click Menu Code\r
         private void pmnu_expandAll_Click(object sender, EventArgs e)\r
@@ -797,13 +789,10 @@ namespace Handbrake
                 audioPanel.setTrackList(selectedTitle);\r
 \r
                 // Populate the Subtitles dropdown\r
-                drp_subtitle.Items.Clear();\r
-                drp_subtitle.Items.Add("None");\r
-                drp_subtitle.Items.Add("Autoselect");\r
-                drp_subtitle.Items.AddRange(selectedTitle.Subtitles.ToArray());\r
-                if (drp_subtitle.Items.Count > 0)\r
-                    drp_subtitle.Text = drp_subtitle.Items[0].ToString();\r
-\r
+                Subtitles.drp_subtitleTracks.Items.Clear();\r
+                Subtitles.drp_subtitleTracks.Items.Add("Foreign Audio Search (Bitmap)");\r
+                Subtitles.drp_subtitleTracks.Items.AddRange(selectedTitle.Subtitles.ToArray());\r
+                Subtitles.drp_subtitleTracks.SelectedIndex = 0;\r
             }\r
 \r
             // Run the autoName & chapterNaming functions\r
@@ -988,6 +977,7 @@ namespace Handbrake
                 setExtension(".mkv");\r
 \r
             audioPanel.setAudioByContainer(drop_format.Text);\r
+            Subtitles.setContainer = drop_format.SelectedIndex;\r
 \r
             string oldval;\r
             if ((drop_format.Text.Contains("MP4")) || (drop_format.Text.Contains("M4V")))\r
@@ -1200,18 +1190,6 @@ namespace Handbrake
             lbl_deblockVal.Text = slider_deblock.Value == 4 ? "Off" : slider_deblock.Value.ToString();\r
         }\r
 \r
-        //Subtitles Tab\r
-        private void drp_subtitle_SelectedIndexChanged(object sender, EventArgs e)\r
-        {\r
-            if (drp_subtitle.Text.Contains("None"))\r
-            {\r
-                check_forced.Enabled = false;\r
-                check_forced.Checked = false;\r
-            }\r
-            else\r
-                check_forced.Enabled = true;\r
-        }\r
-\r
         // Chapter Marker Tab\r
         private void Check_ChapterMarkers_CheckedChanged(object sender, EventArgs e)\r
         {\r
@@ -1614,7 +1592,6 @@ namespace Handbrake
         #endregion\r
 \r
 \r
-\r
         // This is the END of the road ****************************************\r
     }\r
 }
\ No newline at end of file
index a76ccfd..400badb 100644 (file)
   <metadata name="ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>18, 15</value>\r
   </metadata>\r
-  <data name="drp_subtitle.ToolTip" xml:space="preserve">\r
-    <value>Select the subtitle language you require from this dropdown.\r
- - or -\r
-Autoselect: Scan for subtitles in an extra 1st pass, and choose\r
-the one that's only used 10 percent of the time or less. \r
-This should locate subtitles for short foreign language segments. \r
-Best used in conjunction with forced subtitles.</value>\r
-  </data>\r
   <metadata name="number.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
     <value>True</value>\r
   </metadata>\r
diff --git a/win/C#/frmTestWindow.Designer.cs b/win/C#/frmTestWindow.Designer.cs
deleted file mode 100644 (file)
index 9a3691c..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-namespace Handbrake.Functions\r
-{\r
-    partial class QueryParserTester\r
-    {\r
-        /// <summary>\r
-        /// Required designer variable.\r
-        /// </summary>\r
-        private System.ComponentModel.IContainer components = null;\r
-\r
-        /// <summary>\r
-        /// Clean up any resources being used.\r
-        /// </summary>\r
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
-        protected override void Dispose(bool disposing)\r
-        {\r
-            if (disposing && (components != null))\r
-            {\r
-                components.Dispose();\r
-            }\r
-            base.Dispose(disposing);\r
-        }\r
-\r
-        #region Windows Form Designer generated code\r
-\r
-        /// <summary>\r
-        /// Required method for Designer support - do not modify\r
-        /// the contents of this method with the code editor.\r
-        /// </summary>\r
-        private void InitializeComponent()\r
-        {\r
-            this.rtf_testContent = new System.Windows.Forms.RichTextBox();\r
-            this.btn_test = new System.Windows.Forms.Button();\r
-            this.rtf_query = new System.Windows.Forms.RichTextBox();\r
-            this.label1 = new System.Windows.Forms.Label();\r
-            this.label2 = new System.Windows.Forms.Label();\r
-            this.SuspendLayout();\r
-            // \r
-            // rtf_testContent\r
-            // \r
-            this.rtf_testContent.Location = new System.Drawing.Point(111, 164);\r
-            this.rtf_testContent.Name = "rtf_testContent";\r
-            this.rtf_testContent.Size = new System.Drawing.Size(641, 420);\r
-            this.rtf_testContent.TabIndex = 0;\r
-            this.rtf_testContent.Text = "";\r
-            // \r
-            // btn_test\r
-            // \r
-            this.btn_test.Location = new System.Drawing.Point(405, 115);\r
-            this.btn_test.Name = "btn_test";\r
-            this.btn_test.Size = new System.Drawing.Size(75, 23);\r
-            this.btn_test.TabIndex = 1;\r
-            this.btn_test.Text = "Test";\r
-            this.btn_test.UseVisualStyleBackColor = true;\r
-            this.btn_test.Click += new System.EventHandler(this.btn_test_Click);\r
-            // \r
-            // rtf_query\r
-            // \r
-            this.rtf_query.Location = new System.Drawing.Point(111, 12);\r
-            this.rtf_query.Name = "rtf_query";\r
-            this.rtf_query.Size = new System.Drawing.Size(641, 77);\r
-            this.rtf_query.TabIndex = 2;\r
-            this.rtf_query.Text = "";\r
-            // \r
-            // label1\r
-            // \r
-            this.label1.AutoSize = true;\r
-            this.label1.Location = new System.Drawing.Point(37, 43);\r
-            this.label1.Name = "label1";\r
-            this.label1.Size = new System.Drawing.Size(38, 13);\r
-            this.label1.TabIndex = 3;\r
-            this.label1.Text = "Query:";\r
-            // \r
-            // label2\r
-            // \r
-            this.label2.AutoSize = true;\r
-            this.label2.Location = new System.Drawing.Point(37, 327);\r
-            this.label2.Name = "label2";\r
-            this.label2.Size = new System.Drawing.Size(40, 13);\r
-            this.label2.TabIndex = 4;\r
-            this.label2.Text = "Result:";\r
-            // \r
-            // QueryParserTester\r
-            // \r
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
-            this.ClientSize = new System.Drawing.Size(780, 625);\r
-            this.Controls.Add(this.label2);\r
-            this.Controls.Add(this.label1);\r
-            this.Controls.Add(this.rtf_query);\r
-            this.Controls.Add(this.btn_test);\r
-            this.Controls.Add(this.rtf_testContent);\r
-            this.Name = "QueryParserTester";\r
-            this.Text = "QueryParserTester";\r
-            this.ResumeLayout(false);\r
-            this.PerformLayout();\r
-\r
-        }\r
-\r
-        #endregion\r
-\r
-        private System.Windows.Forms.RichTextBox rtf_testContent;\r
-        private System.Windows.Forms.Button btn_test;\r
-        private System.Windows.Forms.RichTextBox rtf_query;\r
-        private System.Windows.Forms.Label label1;\r
-        private System.Windows.Forms.Label label2;\r
-    }\r
-}
\ No newline at end of file
diff --git a/win/C#/frmTestWindow.cs b/win/C#/frmTestWindow.cs
deleted file mode 100644 (file)
index a7dd567..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;\r
-using System.Windows.Forms;\r
-\r
-namespace Handbrake.Functions\r
-{\r
-    public partial class QueryParserTester : Form\r
-    {\r
-        public QueryParserTester()\r
-        {\r
-            InitializeComponent();\r
-\r
-        }\r
-\r
-        private void btn_test_Click(object sender, EventArgs e)\r
-        {\r
-            QueryParser parsed = QueryParser.Parse(rtf_query.Text);\r
-\r
-            rtf_testContent.Clear();\r
-\r
-            //Source\r
-            rtf_testContent.Text += "## Source " + Environment.NewLine;\r
-            if (parsed.DVDTitle != 0)\r
-                rtf_testContent.Text += "Title: " + parsed.DVDTitle + Environment.NewLine;\r
-            if (parsed.DVDChapterStart != 0)\r
-                rtf_testContent.Text += "Start Chapter: " + parsed.DVDChapterStart + Environment.NewLine;\r
-            if (parsed.DVDChapterFinish != 0)\r
-                rtf_testContent.Text += "End Chapter: " + parsed.DVDChapterFinish + Environment.NewLine;\r
-\r
-            //Output Settings\r
-            rtf_testContent.Text += Environment.NewLine + "## Output Settings " + Environment.NewLine;\r
-            if (parsed.Format != null)\r
-                rtf_testContent.Text += "Format: " + parsed.Format + Environment.NewLine;\r
-            if (parsed.LargeMP4)\r
-                rtf_testContent.Text += "Large File Size: " + parsed.LargeMP4 + Environment.NewLine;\r
-            if (parsed.OptimizeMP4)\r
-                rtf_testContent.Text += "Web Optimized: " + parsed.OptimizeMP4 + Environment.NewLine;\r
-            if (parsed.IpodAtom)\r
-                rtf_testContent.Text += "iPod 5G Support " + parsed.IpodAtom + Environment.NewLine;\r
-\r
-            //Picture Settings\r
-            rtf_testContent.Text += Environment.NewLine + "## Picture Settings " + Environment.NewLine;\r
-            if (parsed.CropValues != null)\r
-                rtf_testContent.Text += "Cropping: " + parsed.CropValues + Environment.NewLine;\r
-            if (parsed.Width != 0)\r
-                rtf_testContent.Text += "Width: " + parsed.Width + Environment.NewLine;\r
-            if (parsed.Height != 0)\r
-                rtf_testContent.Text += "Height: " + parsed.Height + Environment.NewLine;\r
-            if (parsed.MaxWidth != 0)\r
-                rtf_testContent.Text += "Max Width: " + parsed.MaxWidth + Environment.NewLine;\r
-            if (parsed.MaxHeight != 0)\r
-                rtf_testContent.Text += "Max Height: " + parsed.MaxHeight + Environment.NewLine;\r
-            rtf_testContent.Text += "Anamorphic Mode: " + parsed.AnamorphicMode + Environment.NewLine;\r
-\r
-            //Picture Settings - Filters\r
-            rtf_testContent.Text += Environment.NewLine + "## Filters " + Environment.NewLine;\r
-            rtf_testContent.Text += "Detelecine: " + parsed.DeTelecine + Environment.NewLine;\r
-            rtf_testContent.Text += "Decomb: " + parsed.Decomb + Environment.NewLine;\r
-            rtf_testContent.Text += "Deinterlace: " + parsed.DeInterlace + Environment.NewLine;\r
-            rtf_testContent.Text += "Denoise: " + parsed.DeNoise + Environment.NewLine;\r
-            rtf_testContent.Text += "Deblock: " + parsed.DeBlock + Environment.NewLine;\r
-\r
-            //Video\r
-            rtf_testContent.Text += Environment.NewLine + "## Video " + Environment.NewLine;\r
-            rtf_testContent.Text += "Video Codec: " + parsed.VideoEncoder + Environment.NewLine;\r
-            rtf_testContent.Text += "Video Framerate: " + parsed.VideoFramerate + Environment.NewLine;\r
-            if (parsed.Grayscale)\r
-                rtf_testContent.Text += "Grayscale: " + parsed.Grayscale + Environment.NewLine;\r
-            if (parsed.TwoPass)\r
-                rtf_testContent.Text += "2-Pass Encoding: " + parsed.TwoPass + Environment.NewLine;\r
-            if (parsed.TurboFirstPass)\r
-                rtf_testContent.Text += "Turbo first pass: " + parsed.TurboFirstPass + Environment.NewLine;\r
-            if (parsed.VideoTargetSize != null)\r
-                rtf_testContent.Text += "Target Size: " + parsed.VideoTargetSize + Environment.NewLine;\r
-            if (parsed.AverageVideoBitrate != null)\r
-                rtf_testContent.Text += "Avg Bitrate: " + parsed.AverageVideoBitrate + Environment.NewLine;\r
-            if (parsed.VideoQuality != 0)\r
-                rtf_testContent.Text += "Constant Quality: " + parsed.VideoQuality + Environment.NewLine;\r
-\r
-            //Audio\r
-            // TODO\r
-\r
-            //Chapters\r
-            if (parsed.ChapterMarkers)\r
-            {\r
-                rtf_testContent.Text += Environment.NewLine + "## Chapers " + Environment.NewLine;\r
-                rtf_testContent.Text += "Chapters: " + parsed.ChapterMarkers + Environment.NewLine;\r
-            }\r
-\r
-            //Advanced\r
-            if (parsed.H264Query != null)\r
-            {\r
-                rtf_testContent.Text += Environment.NewLine + "## x264 " + Environment.NewLine;\r
-                rtf_testContent.Text += "x264: " + parsed.H264Query + Environment.NewLine;\r
-            }\r
-        }\r
-\r
-    }\r
-}\r
diff --git a/win/C#/frmTestWindow.resx b/win/C#/frmTestWindow.resx
deleted file mode 100644 (file)
index ff31a6d..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<root>\r
-  <!-- \r
-    Microsoft ResX Schema \r
-    \r
-    Version 2.0\r
-    \r
-    The primary goals of this format is to allow a simple XML format \r
-    that is mostly human readable. The generation and parsing of the \r
-    various data types are done through the TypeConverter classes \r
-    associated with the data types.\r
-    \r
-    Example:\r
-    \r
-    ... ado.net/XML headers & schema ...\r
-    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
-    <resheader name="version">2.0</resheader>\r
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
-        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
-    </data>\r
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
-        <comment>This is a comment</comment>\r
-    </data>\r
-                \r
-    There are any number of "resheader" rows that contain simple \r
-    name/value pairs.\r
-    \r
-    Each data row contains a name, and value. The row also contains a \r
-    type or mimetype. Type corresponds to a .NET class that support \r
-    text/value conversion through the TypeConverter architecture. \r
-    Classes that don't support this are serialized and stored with the \r
-    mimetype set.\r
-    \r
-    The mimetype is used for serialized objects, and tells the \r
-    ResXResourceReader how to depersist the object. This is currently not \r
-    extensible. For a given mimetype the value must be set accordingly:\r
-    \r
-    Note - application/x-microsoft.net.object.binary.base64 is the format \r
-    that the ResXResourceWriter will generate, however the reader can \r
-    read any of the formats listed below.\r
-    \r
-    mimetype: application/x-microsoft.net.object.binary.base64\r
-    value   : The object must be serialized with \r
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
-            : and then encoded with base64 encoding.\r
-    \r
-    mimetype: application/x-microsoft.net.object.soap.base64\r
-    value   : The object must be serialized with \r
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
-            : and then encoded with base64 encoding.\r
-\r
-    mimetype: application/x-microsoft.net.object.bytearray.base64\r
-    value   : The object must be serialized into a byte array \r
-            : using a System.ComponentModel.TypeConverter\r
-            : and then encoded with base64 encoding.\r
-    -->\r
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
-    <xsd:element name="root" msdata:IsDataSet="true">\r
-      <xsd:complexType>\r
-        <xsd:choice maxOccurs="unbounded">\r
-          <xsd:element name="metadata">\r
-            <xsd:complexType>\r
-              <xsd:sequence>\r
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
-              </xsd:sequence>\r
-              <xsd:attribute name="name" use="required" type="xsd:string" />\r
-              <xsd:attribute name="type" type="xsd:string" />\r
-              <xsd:attribute name="mimetype" type="xsd:string" />\r
-              <xsd:attribute ref="xml:space" />\r
-            </xsd:complexType>\r
-          </xsd:element>\r
-          <xsd:element name="assembly">\r
-            <xsd:complexType>\r
-              <xsd:attribute name="alias" type="xsd:string" />\r
-              <xsd:attribute name="name" type="xsd:string" />\r
-            </xsd:complexType>\r
-          </xsd:element>\r
-          <xsd:element name="data">\r
-            <xsd:complexType>\r
-              <xsd:sequence>\r
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
-              </xsd:sequence>\r
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
-              <xsd:attribute ref="xml:space" />\r
-            </xsd:complexType>\r
-          </xsd:element>\r
-          <xsd:element name="resheader">\r
-            <xsd:complexType>\r
-              <xsd:sequence>\r
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
-              </xsd:sequence>\r
-              <xsd:attribute name="name" type="xsd:string" use="required" />\r
-            </xsd:complexType>\r
-          </xsd:element>\r
-        </xsd:choice>\r
-      </xsd:complexType>\r
-    </xsd:element>\r
-  </xsd:schema>\r
-  <resheader name="resmimetype">\r
-    <value>text/microsoft-resx</value>\r
-  </resheader>\r
-  <resheader name="version">\r
-    <value>2.0</value>\r
-  </resheader>\r
-  <resheader name="reader">\r
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
-  </resheader>\r
-  <resheader name="writer">\r
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
-  </resheader>\r
-</root>
\ No newline at end of file