Move DecodeTimeCode to SubtitleFormat to avoid duplication

This commit is contained in:
Ivandro Ismael 2016-01-16 14:42:44 +00:00
parent dbe92f359f
commit cf6607a18a
16 changed files with 25 additions and 137 deletions

View File

@ -127,16 +127,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -92,16 +92,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}
}

View File

@ -100,16 +100,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -97,17 +97,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00;00;07;12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -126,16 +126,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -80,12 +80,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
return sb.ToString();
}
private static TimeCode DecodeTimeCode(string timeCode)
{
string[] arr = timeCode.Split(new[] { ':', ';', ',' }, StringSplitOptions.RemoveEmptyEntries);
return new TimeCode(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2]), FramesToMillisecondsMax999(int.Parse(arr[3])));
}
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
@ -116,8 +110,8 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
if (italic)
text = "<i>" + text + "</i>";
sb.AppendLine(text);
p = new Paragraph(DecodeTimeCode(arr[1]), DecodeTimeCode(arr[2]), string.Empty);
char[] splitChars = { ',', '.', ':' };
p = new Paragraph(DecodeTimeCode(arr[1], splitChars), DecodeTimeCode(arr[2], splitChars), string.Empty);
}
}
catch

View File

@ -328,15 +328,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
return string.Format("{0:00}:{1:00}:{2:00}:{3:00}", time.Hours, time.Minutes, time.Seconds, MillisecondsToFramesMaxFrameRate(time.Milliseconds));
}
private static TimeCode DecodeTimeCode(string[] parts)
{
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -165,17 +165,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
return "Not supported!";
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
subtitle.Paragraphs.Clear();

View File

@ -74,7 +74,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
var p = new Paragraph();
try
{
p.StartTime = DecodeTimeCode(s.Substring(0, 11));
p.StartTime = DecodeTimeCode(s.Substring(0, 11), new[] {'.', ':' });
p.Text = GetText(line.Remove(0, 11));
subtitle.Paragraphs.Add(p);
}
@ -119,19 +119,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
}
return sb.ToString().Trim();
}
private static TimeCode DecodeTimeCode(string part)
{
string[] parts = part.Split(new[] { '.', ':' }, StringSplitOptions.RemoveEmptyEntries);
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -229,16 +229,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}
}

View File

@ -94,17 +94,5 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
}
subtitle.Renumber();
}
private static TimeCode DecodeTimeCode(string[] parts)
{
//00:00:07:12
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
}
}

View File

@ -398,5 +398,21 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
}
}
protected static TimeCode DecodeTimeCode(string[] parts)
{
if (parts == null || parts.Length < 4)
return null;
var hour = int.Parse(parts[0]);
var minutes = int.Parse(parts[1]);
var seconds = int.Parse(parts[2]);
var frames = int.Parse(parts[3]);
return new TimeCode(hour, minutes, seconds, FramesToMillisecondsMax999(frames));
}
protected static TimeCode DecodeTimeCode(string part, char[] splitChars)
{
return DecodeTimeCode(part.Split(splitChars, StringSplitOptions.RemoveEmptyEntries));
}
}
}

View File

@ -7,7 +7,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
{
public class UnknownSubtitle10 : SubtitleFormat
{
public override string Extension
{
get { return ".txt"; }

View File

@ -38,8 +38,7 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
private static TimeCode DecodeTimeCode(string s)
{
var parts = s.Split(new[] { ';', ':' }, StringSplitOptions.RemoveEmptyEntries);
var tc = new TimeCode(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]) * 100);
return tc;
return new TimeCode(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3]) * 100);
}
public override string ToText(Subtitle subtitle, string title)

View File

@ -92,13 +92,6 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
return sb.ToString();
}
private static TimeCode DecodeTimeCode(string timeCode)
{
timeCode = timeCode.TrimEnd('*');
string[] arr = timeCode.Split(new[] { ':', ';', ',', '.' }, StringSplitOptions.RemoveEmptyEntries);
return new TimeCode(int.Parse(arr[0]), int.Parse(arr[1]), int.Parse(arr[2]), FramesToMillisecondsMax999(int.Parse(arr[3])));
}
public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
{
_errorCount = 0;
@ -118,8 +111,9 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
}
sb = new StringBuilder();
string[] arr = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
char[] splitChars = { ':', ';', ',', '.' };
if (arr.Length == 3)
p = new Paragraph(DecodeTimeCode(arr[1]), DecodeTimeCode(arr[2]), string.Empty);
p = new Paragraph(DecodeTimeCode(arr[1].TrimEnd('*'), splitChars), DecodeTimeCode(arr[2].TrimEnd('*'), splitChars), string.Empty);
}
catch
{

View File

@ -246,4 +246,4 @@ namespace Nikse.SubtitleEdit.Core.SubtitleFormats
}
}
}
}