public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; int number = 0; foreach (string line in lines) { if (!string.IsNullOrWhiteSpace(line) && line[0] != '$' && !line.StartsWith("//", StringComparison.Ordinal)) { if (RegexTimeCodes.Match(line).Success) { string[] toPart = line.Substring(0, 24).Trim(',').Split(','); var p = new Paragraph(); if (toPart.Length == 2 && DvdStudioPro.GetTimeCode(p.StartTime, toPart[0]) && DvdStudioPro.GetTimeCode(p.EndTime, toPart[1])) { number++; p.Number = number; string text = line.Substring(25).Trim(); p.Text = text.Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DvdStudioPro.DecodeStyles(p.Text); subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } } }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; int number = 0; bool italicOn = false; foreach (string line in lines) { if (string.IsNullOrWhiteSpace(line)) { } else if (line[0] != '$' && !line.StartsWith("//", StringComparison.Ordinal)) { if (RegexTimeCodes.Match(line).Success) { string[] toPart = line.Substring(0, 24).Trim(',').Split(','); var p = new Paragraph(); if (toPart.Length == 2 && DvdStudioPro.GetTimeCode(p.StartTime, toPart[0]) && DvdStudioPro.GetTimeCode(p.EndTime, toPart[1])) { number++; p.Number = number; string text = line.Substring(25).Trim(); p.Text = text.Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DvdStudioPro.DecodeStyles(p.Text); if (italicOn && !p.Text.Contains("<i>")) { p.Text = "<i>" + p.Text + "</i>"; } subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } else if (line.StartsWith("// Format: NTSC - 29.97", StringComparison.OrdinalIgnoreCase)) { Configuration.Settings.General.CurrentFrameRate = 29.97; } else if (line.StartsWith("// Format: NTSC - 23.9", StringComparison.OrdinalIgnoreCase)) { Configuration.Settings.General.CurrentFrameRate = 23.976; } else if (line.StartsWith("$Italic = True", StringComparison.OrdinalIgnoreCase)) { italicOn = true; } else if (line.StartsWith("$Italic = False", StringComparison.OrdinalIgnoreCase)) { italicOn = false; } } }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; int number = 0; var verticalAlign = "$VertAlign=Bottom"; var horizontalAlign = "$HorzAlign=Center"; foreach (string line in lines) { if (!string.IsNullOrWhiteSpace(line) && line[0] != '$' && !line.StartsWith("//", StringComparison.Ordinal)) { if (RegexTimeCodes.Match(line).Success) { string[] toPart = line.Substring(0, 25).Split(new[] { " ," }, StringSplitOptions.None); Paragraph p = new Paragraph(); if (toPart.Length == 2 && DvdStudioPro.GetTimeCode(p.StartTime, toPart[0]) && DvdStudioPro.GetTimeCode(p.EndTime, toPart[1])) { number++; p.Number = number; string text = line.Substring(27).Trim(); p.Text = text.Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DvdStudioPro.DecodeStyles(p.Text); p.Text = DvdStudioPro.GetAlignment(verticalAlign, horizontalAlign) + p.Text; if (p.Text.Trim().StartsWith("<<Graphic>>")) { p.Text = p.Text.Trim().Remove(0, "<<Graphic>>".Length).Trim(); } subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } else if (line != null && line.TrimStart().StartsWith("$VertAlign", StringComparison.OrdinalIgnoreCase)) { verticalAlign = line.RemoveChar(' ').RemoveChar('\t'); } else if (line != null && line.TrimStart().StartsWith("$HorzAlign", StringComparison.OrdinalIgnoreCase)) { horizontalAlign = line.RemoveChar(' ').RemoveChar('\t'); } } }
public override void LoadSubtitle(Subtitle subtitle, List <string> lines, string fileName) { _errorCount = 0; int number = 0; var verticalAlign = "$VertAlign=Bottom"; var horizontalAlign = "$HorzAlign=Center"; bool italicOn = false; bool boldOn = false; bool underlineOn = false; foreach (string line in lines) { if (string.IsNullOrWhiteSpace(line)) { } else if (line[0] != '$' && !line.StartsWith("//", StringComparison.Ordinal)) { if (RegexTimeCodes.Match(line).Success) { string[] toPart = line.Substring(0, 24).Trim(',').Split(','); var p = new Paragraph(); if (toPart.Length == 2 && DvdStudioPro.GetTimeCode(p.StartTime, toPart[0]) && DvdStudioPro.GetTimeCode(p.EndTime, toPart[1])) { number++; p.Number = number; string text = line.Substring(25).Trim(); p.Text = text.Replace(" | ", Environment.NewLine).Replace("|", Environment.NewLine); p.Text = DvdStudioPro.DecodeStyles(p.Text); if (italicOn && !p.Text.Contains("<i>")) { p.Text = "<i>" + p.Text + "</i>"; } if (boldOn && !p.Text.Contains("<b>")) { p.Text = "<b>" + p.Text + "</b>"; } if (underlineOn && !p.Text.Contains("<u>")) { p.Text = "<u>" + p.Text + "</u>"; } p.Text = DvdStudioPro.GetAlignment(verticalAlign, horizontalAlign) + p.Text; subtitle.Paragraphs.Add(p); } } else { _errorCount++; } } else if (line.StartsWith("// Format: NTSC - 29.97", StringComparison.OrdinalIgnoreCase)) { Configuration.Settings.General.CurrentFrameRate = 29.97; } else if (line.StartsWith("// Format: NTSC - 23.9", StringComparison.OrdinalIgnoreCase)) { Configuration.Settings.General.CurrentFrameRate = 23.976; } else if (line.TrimStart().StartsWith("$VertAlign", StringComparison.OrdinalIgnoreCase)) { verticalAlign = line.RemoveChar(' ', '\t'); } else if (line.TrimStart().StartsWith("$HorzAlign", StringComparison.OrdinalIgnoreCase)) { horizontalAlign = line.RemoveChar(' ', '\t'); } else if (line.Replace(" ", string.Empty).Equals("$Italic=True", StringComparison.OrdinalIgnoreCase)) { italicOn = true; } else if (line.Replace(" ", string.Empty).Trim().Equals("$Italic=False", StringComparison.OrdinalIgnoreCase)) { italicOn = false; } else if (line.Replace(" ", string.Empty).Equals("$Bold=True", StringComparison.OrdinalIgnoreCase)) { boldOn = true; } else if (line.Replace(" ", string.Empty).Trim().Equals("$Bold=False", StringComparison.OrdinalIgnoreCase)) { boldOn = false; } else if (line.Replace(" ", string.Empty).Equals("$Underlined=True", StringComparison.OrdinalIgnoreCase)) { underlineOn = true; } else if (line.Replace(" ", string.Empty).Trim().Equals("$Underlined=False", StringComparison.OrdinalIgnoreCase)) { underlineOn = false; } } }