예제 #1
0
        public SubExtractResult ExtractSubtitles()
        {
            SubExtractResult result        = SubExtractResult.OK;
            FileStream       subTempStream = null;
            BinaryReader     subTempReader = null;

            try
            {
                subTempStream = new FileStream(_dumpFilePath, FileMode.Open, FileAccess.Read);
                subTempReader = new BinaryReader(subTempStream);
                SByte statCode = (SByte)subTempReader.ReadByte();
                bool  bOk      = true;
                if (statCode < 0)
                {
                    if (statCode == -1)
                    {
                        //subtitle not found
                        LogMan.Instance.Log(Resources.ErrSubNotFound, _videoFileName);
                        result = SubExtractResult.NoSubFound;
                    }
                    else
                    {
                        //data connection error
                        LogMan.Instance.Log(Resources.ErrSubDownloadFailed, _videoFileName);
                        result = SubExtractResult.Error;
                    }

                    bOk = false;
                }
                else
                {
                    //sub found
                    LogMan.Instance.Log(Resources.InfoSubFound, _videoFileName, statCode);
                }

                if (bOk)
                {
                    for (int i = 0; i < statCode; i++)
                    {
                        HandleSubPackage(subTempReader);
                    }
                }
            }
            catch (Exception ex)
            {
                LogMan.Instance.Log(Resources.ErrSubExtraction, _videoFileName, ex.Message);
                result = SubExtractResult.Error;
            }
            finally
            {
                if (subTempReader != null)
                {
                    subTempReader.Close();
                }
            }

            return(result);
        }
예제 #2
0
        public SubExtractResult ExtractSubtitles()
        {
            SubExtractResult result        = SubExtractResult.OK;
            FileStream       subTempStream = null;
            BinaryReader     subTempReader = null;

            try
            {
                subTempStream = new FileStream(_dumpFilePath, FileMode.Open, FileAccess.Read);
                subTempReader = new BinaryReader(subTempStream);
                var  statCode = (SByte)subTempReader.ReadByte();
                bool bOk      = true;
                if (statCode < 0)
                {
                    result = statCode == -1 ? SubExtractResult.NoSubFound : SubExtractResult.Error;

                    bOk = false;
                }

                if (bOk)
                {
                    for (int i = 0; i < statCode; i++)
                    {
                        HandleSubPackage(subTempReader);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, _videoFileName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                result = SubExtractResult.Error;
            }
            finally
            {
                if (subTempReader != null)
                {
                    subTempReader.Close();
                }
            }

            return(result);
        }