OSDN Git Service

updated some ToString overrides for proper use in the UI
[handbrake-jp/handbrake-jp-git.git] / win / C# / Parsing / Subtitle.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.IO;\r
5 \r
6 namespace Handbrake.Parsing\r
7 {\r
8     public class Subtitle\r
9     {\r
10         private int m_trackNumber;\r
11         public int TrackNumber\r
12         {\r
13             get\r
14             {\r
15                 return this.m_trackNumber;\r
16             }\r
17         }\r
18 \r
19         private string m_language;\r
20         public string Language\r
21         {\r
22             get\r
23             {\r
24                 return this.m_language;\r
25             }\r
26         }\r
27 \r
28         public override string ToString()\r
29         {\r
30             return string.Format("{0} {1}", this.m_trackNumber, this.m_language);\r
31         }\r
32 \r
33         public static Subtitle Parse(StreamReader output)\r
34         {\r
35             string curLine = output.ReadLine();\r
36             if (!curLine.Contains("HandBrake has exited."))\r
37             {\r
38                 Subtitle thisSubtitle = new Subtitle();\r
39                 string[] splitter = curLine.Split(new string[] { "    + ", ", " }, StringSplitOptions.RemoveEmptyEntries);\r
40                 thisSubtitle.m_trackNumber = int.Parse(splitter[0]);\r
41                 thisSubtitle.m_language = splitter[1];\r
42                 return thisSubtitle;\r
43             }\r
44             else\r
45             {\r
46                 return null;\r
47             }\r
48         }\r
49 \r
50         public static Subtitle[] ParseList(StreamReader output)\r
51         {\r
52             List<Subtitle> subtitles = new List<Subtitle>();\r
53             while ((char)output.Peek() != '+') // oh glorious hack, serve me well\r
54             {\r
55                 Subtitle thisSubtitle = Subtitle.Parse(output);\r
56                 if (thisSubtitle != null)\r
57                 {\r
58                     subtitles.Add(thisSubtitle);\r
59                 }\r
60                 else\r
61                 {\r
62                     break;\r
63                 }\r
64             }\r
65             return subtitles.ToArray();\r
66         }\r
67     }\r
68 }\r