OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 20 Aug 2010 19:15:16 +0000 (19:15 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 20 Aug 2010 19:15:16 +0000 (19:15 +0000)
- Added new audio/subs option: "Use Preferred Language for Audio and Subtitles" and "Add Closed Captions when available"
Thanks to Shatian for the Patch!

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

win/C#/Controls/AudioPanel.cs
win/C#/Controls/Subtitles.cs
win/C#/Properties/Settings.Designer.cs
win/C#/Properties/Settings.settings
win/C#/app.config
win/C#/frmOptions.Designer.cs
win/C#/frmOptions.cs
win/C#/frmOptions.resx

index 6d4b008..cca75d4 100644 (file)
@@ -174,7 +174,7 @@ namespace Handbrake.Controls
                 drp_audioTrack.SelectedIndex = drp_audioTrack.Items.Count >= 2 ? 1 : 0;\r
             else\r
             {\r
-                if (Properties.Settings.Default.DubAudio) // "Dub Foreign language audio" \r
+                if (Properties.Settings.Default.DubMode > 1) // "Dub Foreign language audio" \r
                 {\r
                     int i = 0;\r
                     foreach (object item in drp_audioTrack.Items)\r
index e923598..e5acf07 100644 (file)
@@ -195,7 +195,7 @@ namespace Handbrake.Controls
                 srtFile = drp_subtitleTracks.SelectedItem.ToString();\r
                 srtLangVal = srt_lang.SelectedItem.ToString();\r
                 srtCode = srt_charcode.SelectedItem.ToString();\r
-                srtOffsetMs = (int) srt_offset.Value;\r
+                srtOffsetMs = (int)srt_offset.Value;\r
                 if (defaultSub == "Yes") SetNoSrtDefault();\r
             }\r
             else\r
@@ -210,14 +210,14 @@ namespace Handbrake.Controls
 \r
             SubtitleInfo track = new SubtitleInfo\r
                                      {\r
-                                         Track = trackName, \r
-                                         Forced = forcedVal, \r
-                                         Burned = burnedVal, \r
-                                         Default = defaultSub, \r
-                                         SrtLang = srtLangVal, \r
-                                         SrtCharCode = srtCode, \r
-                                         SrtOffset = srtOffsetMs, \r
-                                         SrtPath = srtPath, \r
+                                         Track = trackName,\r
+                                         Forced = forcedVal,\r
+                                         Burned = burnedVal,\r
+                                         Default = defaultSub,\r
+                                         SrtLang = srtLangVal,\r
+                                         SrtCharCode = srtCode,\r
+                                         SrtOffset = srtOffsetMs,\r
+                                         SrtPath = srtPath,\r
                                          SrtFileName = srtFile\r
                                      };\r
 \r
@@ -286,7 +286,7 @@ namespace Handbrake.Controls
 \r
                 int c = 0;\r
                 if (lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[0].Text.ToLower().Contains(".srt"))\r
-                    // We have an SRT\r
+                // We have an SRT\r
                 {\r
                     foreach (var item in drp_subtitleTracks.Items)\r
                     {\r
@@ -388,7 +388,7 @@ namespace Handbrake.Controls
             lv_subList.Select();\r
 \r
             subList[lv_subList.SelectedIndices[0]].Forced = check_forced.Checked ? "Yes" : "No";\r
-                // Update SubList List<SubtitleInfo> \r
+            // Update SubList List<SubtitleInfo> \r
         }\r
 \r
         /// <summary>\r
@@ -411,7 +411,7 @@ namespace Handbrake.Controls
             lv_subList.Select();\r
 \r
             subList[lv_subList.SelectedIndices[0]].Burned = check_burned.Checked ? "Yes" : "No";\r
-                // Update SubList List<SubtitleInfo> \r
+            // Update SubList List<SubtitleInfo> \r
         }\r
 \r
         /// <summary>\r
@@ -437,7 +437,7 @@ namespace Handbrake.Controls
             lv_subList.Select();\r
 \r
             subList[lv_subList.SelectedIndices[0]].Default = check_default.Checked ? "Yes" : "No";\r
-                // Update SubList List<SubtitleInfo>\r
+            // Update SubList List<SubtitleInfo>\r
         }\r
 \r
         /// <summary>\r
@@ -458,8 +458,8 @@ namespace Handbrake.Controls
             lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[6].Text = srt_offset.Value.ToString();\r
             lv_subList.Select();\r
 \r
-            subList[lv_subList.SelectedIndices[0]].SrtOffset = (int) srt_offset.Value;\r
-                // Update SubList List<SubtitleInfo>\r
+            subList[lv_subList.SelectedIndices[0]].SrtOffset = (int)srt_offset.Value;\r
+            // Update SubList List<SubtitleInfo>\r
         }\r
 \r
         /// <summary>\r
@@ -479,7 +479,7 @@ namespace Handbrake.Controls
             lv_subList.Select();\r
 \r
             subList[lv_subList.SelectedIndices[0]].SrtCharCode = srt_charcode.SelectedItem.ToString();\r
-                // Update SubList List<SubtitleInfo>\r
+            // Update SubList List<SubtitleInfo>\r
         }\r
 \r
         /// <summary>\r
@@ -499,7 +499,7 @@ namespace Handbrake.Controls
             lv_subList.Select();\r
 \r
             subList[lv_subList.SelectedIndices[0]].SrtLang = srt_lang.SelectedItem.ToString();\r
-                // Update SubList List<SubtitleInfo>\r
+            // Update SubList List<SubtitleInfo>\r
         }\r
 \r
         /* Right Click Menu */\r
@@ -693,18 +693,28 @@ namespace Handbrake.Controls
             // Handle Native Language and "Dub Foreign language audio" and "Use Foreign language audio and Subtitles" Options\r
             if (Properties.Settings.Default.NativeLanguage != "Any")\r
             {\r
-                if (!Properties.Settings.Default.DubAudio) // We need to add a subtitle track if this is false.\r
+                if (Properties.Settings.Default.DubMode != 1) // We need to add a subtitle track if this is false.\r
                 {\r
-                    int i = 0;\r
                     foreach (object item in drp_subtitleTracks.Items)\r
                     {\r
                         if (item.ToString().Contains(Properties.Settings.Default.NativeLanguage))\r
-                            drp_subtitleTracks.SelectedIndex = i;\r
-\r
-                        i++;\r
+                        {\r
+                            drp_subtitleTracks.SelectedItem = item;\r
+                            BtnAddSubTrackClick(this, new EventArgs());\r
+                        }\r
                     }\r
 \r
-                    BtnAddSubTrackClick(this, new EventArgs());\r
+                    if (drp_subtitleTracks.SelectedIndex == 0 && Properties.Settings.Default.useClosedCaption)\r
+                    {\r
+                        foreach (object item in drp_subtitleTracks.Items)\r
+                        {\r
+                            if (item.ToString().Contains("Closed"))\r
+                            {\r
+                                drp_subtitleTracks.SelectedItem = item;\r
+                                BtnAddSubTrackClick(this, new EventArgs());\r
+                            }\r
+                        }\r
+                    }                    \r
                 }\r
             }\r
         }\r
index 3ff94a0..55a1891 100644 (file)
@@ -372,13 +372,13 @@ namespace Handbrake.Properties {
         \r
         [global::System.Configuration.UserScopedSettingAttribute()]\r
         [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
-        [global::System.Configuration.DefaultSettingValueAttribute("False")]\r
-        public bool DubAudio {\r
+        [global::System.Configuration.DefaultSettingValueAttribute("0")]\r
+        public int DubMode {\r
             get {\r
-                return ((bool)(this["DubAudio"]));\r
+                return ((int)(this["DubMode"]));\r
             }\r
             set {\r
-                this["DubAudio"] = value;\r
+                this["DubMode"] = value;\r
             }\r
         }\r
         \r
@@ -524,5 +524,17 @@ namespace Handbrake.Properties {
                 this["preventSleep"] = value;\r
             }\r
         }\r
+        \r
+        [global::System.Configuration.UserScopedSettingAttribute()]\r
+        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\r
+        [global::System.Configuration.DefaultSettingValueAttribute("False")]\r
+        public bool useClosedCaption {\r
+            get {\r
+                return ((bool)(this["useClosedCaption"]));\r
+            }\r
+            set {\r
+                this["useClosedCaption"] = value;\r
+            }\r
+        }\r
     }\r
 }\r
index e4a9fb5..d5c5582 100644 (file)
@@ -89,8 +89,8 @@
     <Setting Name="NativeLanguage" Type="System.String" Scope="User">\r
       <Value Profile="(Default)">Any</Value>\r
     </Setting>\r
-    <Setting Name="DubAudio" Type="System.Boolean" Scope="User">\r
-      <Value Profile="(Default)">False</Value>\r
+    <Setting Name="DubMode" Type="System.Int32" Scope="User">\r
+      <Value Profile="(Default)">0</Value>\r
     </Setting>\r
     <Setting Name="hb_platform" Type="System.String" Scope="User">\r
       <Value Profile="(Default)" />\r
     <Setting Name="preventSleep" Type="System.Boolean" Scope="User">\r
       <Value Profile="(Default)">False</Value>\r
     </Setting>\r
+    <Setting Name="useClosedCaption" Type="System.Boolean" Scope="User">\r
+      <Value Profile="(Default)">False</Value>\r
+    </Setting>\r
   </Settings>\r
 </SettingsFile>
\ No newline at end of file
index 40db836..48080a8 100644 (file)
@@ -95,8 +95,8 @@
       <setting name="NativeLanguage" serializeAs="String">\r
         <value>Any</value>\r
       </setting>\r
-      <setting name="DubAudio" serializeAs="String">\r
-        <value>False</value>\r
+      <setting name="DubMode" serializeAs="String">\r
+        <value>0</value>\r
       </setting>\r
       <setting name="hb_platform" serializeAs="String">\r
         <value />\r
       <setting name="preventSleep" serializeAs="String">\r
         <value>False</value>\r
       </setting>\r
+      <setting name="useClosedCaption" serializeAs="String">\r
+        <value>False</value>\r
+      </setting>\r
     </Handbrake.Properties.Settings>\r
   </userSettings>\r
   <startup />\r
index 4de8a9c..de9bb6f 100644 (file)
@@ -135,6 +135,8 @@ namespace Handbrake
             this.openFile_vlc = new System.Windows.Forms.OpenFileDialog();\r
             this.panel1 = new System.Windows.Forms.Panel();\r
             this.panel2 = new System.Windows.Forms.Panel();\r
+            this.check_AddCCTracks = new System.Windows.Forms.CheckBox();\r
+            this.radio_preferredAudioAndSubs = new System.Windows.Forms.RadioButton();\r
             this.tab_options.SuspendLayout();\r
             this.tab_general.SuspendLayout();\r
             this.tab_picture.SuspendLayout();\r
@@ -531,6 +533,8 @@ namespace Handbrake
             // \r
             // tab_audio_sub\r
             // \r
+            this.tab_audio_sub.Controls.Add(this.radio_preferredAudioAndSubs);\r
+            this.tab_audio_sub.Controls.Add(this.check_AddCCTracks);\r
             this.tab_audio_sub.Controls.Add(this.label31);\r
             this.tab_audio_sub.Controls.Add(this.label15);\r
             this.tab_audio_sub.Controls.Add(this.radio_foreignAndSubs);\r
@@ -1416,7 +1420,7 @@ namespace Handbrake
             this.panel1.Controls.Add(this.pictureBox2);\r
             this.panel1.Dock = System.Windows.Forms.DockStyle.Top;\r
             this.panel1.Location = new System.Drawing.Point(0, 0);\r
-            this.panel1.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0);\r
+            this.panel1.Margin = new System.Windows.Forms.Padding(0);\r
             this.panel1.Name = "panel1";\r
             this.panel1.Size = new System.Drawing.Size(615, 65);\r
             this.panel1.TabIndex = 62;\r
@@ -1432,6 +1436,31 @@ namespace Handbrake
             this.panel2.Size = new System.Drawing.Size(615, 10);\r
             this.panel2.TabIndex = 59;\r
             // \r
+            // check_AddCCTracks\r
+            // \r
+            this.check_AddCCTracks.AutoSize = true;\r
+            this.check_AddCCTracks.Location = new System.Drawing.Point(200, 131);\r
+            this.check_AddCCTracks.Name = "check_AddCCTracks";\r
+            this.check_AddCCTracks.Size = new System.Drawing.Size(199, 17);\r
+            this.check_AddCCTracks.TabIndex = 92;\r
+            this.check_AddCCTracks.Text = "Add Closed Captions when available";\r
+            this.ToolTip.SetToolTip(this.check_AddCCTracks, "Add any CC tracks if they exist");\r
+            this.check_AddCCTracks.UseVisualStyleBackColor = true;\r
+            this.check_AddCCTracks.CheckedChanged += new System.EventHandler(this.check_AddCCTracks_CheckedChanged);\r
+            // \r
+            // radio_preferredAudioAndSubs\r
+            // \r
+            this.radio_preferredAudioAndSubs.AutoSize = true;\r
+            this.radio_preferredAudioAndSubs.Location = new System.Drawing.Point(200, 99);\r
+            this.radio_preferredAudioAndSubs.Name = "radio_preferredAudioAndSubs";\r
+            this.radio_preferredAudioAndSubs.Size = new System.Drawing.Size(254, 17);\r
+            this.radio_preferredAudioAndSubs.TabIndex = 93;\r
+            this.radio_preferredAudioAndSubs.TabStop = true;\r
+            this.radio_preferredAudioAndSubs.Text = "Use Preferred Language for Audio and Subtitles";\r
+            this.ToolTip.SetToolTip(this.radio_preferredAudioAndSubs, "Use Preferred Language for Audio and Subtitle.");\r
+            this.radio_preferredAudioAndSubs.UseVisualStyleBackColor = true;\r
+            this.radio_preferredAudioAndSubs.CheckedChanged += new System.EventHandler(this.radio_preferredAudioAndSubs_CheckedChanged);\r
+            // \r
             // frmOptions\r
             // \r
             this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);\r
@@ -1574,5 +1603,7 @@ namespace Handbrake
         private System.Windows.Forms.Label label11;\r
         private System.Windows.Forms.Panel panel1;\r
         private System.Windows.Forms.Panel panel2;\r
+        private System.Windows.Forms.RadioButton radio_preferredAudioAndSubs;\r
+        private System.Windows.Forms.CheckBox check_AddCCTracks;\r
     }\r
 }
\ No newline at end of file
index ac7e692..8885bc1 100644 (file)
@@ -14,6 +14,7 @@ namespace Handbrake
     using HandBrake.ApplicationServices;\r
 \r
     using Handbrake.Functions;\r
+    using Handbrake.Model;\r
     using Handbrake.Properties;\r
 \r
     /// <summary>\r
@@ -106,10 +107,18 @@ namespace Handbrake
 \r
             drop_preferredLang.SelectedItem = Properties.Settings.Default.NativeLanguage;\r
 \r
-            if (Properties.Settings.Default.DubAudio)\r
-                radio_dub.Checked = true;\r
-            else\r
-                radio_foreignAndSubs.Checked = true;\r
+            switch (Settings.Default.DubMode)\r
+            {\r
+                case 1:\r
+                    radio_dub.Checked = true;\r
+                    break;\r
+                case 2:\r
+                    radio_foreignAndSubs.Checked = true;\r
+                    break;\r
+                case 3:\r
+                    radio_preferredAudioAndSubs.Checked = true;\r
+                    break;\r
+            }\r
 \r
             // #############################\r
             // CLI\r
@@ -118,7 +127,7 @@ namespace Handbrake
             // Priority level for encodes\r
             drp_Priority.Text = Properties.Settings.Default.processPriority;\r
 \r
-            check_preventSleep.Checked = Properties.Settings.Default.preventSleep; \r
+            check_preventSleep.Checked = Properties.Settings.Default.preventSleep;\r
 \r
             // Log Verbosity Level\r
             cb_logVerboseLvl.SelectedIndex = Properties.Settings.Default.verboseLevel;\r
@@ -302,13 +311,24 @@ namespace Handbrake
         private void radio_dub_CheckedChanged(object sender, EventArgs e)\r
         {\r
             if (radio_dub.Checked)\r
-                Properties.Settings.Default.DubAudio = true;\r
+                Properties.Settings.Default.DubMode = 1;\r
         }\r
 \r
         private void radio_foreignAndSubs_CheckedChanged(object sender, EventArgs e)\r
         {\r
             if (radio_foreignAndSubs.Checked)\r
-                Properties.Settings.Default.DubAudio = false;\r
+                Properties.Settings.Default.DubMode = 2;\r
+        }\r
+\r
+        private void radio_preferredAudioAndSubs_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            if (radio_preferredAudioAndSubs.Checked)\r
+                Properties.Settings.Default.DubMode = 3;\r
+        }\r
+\r
+        private void check_AddCCTracks_CheckedChanged(object sender, EventArgs e)\r
+        {\r
+            Settings.Default.useClosedCaption = check_AddCCTracks.Checked;\r
         }\r
 \r
         #endregion\r
@@ -365,12 +385,12 @@ namespace Handbrake
 \r
         private void btn_clearLogs_Click(object sender, EventArgs e)\r
         {\r
-            DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs", \r
+            DialogResult result = MessageBox.Show("Are you sure you wish to clear the log file directory?", "Clear Logs",\r
                                                   MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);\r
             if (result == DialogResult.Yes)\r
             {\r
                 Main.ClearLogs();\r
-                MessageBox.Show(this, "HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButtons.OK, \r
+                MessageBox.Show(this, "HandBrake's Log file directory has been cleared!", "Notice", MessageBoxButtons.OK,\r
                                 MessageBoxIcon.Information);\r
             }\r
         }\r
@@ -448,7 +468,6 @@ namespace Handbrake
 \r
         #endregion\r
 \r
-\r
         private void btn_close_Click(object sender, EventArgs e)\r
         {\r
             Properties.Settings.Default.Save(); // Small hack for Vista. Seems to work fine on XP without this\r
@@ -462,11 +481,21 @@ namespace Handbrake
         /// </summary>\r
         private static void UpdateApplicationServicesSettings()\r
         {\r
-            string versionId = String.Format("Windows GUI {1} {0}", Settings.Default.hb_build, Settings.Default.hb_version);\r
-            Init.SetupSettings(versionId, Program.InstanceId, Settings.Default.CompletionOption, Settings.Default.noDvdNav,\r
-                               Settings.Default.growlEncode, Settings.Default.growlQueue,\r
-                               Settings.Default.processPriority, Settings.Default.saveLogPath, Settings.Default.saveLogToSpecifiedPath,\r
-                               Settings.Default.saveLogWithVideo, Settings.Default.showCliForInGuiEncodeStatus, Settings.Default.preventSleep);\r
+            string versionId = String.Format(\r
+                "Windows GUI {1} {0}", Settings.Default.hb_build, Settings.Default.hb_version);\r
+            Init.SetupSettings(\r
+                versionId,\r
+                Program.InstanceId,\r
+                Settings.Default.CompletionOption,\r
+                Settings.Default.noDvdNav,\r
+                Settings.Default.growlEncode,\r
+                Settings.Default.growlQueue,\r
+                Settings.Default.processPriority,\r
+                Settings.Default.saveLogPath,\r
+                Settings.Default.saveLogToSpecifiedPath,\r
+                Settings.Default.saveLogWithVideo,\r
+                Settings.Default.showCliForInGuiEncodeStatus,\r
+                Settings.Default.preventSleep);\r
         }\r
     }\r
 }
\ No newline at end of file
index 8a1811c..3a950bf 100644 (file)
   <metadata name="ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>132, 18</value>\r
   </metadata>\r
+  <metadata name="ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>132, 18</value>\r
+  </metadata>\r
   <data name="check_m4v.ToolTip" xml:space="preserve">\r
     <value>Use .m4v instead of .mp4 for MP4 files\r
 \r