diff --git a/src/Logic/SubtitleFormats/SubtitleFormat.cs b/src/Logic/SubtitleFormats/SubtitleFormat.cs index 106e01b78..217347c9a 100644 --- a/src/Logic/SubtitleFormats/SubtitleFormat.cs +++ b/src/Logic/SubtitleFormats/SubtitleFormat.cs @@ -91,6 +91,7 @@ namespace Nikse.SubtitleEdit.Logic.SubtitleFormats new UnknownSubtitle12(), new UnknownSubtitle13(), new UnknownSubtitle14(), + new UnknownSubtitle15(), new UTSubtitleXml(), new Utx(), new UtxFrames(), diff --git a/src/Logic/SubtitleFormats/UnknownSubtitle15.cs b/src/Logic/SubtitleFormats/UnknownSubtitle15.cs new file mode 100644 index 000000000..2648d6f1c --- /dev/null +++ b/src/Logic/SubtitleFormats/UnknownSubtitle15.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Xml; +using System.IO; + +namespace Nikse.SubtitleEdit.Logic.SubtitleFormats +{ + class UnknownSubtitle15 : SubtitleFormat + { + public override string Extension + { + get { return ".xml"; } + } + + public override string Name + { + get { return "Unknown 15"; } + } + + public override bool HasLineNumber + { + get { return false; } + } + + public override bool IsTimeBased + { + get { return true; } + } + + public override bool IsMine(List lines, string fileName) + { + Subtitle subtitle = new Subtitle(); + this.LoadSubtitle(subtitle, lines, fileName); + return subtitle.Paragraphs.Count > 0; + } + + private string ToTimeCode(TimeCode tc) + { + int last = (int)(tc.Milliseconds / 10 + 0.5); + return tc.ToString().Substring(0, 8) + ":" + string.Format("{0:0#}", last); + } + + private TimeCode DecodeTimeCode(string s) + { + var parts = s.Split(";:".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + TimeCode tc = new TimeCode(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]) * 100); + return tc; + } + + public override string ToText(Subtitle subtitle, string title) + { + // + //