示例#1
0
文件: Info.cs 项目: zeta1999/Vrmac
        internal Info(Stream stream)
        {
            List <Guid>             segmentFamilylist    = null;
            List <ChapterTranslate> chapterTranslatelist = null;
            ElementReader           reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.SegmentUID:
                    segmentUID = reader.readGuid();
                    break;

                case eElement.SegmentFilename:
                    segmentFilename = reader.readUtf8();
                    break;

                case eElement.PrevUID:
                    prevUID = reader.readGuid();
                    break;

                case eElement.PrevFilename:
                    prevFilename = reader.readUtf8();
                    break;

                case eElement.NextUID:
                    nextUID = reader.readGuid();
                    break;

                case eElement.NextFilename:
                    nextFilename = reader.readUtf8();
                    break;

                case eElement.SegmentFamily:
                    if (null == segmentFamilylist)
                    {
                        segmentFamilylist = new List <Guid>();
                    }
                    segmentFamilylist.Add(reader.readGuid());
                    break;

                case eElement.ChapterTranslate:
                    if (null == chapterTranslatelist)
                    {
                        chapterTranslatelist = new List <ChapterTranslate>();
                    }
                    chapterTranslatelist.Add(new ChapterTranslate(stream));
                    break;

                case eElement.TimestampScale:
                    timestampScale = reader.readUlong(1000000);
                    break;

                case eElement.Duration:
                    duration = reader.readFloat();
                    break;

                case eElement.DateUTC:
                    dateUTC = reader.readDate();
                    break;

                case eElement.Title:
                    title = reader.readUtf8();
                    break;

                case eElement.MuxingApp:
                    muxingApp = reader.readUtf8();
                    break;

                case eElement.WritingApp:
                    writingApp = reader.readUtf8();
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
            if (segmentFamilylist != null)
            {
                segmentFamily = segmentFamilylist.ToArray();
            }
            if (chapterTranslatelist != null)
            {
                chapterTranslate = chapterTranslatelist.ToArray();
            }
        }