public VobSubWriter(string subFileName, int screenWidth, int screenHeight, int bottomMargin, int leftRightMargin, int languageStreamId, Color pattern, Color emphasis1, bool useInnerAntialiasing, DvdSubtitleLanguage language) { _subFileName = subFileName; _screenWidth = screenWidth; _screenHeight = screenHeight; _bottomMargin = bottomMargin; _leftRightMargin = leftRightMargin; _languageStreamId = languageStreamId; _pattern = pattern; _emphasis1 = emphasis1; _useInnerAntialiasing = useInnerAntialiasing; _languageName = language.NativeName; _languageNameShort = language.Code; _idx = CreateIdxHeader(); _subFile = new FileStream(subFileName, FileMode.Create); }
public Idx(List <string> lines) { int languageIndex = 0; foreach (string line in lines) { if (TimeCodeLinePattern.IsMatch(line)) { IdxParagraph p = GetTimeCodeAndFilePosition(line); if (p != null) { IdxParagraphs.Add(p); } } else if (line.StartsWith("palette:", StringComparison.OrdinalIgnoreCase) && line.Length > 10) { string s = line.Substring("palette:".Length + 1); string[] colors = s.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (string hex in colors) { Palette.Add(HexToColor(hex)); } } else if (line.StartsWith("id:", StringComparison.OrdinalIgnoreCase) && line.Length > 4) { //id: en, index: 1 //id: es, index: 2 var parts = line.Split(new[] { ':', ',', ' ' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length > 1) { string twoLetterLanguageId = parts[1]; string languageName = DvdSubtitleLanguage.GetLocalLanguageName(twoLetterLanguageId); if (parts.Length > 3 && parts[2].Equals("index", StringComparison.OrdinalIgnoreCase)) { int index; if (int.TryParse(parts[3], out index)) { languageIndex = index; } } // Use U+200E (LEFT-TO-RIGHT MARK) to support right-to-left scripts Languages.Add(string.Format("{0} \x200E(0x{1:x})", languageName, languageIndex + 32)); languageIndex++; } } } }
public VobSubWriter(string subFileName, int screenWidth, int screenHeight, int bottomMargin, int leftRightMargin, int languageStreamId, Color pattern, Color emphasis1, bool useInnerAntiAliasing, DvdSubtitleLanguage language) { _subFileName = subFileName; _screenWidth = screenWidth; _screenHeight = screenHeight; _bottomMargin = bottomMargin; _leftRightMargin = leftRightMargin; _languageStreamId = languageStreamId; _pattern = pattern; _emphasis1 = emphasis1; _useInnerAntiAliasing = useInnerAntiAliasing; _languageName = language.NativeName; _languageNameShort = language.Code; _idx = CreateIdxHeader(); _subFile = new FileStream(subFileName, FileMode.Create); }