Example #1
0
 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);
 }
Example #2
0
        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++;
                    }
                }
            }
        }
Example #3
0
 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);
 }