OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 1 Oct 2010 16:31:13 +0000 (16:31 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Fri, 1 Oct 2010 16:31:13 +0000 (16:31 +0000)
- Some refactoring of the Subtitle panel. Added support for subtitle type display to the subtitle dropdown and burn in support for SSA.

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

win/C#/Controls/Subtitles.cs
win/C#/HandBrake.ApplicationServices/Model/SubtitleType.cs
win/C#/HandBrake.ApplicationServices/Parsing/Subtitle.cs
win/C#/HandBrake.Framework/HandBrake.Framework.csproj
win/C#/HandBrake.Framework/Helpers/EnumHelper.cs [new file with mode: 0644]
win/C#/HandBrake10.5.1.ReSharper
win/C#/Model/Subtitle.cs
win/C#/frmMain.Designer.cs
win/C#/frmMain.resx

index dec3ec1..2a22dee 100644 (file)
@@ -11,6 +11,9 @@ namespace Handbrake.Controls
     using System.Linq;\r
     using System.Windows.Forms;\r
     using Functions;\r
+\r
+    using HandBrake.ApplicationServices.Model;\r
+\r
     using Model;\r
 \r
     /// <summary>\r
@@ -18,6 +21,8 @@ namespace Handbrake.Controls
     /// </summary>\r
     public partial class Subtitles : UserControl\r
     {\r
+        #region Priavate Variables and Collections\r
+\r
         /// <summary>\r
         /// Map of languages to language codes\r
         /// </summary>\r
@@ -33,6 +38,8 @@ namespace Handbrake.Controls
         /// </summary>\r
         private readonly List<SubtitleInfo> subList = new List<SubtitleInfo>();\r
 \r
+        #endregion\r
+\r
         /// <summary>\r
         /// Initializes a new instance of the <see cref="Subtitles"/> class.\r
         /// </summary>\r
@@ -48,6 +55,7 @@ namespace Handbrake.Controls
             srt_lang.SelectedIndex = 40;\r
         }\r
 \r
+        #region Public Methods\r
         /// <summary>\r
         /// Gets the CLI Query for this panel\r
         /// </summary>\r
@@ -84,7 +92,7 @@ namespace Handbrake.Controls
                             srtLang += srtLang == string.Empty ? langMap[item.SrtLang] : "," + langMap[item.SrtLang];\r
                             srtCodeset += srtCodeset == string.Empty ? item.SrtCharCode : "," + item.SrtCharCode;\r
 \r
-                            if (item.Default == "Yes")\r
+                            if (item.Default)\r
                                 srtDefault = srtCount.ToString();\r
 \r
                             itemToAdd = item.SrtPath;\r
@@ -113,7 +121,7 @@ namespace Handbrake.Controls
                             tempSub = item.Track.Split(' ');\r
                             trackId = tempSub[0];\r
 \r
-                            if (item.Forced == "Yes")\r
+                            if (item.Forced)\r
                                 itemToAdd = trackId;\r
 \r
                             if (itemToAdd != string.Empty)\r
@@ -125,10 +133,10 @@ namespace Handbrake.Controls
                             if (trackId.Trim() == "Foreign") // foreign audio search\r
                                 trackId = "scan";\r
 \r
-                            if (item.Burned == "Yes") // burn\r
+                            if (item.Burned) // burn\r
                                 subtitleBurn = trackId;\r
 \r
-                            if (item.Default == "Yes") // default\r
+                            if (item.Default) // default\r
                                 subtitleDefault = trackId;\r
                         }\r
                     }\r
@@ -164,7 +172,76 @@ namespace Handbrake.Controls
             }\r
         }\r
 \r
-        /* Primary Controls */\r
+        /// <summary>\r
+        /// Checks of the current settings will require the m4v file extension\r
+        /// </summary>\r
+        /// <returns>True if Yes</returns>\r
+        public bool RequiresM4V()\r
+        {\r
+            return this.subList.Any(track => track.SubtitleType != SubtitleType.VobSub);\r
+        }\r
+\r
+        /// <summary>\r
+        /// Automatically setup the subtitle tracks.\r
+        /// This handles the automatic setup of subitles which the user can control from the program options\r
+        /// </summary>\r
+        /// <param name="subs">List of Subtitles</param>\r
+        public void SetSubtitleTrackAuto(object[] subs)\r
+        {\r
+            drp_subtitleTracks.Items.Clear();\r
+            drp_subtitleTracks.Items.Add("Foreign Audio Search (Bitmap)");\r
+            drp_subtitleTracks.Items.AddRange(subs);\r
+            drp_subtitleTracks.SelectedIndex = 0;\r
+            Clear();\r
+\r
+            this.AutomaticSubtitleSelection();\r
+        }\r
+\r
+        /// <summary>\r
+        /// Automatic Subtitle Selection based on user preferences.\r
+        /// </summary>\r
+        public void AutomaticSubtitleSelection()\r
+        {\r
+            // 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.DubMode != 1) // We need to add a subtitle track if this is false.\r
+                {\r
+                    foreach (object item in drp_subtitleTracks.Items)\r
+                    {\r
+                        if (item.ToString().Contains(Properties.Settings.Default.NativeLanguage))\r
+                        {\r
+                            drp_subtitleTracks.SelectedItem = item;\r
+                            BtnAddSubTrackClick(this, new EventArgs());\r
+                        }\r
+                    }\r
+\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
+\r
+        /// <summary>\r
+        /// Clear the Subtitle List\r
+        /// </summary>\r
+        public void Clear()\r
+        {\r
+            lv_subList.Items.Clear();\r
+            subList.Clear();\r
+        }\r
+        #endregion\r
+\r
+        #region Primary Controls\r
 \r
         /// <summary>\r
         /// Add a Subtitle track.\r
@@ -181,7 +258,7 @@ namespace Handbrake.Controls
             string forcedVal = check_forced.CheckState == CheckState.Checked ? "Yes" : "No";\r
             string defaultSub = check_default.CheckState == CheckState.Checked ? "Yes" : "No";\r
             string burnedVal = check_burned.CheckState == CheckState.Checked &&\r
-                               (!drp_subtitleTracks.Text.Contains("Text"))\r
+                               (drp_subtitleTracks.Text.Contains("(VOBSUB)") || drp_subtitleTracks.Text.Contains("(SSA)"))\r
                                    ? "Yes"\r
                                    : "No";\r
             string srtCode = "-", srtLangVal = "-", srtPath = "-", srtFile = "-";\r
@@ -189,19 +266,17 @@ namespace Handbrake.Controls
 \r
             if (drp_subtitleTracks.SelectedItem.ToString().Contains(".srt"))\r
             {\r
-                burnedVal = "No";\r
-                forcedVal = "No";\r
                 srtFiles.TryGetValue(drp_subtitleTracks.SelectedItem.ToString(), out srtPath);\r
                 srtFile = drp_subtitleTracks.SelectedItem.ToString();\r
                 srtLangVal = srt_lang.SelectedItem.ToString();\r
                 srtCode = srt_charcode.SelectedItem.ToString();\r
                 srtOffsetMs = (int)srt_offset.Value;\r
-                if (defaultSub == "Yes") SetNoSrtDefault();\r
+                if (defaultSub == "Yes") this.SetDefaultToOffForAllSRTTracks();\r
             }\r
             else\r
             {\r
-                if (defaultSub == "Yes") SetNoDefault();\r
-                if (burnedVal == "Yes") SetNoBurned();\r
+                if (defaultSub == "Yes") this.SetDefaultToOffForAllTracks();\r
+                if (burnedVal == "Yes") this.SetBurnedToOffForAllTracks();\r
             }\r
 \r
             string trackName = (drp_subtitleTracks.SelectedItem.ToString().Contains(".srt"))\r
@@ -211,9 +286,9 @@ namespace Handbrake.Controls
             SubtitleInfo track = new SubtitleInfo\r
                                      {\r
                                          Track = trackName,\r
-                                         Forced = forcedVal,\r
-                                         Burned = burnedVal,\r
-                                         Default = defaultSub,\r
+                                         Forced = check_forced.Checked,\r
+                                         Burned = check_burned.Checked,\r
+                                         Default = check_default.Checked,\r
                                          SrtLang = srtLangVal,\r
                                          SrtCharCode = srtCode,\r
                                          SrtOffset = srtOffsetMs,\r
@@ -265,7 +340,7 @@ namespace Handbrake.Controls
         /// </param>\r
         private void BtnRemoveSubTrackClick(object sender, EventArgs e)\r
         {\r
-            RemoveTrack();\r
+            this.RemoveSelectedTrack();\r
         }\r
 \r
         /// <summary>\r
@@ -297,7 +372,7 @@ namespace Handbrake.Controls
                     srt_lang.SelectedItem = track.SrtLang;\r
                     srt_offset.Value = track.SrtOffset;\r
                     srt_charcode.SelectedItem = track.SrtCharCode;\r
-                    check_default.CheckState = track.Default == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
+                    check_default.CheckState = track.Default ? CheckState.Checked : CheckState.Unchecked;\r
                     SubGroupBox.Text = "Selected Track: " + track.Track;\r
                 }\r
                 else // We have Bitmap/CC\r
@@ -308,9 +383,9 @@ namespace Handbrake.Controls
                             drp_subtitleTracks.SelectedIndex = c;\r
                         c++;\r
                     }\r
-                    check_forced.CheckState = track.Forced == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
-                    check_burned.CheckState = track.Burned == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
-                    check_default.CheckState = track.Default == "Yes" ? CheckState.Checked : CheckState.Unchecked;\r
+                    check_forced.CheckState = track.Forced ? CheckState.Checked : CheckState.Unchecked;\r
+                    check_burned.CheckState = track.Burned ? CheckState.Checked : CheckState.Unchecked;\r
+                    check_default.CheckState = track.Default ? CheckState.Checked : CheckState.Unchecked;\r
                     SubGroupBox.Text = "Selected Track: " +\r
                                        lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[0].Text;\r
                 }\r
@@ -319,7 +394,9 @@ namespace Handbrake.Controls
                 SubGroupBox.Text = "Selected Track: None (Click \"Add\" to add another track to the list)";\r
         }\r
 \r
-        /* Bitmap / CC / SRT Controls */\r
+        #endregion\r
+\r
+        #region Subtitle Controls\r
 \r
         /// <summary>\r
         /// Handle the Subtitle track dropdown changed event\r
@@ -387,7 +464,7 @@ namespace Handbrake.Controls
             lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[1].Text = check_forced.Checked ? "Yes" : "No";\r
             lv_subList.Select();\r
 \r
-            subList[lv_subList.SelectedIndices[0]].Forced = check_forced.Checked ? "Yes" : "No";\r
+            subList[lv_subList.SelectedIndices[0]].Forced = check_forced.Checked;\r
             // Update SubList List<SubtitleInfo> \r
         }\r
 \r
@@ -405,12 +482,12 @@ namespace Handbrake.Controls
             if (lv_subList.Items.Count == 0 || lv_subList.SelectedIndices.Count == 0) return;\r
 \r
             if (check_burned.Checked) // Make sure we only have 1 burned track\r
-                SetNoBurned();\r
+                this.SetBurnedToOffForAllTracks();\r
 \r
             lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[2].Text = check_burned.Checked ? "Yes" : "No";\r
             lv_subList.Select();\r
 \r
-            subList[lv_subList.SelectedIndices[0]].Burned = check_burned.Checked ? "Yes" : "No";\r
+            subList[lv_subList.SelectedIndices[0]].Burned = check_burned.Checked;\r
             // Update SubList List<SubtitleInfo> \r
         }\r
 \r
@@ -429,14 +506,14 @@ namespace Handbrake.Controls
 \r
             if (check_default.Checked) // Make sure we only have 1 default track\r
                 if (lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[0].Text.Contains(".srt"))\r
-                    SetNoSrtDefault();\r
+                    this.SetDefaultToOffForAllSRTTracks();\r
                 else\r
-                    SetNoDefault();\r
+                    this.SetDefaultToOffForAllTracks();\r
 \r
             lv_subList.Items[lv_subList.SelectedIndices[0]].SubItems[3].Text = check_default.Checked ? "Yes" : "No";\r
             lv_subList.Select();\r
 \r
-            subList[lv_subList.SelectedIndices[0]].Default = check_default.Checked ? "Yes" : "No";\r
+            subList[lv_subList.SelectedIndices[0]].Default = check_default.Checked;\r
             // Update SubList List<SubtitleInfo>\r
         }\r
 \r
@@ -502,7 +579,9 @@ namespace Handbrake.Controls
             // Update SubList List<SubtitleInfo>\r
         }\r
 \r
-        /* Right Click Menu */\r
+        #endregion\r
+\r
+        #region Right Click Menu\r
 \r
         /// <summary>\r
         /// Move an item in the subtitle list up\r
@@ -569,15 +648,16 @@ namespace Handbrake.Controls
         /// </param>\r
         private void MnuRemoveClick(object sender, EventArgs e)\r
         {\r
-            RemoveTrack();\r
+            this.RemoveSelectedTrack();\r
         }\r
 \r
-        /* Functions */\r
+        #endregion\r
 \r
+        #region Helpers\r
         /// <summary>\r
         /// Set all Non SRT tracks to Default = NO\r
         /// </summary>\r
-        private void SetNoDefault()\r
+        private void SetDefaultToOffForAllTracks()\r
         {\r
             int c = 0;\r
             foreach (ListViewItem item in lv_subList.Items)\r
@@ -587,7 +667,7 @@ namespace Handbrake.Controls
                     if (item.SubItems[3].Text == "Yes")\r
                     {\r
                         item.SubItems[3].Text = "No";\r
-                        subList[c].Default = "No";\r
+                        subList[c].Default = false;\r
                     }\r
                 }\r
                 c++;\r
@@ -597,7 +677,7 @@ namespace Handbrake.Controls
         /// <summary>\r
         /// Set all subtitle tracks so that they have no default.\r
         /// </summary>\r
-        private void SetNoSrtDefault()\r
+        private void SetDefaultToOffForAllSRTTracks()\r
         {\r
             int c = 0;\r
             foreach (ListViewItem item in lv_subList.Items)\r
@@ -607,7 +687,7 @@ namespace Handbrake.Controls
                     if (item.SubItems[3].Text == "Yes")\r
                     {\r
                         item.SubItems[3].Text = "No";\r
-                        subList[c].Default = "No";\r
+                        subList[c].Default = false;\r
                     }\r
                 }\r
                 c++;\r
@@ -617,7 +697,7 @@ namespace Handbrake.Controls
         /// <summary>\r
         /// Set all tracks to Burned = No\r
         /// </summary>\r
-        private void SetNoBurned()\r
+        private void SetBurnedToOffForAllTracks()\r
         {\r
             int c = 0;\r
             foreach (ListViewItem item in lv_subList.Items)\r
@@ -625,7 +705,7 @@ namespace Handbrake.Controls
                 if (item.SubItems[2].Text == "Yes")\r
                 {\r
                     item.SubItems[2].Text = "No";\r
-                    subList[c].Burned = "No";\r
+                    subList[c].Burned = false;\r
                 }\r
                 c++;\r
             }\r
@@ -634,7 +714,7 @@ namespace Handbrake.Controls
         /// <summary>\r
         /// Remove a selected track\r
         /// </summary>\r
-        private void RemoveTrack()\r
+        private void RemoveSelectedTrack()\r
         {\r
             // Remove the Item and reselect the control if the following conditions are met.\r
             if (lv_subList.SelectedItems.Count != 0)\r
@@ -658,82 +738,6 @@ namespace Handbrake.Controls
                 }\r
             }\r
         }\r
-\r
-        /// <summary>\r
-        /// Clear the Subtitle List\r
-        /// </summary>\r
-        public void Clear()\r
-        {\r
-            lv_subList.Items.Clear();\r
-            subList.Clear();\r
-        }\r
-\r
-        /// <summary>\r
-        /// Checks of the current settings will require the m4v file extension\r
-        /// </summary>\r
-        /// <returns>True if Yes</returns>\r
-        public bool RequiresM4V()\r
-        {\r
-            return this.lv_subList.Items.Cast<ListViewItem>().Any(item => item.SubItems.Count != 5 || item.SubItems[1].Text.Contains("(Text)"));\r
-        }\r
-\r
-        /// <summary>\r
-        /// Automatically setup the subtitle tracks.\r
-        /// This handles the automatic setup of subitles which the user can control from the program options\r
-        /// </summary>\r
-        /// <param name="subs">List of Subtitles</param>\r
-        public void SetSubtitleTrackAuto(object[] subs)\r
-        {\r
-            drp_subtitleTracks.Items.Clear();\r
-            drp_subtitleTracks.Items.Add("Foreign Audio Search (Bitmap)");\r
-            drp_subtitleTracks.Items.AddRange(subs);\r
-            drp_subtitleTracks.SelectedIndex = 0;\r
-            Clear();\r
-\r
-            this.AutomaticSubtitleSelection();\r
-        }\r
-\r
-        /// <summary>\r
-        /// Automatic Subtitle Selection based on user preferences.\r
-        /// </summary>\r
-        public void AutomaticSubtitleSelection()\r
-        {\r
-            // 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.DubMode != 1) // We need to add a subtitle track if this is false.\r
-                {\r
-                    foreach (object item in drp_subtitleTracks.Items)\r
-                    {\r
-                        if (item.ToString().Contains(Properties.Settings.Default.NativeLanguage))\r
-                        {\r
-                            drp_subtitleTracks.SelectedItem = item;\r
-                            BtnAddSubTrackClick(this, new EventArgs());\r
-                        }\r
-                    }\r
-\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
-\r
-        /// <summary>\r
-        /// Get the list of subtitles.\r
-        /// </summary>\r
-        /// <returns>A List of SubtitleInfo Object</returns>\r
-        public List<SubtitleInfo> GetSubtitleInfoList()\r
-        {\r
-            return subList;\r
-        }\r
+        #endregion\r
     }\r
 }
\ No newline at end of file
index b7ceabd..f362a4b 100644 (file)
@@ -5,14 +5,26 @@
 \r
 namespace HandBrake.ApplicationServices.Model\r
 {\r
+    using System.ComponentModel;\r
+\r
     /// <summary>\r
     /// Subtitle Type. \r
-    /// 0: Picture\r
-    /// 1: Text\r
     /// </summary>\r
     public enum SubtitleType\r
     {\r
-        Picture,\r
-        Text\r
+        [Description("SSA")]\r
+        SSA,\r
+        [Description("SRT")]\r
+        SRT,\r
+        [Description("VobSub")]\r
+        VobSub,\r
+        [Description("CC")]\r
+        CC,\r
+        [Description("UTF8")]\r
+        UTF8Sub,\r
+        [Description("TX3G")]\r
+        TX3G,\r
+        [Description("Unknown")]\r
+        Unknown\r
     }\r
-}\r
+}
\ No newline at end of file
index f4cd657..f6ecc12 100644 (file)
@@ -10,6 +10,7 @@ namespace HandBrake.ApplicationServices.Parsing
     using System.Text.RegularExpressions;\r
 \r
     using HandBrake.ApplicationServices.Model;\r
+    using HandBrake.Framework.Helpers;\r
 \r
     /// <summary>\r
     /// An object that represents a subtitle associated with a Title, in a DVD\r
@@ -43,7 +44,7 @@ namespace HandBrake.ApplicationServices.Parsing
         {\r
             get\r
             {\r
-                return this.SubtitleType == SubtitleType.Picture ? "Bitmap" : "Text";\r
+                return EnumHelper.GetDescription(this.SubtitleType);\r
             }\r
         }\r
 \r
@@ -60,16 +61,43 @@ namespace HandBrake.ApplicationServices.Parsing
         {\r
             string curLine = output.ReadLine();\r
 \r
-            Match m = Regex.Match(curLine, @"^    \+ ([0-9]*), ([A-Za-z, ]*) \((.*)\) \(([a-zA-Z]*)\)");\r
+            // + 1, English (iso639-2: eng) (Text)(SSA)\r
+            Match m = Regex.Match(curLine, @"^    \+ ([0-9]*), ([A-Za-z, ]*) \((.*)\) \(([a-zA-Z]*)\)\(([a-zA-Z]*)\)");\r
+\r
             if (m.Success && !curLine.Contains("HandBrake has exited."))\r
             {\r
                 var thisSubtitle = new Subtitle\r
                                        {\r
-                                           TrackNumber = int.Parse(m.Groups[1].Value.Trim()), \r
-                                           Language = m.Groups[2].Value, \r
-                                           LanguageCode = m.Groups[3].Value, \r
-                                           SubtitleType = m.Groups[4].Value.Contains("Text") ? SubtitleType.Text : SubtitleType.Picture\r
+                                           TrackNumber = int.Parse(m.Groups[1].Value.Trim()),\r
+                                           Language = m.Groups[2].Value,\r
+                                           LanguageCode = m.Groups[3].Value,\r
                                        };\r
+\r
+                switch (m.Groups[5].Value)\r
+                {\r
+                    case "VOBSUB":\r
+                        thisSubtitle.SubtitleType = SubtitleType.VobSub;\r
+                        break;\r
+                    case "SRT":\r
+                        thisSubtitle.SubtitleType = SubtitleType.SRT;\r
+                        break;\r
+                    case "CC":\r
+                        thisSubtitle.SubtitleType = SubtitleType.CC;\r
+                        break;\r
+                    case "UTF-8":\r
+                        thisSubtitle.SubtitleType = SubtitleType.UTF8Sub;\r
+                        break;\r
+                    case "TX3G":\r
+                        thisSubtitle.SubtitleType = SubtitleType.TX3G;\r
+                        break;\r
+                    case "SSA":\r
+                        thisSubtitle.SubtitleType = SubtitleType.SSA;\r
+                        break;\r
+                    default:\r
+                        thisSubtitle.SubtitleType = SubtitleType.Unknown;\r
+                        break;\r
+                }\r
+\r
                 return thisSubtitle;\r
             }\r
             return null;\r
@@ -87,7 +115,7 @@ namespace HandBrake.ApplicationServices.Parsing
         public static IEnumerable<Subtitle> ParseList(StringReader output)\r
         {\r
             var subtitles = new List<Subtitle>();\r
-            while ((char) output.Peek() != '+')\r
+            while ((char)output.Peek() != '+')\r
             {\r
                 Subtitle thisSubtitle = Parse(output);\r
 \r
index 9ef6a51..ef4246d 100644 (file)
@@ -55,6 +55,7 @@
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="Helpers\AppcastReader.cs" />\r
+    <Compile Include="Helpers\EnumHelper.cs" />\r
     <Compile Include="Model\UpdateCheckResult.cs" />\r
     <Compile Include="Model\UpdateCheckInformation.cs" />\r
     <Compile Include="Properties\AssemblyInfo.cs" />\r
diff --git a/win/C#/HandBrake.Framework/Helpers/EnumHelper.cs b/win/C#/HandBrake.Framework/Helpers/EnumHelper.cs
new file mode 100644 (file)
index 0000000..74953c3
--- /dev/null
@@ -0,0 +1,35 @@
+/*  EnumHelper.cs $\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
+namespace HandBrake.Framework.Helpers\r
+{\r
+    using System.ComponentModel;\r
+    using System.Reflection;\r
+    using System;\r
+\r
+    /// <summary>\r
+    /// Enum Helpers\r
+    /// </summary>\r
+    public class EnumHelper\r
+    {\r
+        /// <summary>\r
+        /// Get the description of an Enum\r
+        /// </summary>\r
+        /// <param name="value">\r
+        /// The value.\r
+        /// </param>\r
+        /// <returns>\r
+        /// The Description string\r
+        /// </returns>\r
+        public static string GetDescription(Enum value)\r
+        {\r
+            FieldInfo fi = value.GetType().GetField(value.ToString());\r
+            DescriptionAttribute[] attributes =\r
+                  (DescriptionAttribute[])fi.GetCustomAttributes(\r
+                  typeof(DescriptionAttribute), false);\r
+            return (attributes.Length > 0) ? attributes[0].Description : value.ToString();\r
+        }\r
+    }\r
+}\r
index 22ca799..42cfee8 100644 (file)
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />\r
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />\r
         <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />\r
+        <Abbreviation Text="SSA" />\r
+        <Abbreviation Text="CC" />\r
+        <Abbreviation Text="UTF" />\r
+        <Abbreviation Text="TX" />\r
+        <Abbreviation Text="SRT" />\r
       </Naming2>\r
       <CustomMemberReorderingPatterns><![CDATA[<?xml version="1.0" encoding="utf-8"?>\r
 <Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">\r
index 9254ab4..605e3da 100644 (file)
@@ -7,6 +7,8 @@ namespace Handbrake.Model
 {\r
     using System.Windows.Forms;\r
 \r
+    using HandBrake.ApplicationServices.Model;\r
+\r
     /// <summary>\r
     /// Subtitle Information\r
     /// </summary>\r
@@ -20,17 +22,17 @@ namespace Handbrake.Model
         /// <summary>\r
         /// Gets or sets the Forced Subtitle\r
         /// </summary>\r
-        public string Forced { get; set; }\r
+        public bool Forced { get; set; }\r
 \r
         /// <summary>\r
         /// Gets or sets the Burned In Subtitle\r
         /// </summary>\r
-        public string Burned { get; set; }\r
+        public bool Burned { get; set; }\r
 \r
         /// <summary>\r
         /// Gets or sets the Default Subtitle Track\r
         /// </summary>\r
-        public string Default { get; set; }\r
+        public bool Default { get; set; }\r
 \r
         /// <summary>\r
         /// Gets or sets the SRT Language\r
@@ -66,6 +68,11 @@ namespace Handbrake.Model
         }\r
 \r
         /// <summary>\r
+        /// Gets or sets the type of the subtitle\r
+        /// </summary>\r
+        public SubtitleType SubtitleType { get; set; }\r
+\r
+        /// <summary>\r
         /// Gets A ListViewItem Containing information about this subitlte\r
         /// </summary>\r
         public ListViewItem ListView\r
@@ -73,9 +80,9 @@ namespace Handbrake.Model
             get\r
             {\r
                 var listTrack = new ListViewItem(this.Track);\r
-                listTrack.SubItems.Add(this.Forced);\r
-                listTrack.SubItems.Add(this.Burned);\r
-                listTrack.SubItems.Add(this.Default);\r
+                listTrack.SubItems.Add(this.Forced ? "Yes" : "No");\r
+                listTrack.SubItems.Add(this.Burned ? "Yes" : "No");\r
+                listTrack.SubItems.Add(this.Default ? "Yes" : "No");\r
                 listTrack.SubItems.Add(this.SrtLang);\r
                 listTrack.SubItems.Add(this.SrtCharCode);\r
                 listTrack.SubItems.Add(this.SrtOffset.ToString());\r
index b42649b..f4dee16 100644 (file)
@@ -39,7 +39,7 @@ namespace Handbrake
             this.components = new System.ComponentModel.Container();\r
             System.Windows.Forms.ContextMenuStrip notifyIconMenu;\r
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain));\r
-            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();\r
             this.btn_restore = new System.Windows.Forms.ToolStripMenuItem();\r
             this.DVD_Save = new System.Windows.Forms.SaveFileDialog();\r
             this.ToolTip = new System.Windows.Forms.ToolTip(this.components);\r
@@ -407,9 +407,9 @@ namespace Handbrake
             // \r
             // number\r
             // \r
-            dataGridViewCellStyle1.Format = "N0";\r
-            dataGridViewCellStyle1.NullValue = null;\r
-            this.number.DefaultCellStyle = dataGridViewCellStyle1;\r
+            dataGridViewCellStyle2.Format = "N0";\r
+            dataGridViewCellStyle2.NullValue = null;\r
+            this.number.DefaultCellStyle = dataGridViewCellStyle2;\r
             this.number.Frozen = true;\r
             this.number.HeaderText = "Chapter Number";\r
             this.number.MaxInputLength = 3;\r
index ef0cad2..dc017b2 100644 (file)
@@ -583,6 +583,18 @@ Clear the text box below to return to the internal query generation.</value>
   <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
     <value>98</value>\r
   </metadata>\r
+  <metadata name="File_Save.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>664, 15</value>\r
+  </metadata>\r
+  <metadata name="openPreset.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>680, 54</value>\r
+  </metadata>\r
+  <metadata name="File_ChapterImport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>787, 54</value>\r
+  </metadata>\r
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+    <value>98</value>\r
+  </metadata>\r
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
         AAABAAYAMDAAAAEACACoDgAAZgAAACAgAAABAAgAqAgAAA4PAAAQEAAAAQAIAGgFAAC2FwAAMDAAAAEA\r
@@ -962,13 +974,4 @@ Clear the text box below to return to the internal query generation.</value>
         AAD6AQAA4AEAAMABAACAAQAAgAEAAMBBAADAYQAAjGEAAIRhAADc+wAA3/8AAA==\r
 </value>\r
   </data>\r
-  <metadata name="File_Save.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>664, 15</value>\r
-  </metadata>\r
-  <metadata name="openPreset.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>680, 54</value>\r
-  </metadata>\r
-  <metadata name="File_ChapterImport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
-    <value>787, 54</value>\r
-  </metadata>\r
 </root>
\ No newline at end of file