OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / Parsing / Subtitle.cs
index c5a722b..a765f1d 100644 (file)
@@ -4,7 +4,6 @@
           Homepage: <http://handbrake.fr>.\r
           It may be used under the terms of the GNU General Public License. */\r
 \r
-using System;\r
 using System.Collections.Generic;\r
 using System.IO;\r
 using System.Text.RegularExpressions;\r
@@ -16,61 +15,79 @@ namespace Handbrake.Parsing
     /// </summary>\r
     public class Subtitle\r
     {\r
+        private string m_language;\r
         private int m_trackNumber;\r
+        private string m_type;\r
+        private string m_typecode;\r
+\r
         /// <summary>\r
         /// The track number of this Subtitle\r
         /// </summary>\r
         public int TrackNumber\r
         {\r
-            get\r
-            {\r
-                return this.m_trackNumber;\r
-            }\r
+            get { return m_trackNumber; }\r
         }\r
 \r
-        private string m_language;\r
         /// <summary>\r
         /// The language (if detected) of this Subtitle\r
         /// </summary>\r
         public string Language\r
         {\r
-            get\r
-            {\r
-                return this.m_language;\r
-            }\r
+            get { return m_language; }\r
         }\r
 \r
         /// <summary>\r
+        /// Langauage Code\r
+        /// </summary>\r
+        public string LanguageCode\r
+        {\r
+            get { return m_typecode; }\r
+        }\r
+\r
+\r
+        /// <summary>\r
+        /// Subtitle Type\r
+        /// </summary>\r
+        public string Type\r
+        {\r
+            get { return m_type; }\r
+        }\r
+\r
+\r
+        /// <summary>\r
         /// Override of the ToString method to make this object easier to use in the UI\r
         /// </summary>\r
         /// <returns>A string formatted as: {track #} {language}</returns>\r
         public override string ToString()\r
         {\r
-            return string.Format("{0} {1}", this.m_trackNumber, this.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
         {\r
             string curLine = output.ReadLine();\r
 \r
-            Match m = Regex.Match(curLine, @"^    \+ ([0-9]*), ([A-Za-z, ]*) \((.*)\)");\r
+            Match m = Regex.Match(curLine, @"^    \+ ([0-9]*), ([A-Za-z, ]*) \((.*)\) \(([a-zA-Z]*)\)");\r
             if (m.Success && !curLine.Contains("HandBrake has exited."))\r
             {\r
-                Subtitle thisSubtitle = new Subtitle();\r
-                thisSubtitle.m_trackNumber = int.Parse(m.Groups[1].Value.Trim().ToString());\r
-                thisSubtitle.m_language = m.Groups[2].Value;\r
+                var thisSubtitle = new Subtitle\r
+                                       {\r
+                                           m_trackNumber = int.Parse(m.Groups[1].Value.Trim()),\r
+                                           m_language = m.Groups[2].Value,\r
+                                           m_typecode = m.Groups[3].Value,\r
+                                           m_type = m.Groups[4].Value\r
+                                       };\r
                 return thisSubtitle;\r
             }\r
-            else\r
-                return null;\r
+            return null;\r
         }\r
 \r
         public static Subtitle[] ParseList(StringReader output)\r
         {\r
-            List<Subtitle> subtitles = new List<Subtitle>();\r
-            while ((char)output.Peek() != '+')\r
+            var subtitles = new List<Subtitle>();\r
+            while ((char) output.Peek() != '+')\r
             {\r
-                Subtitle thisSubtitle = Subtitle.Parse(output);\r
+                Subtitle thisSubtitle = Parse(output);\r
 \r
                 if (thisSubtitle != null)\r
                     subtitles.Add(thisSubtitle);\r
@@ -80,4 +97,4 @@ namespace Handbrake.Parsing
             return subtitles.ToArray();\r
         }\r
     }\r
-}\r
+}
\ No newline at end of file