/* Subtitle.cs $\r
\r
This file is part of the HandBrake source code.\r
- Homepage: <http://handbrake.m0k.org/>.\r
+ Homepage: <http://handbrake.fr>.\r
It may be used under the terms of the GNU General Public License. */\r
\r
-using System;\r
using System.Collections.Generic;\r
using System.IO;\r
using System.Text.RegularExpressions;\r
/// </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
- Match m = Regex.Match(curLine, @"^ \+ ([0-9]*), ([A-Za-z]*) \((.*)\)");\r
+\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
return subtitles.ToArray();\r
}\r
}\r
-}\r
+}
\ No newline at end of file