Ejemplo n.º 1
0
        private bool InitializeSubIdx(string vobSubFileName)
        {
            VobSubParser vobSubParser = new VobSubParser(true);
            string idxFileName = Path.ChangeExtension(vobSubFileName, ".idx");
            vobSubParser.OpenSubIdx(vobSubFileName, idxFileName);
            _vobSubMergedPackist = vobSubParser.MergeVobSubPacks();
            _palette = vobSubParser.IdxPalette;
            vobSubParser.VobSubPacks.Clear();

            List<int> languageStreamIds = new List<int>();
            foreach (var pack in _vobSubMergedPackist)
            {
                if (pack.SubPicture.Delay.TotalMilliseconds > 500 && !languageStreamIds.Contains(pack.StreamId))
                    languageStreamIds.Add(pack.StreamId);
            }
            if (languageStreamIds.Count > 1)
            {
                DvdSubRipChooseLanguage ChooseLanguage = new DvdSubRipChooseLanguage();
                ChooseLanguage.Initialize(_vobSubMergedPackist, _palette, vobSubParser.IdxLanguages, string.Empty);
                Form form = _main;
                if (form == null)
                    form = this;
                ChooseLanguage.Activate();
                if (ChooseLanguage.ShowDialog(form) == System.Windows.Forms.DialogResult.OK)
                {
                    _vobSubMergedPackist = ChooseLanguage.SelectedVobSubMergedPacks;
                    SetTesseractLanguageFromLanguageString(ChooseLanguage.SelectedLanguageString);
                    _importLanguageString = ChooseLanguage.SelectedLanguageString;
                }
                else
                {
                    return false;
                }
            }
            return true;
        }
        /// <summary>
        /// The initialize sub idx.
        /// </summary>
        /// <param name="vobSubFileName">
        /// The vob sub file name.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        private bool InitializeSubIdx(string vobSubFileName)
        {
            var vobSubParser = new VobSubParser(true);
            string idxFileName = Path.ChangeExtension(vobSubFileName, ".idx");
            vobSubParser.OpenSubIdx(vobSubFileName, idxFileName);
            this._vobSubMergedPackist = vobSubParser.MergeVobSubPacks();
            this._palette = vobSubParser.IdxPalette;
            vobSubParser.VobSubPacks.Clear();

            var languageStreamIds = new List<int>();
            foreach (var pack in this._vobSubMergedPackist)
            {
                if (pack.SubPicture.Delay.TotalMilliseconds > 500 && !languageStreamIds.Contains(pack.StreamId))
                {
                    languageStreamIds.Add(pack.StreamId);
                }
            }

            if (languageStreamIds.Count > 1)
            {
                using (var chooseLanguage = new DvdSubRipChooseLanguage())
                {
                    if (this.ShowInTaskbar)
                    {
                        chooseLanguage.Icon = (Icon)this.Icon.Clone();
                        chooseLanguage.ShowInTaskbar = true;
                        chooseLanguage.ShowIcon = true;
                    }

                    chooseLanguage.Initialize(this._vobSubMergedPackist, this._palette, vobSubParser.IdxLanguages, string.Empty);
                    Form form = this._main;
                    if (form == null)
                    {
                        form = this;
                    }

                    chooseLanguage.Activate();
                    if (chooseLanguage.ShowDialog(form) == DialogResult.OK)
                    {
                        this._vobSubMergedPackist = chooseLanguage.SelectedVobSubMergedPacks;
                        this.SetTesseractLanguageFromLanguageString(chooseLanguage.SelectedLanguageString);
                        this._importLanguageString = chooseLanguage.SelectedLanguageString;
                    }
                    else
                    {
                        return false;
                    }
                }
            }

            return true;
        }