Exemplo n.º 1
0
        //============================================================
        // <T>序列化数据到输出流。</T>
        //
        // @param output 输出流
        // @return 处理结果
        //============================================================
        public EResult Serialize(IDataOutput output)
        {
            // 写入属性
            output.WriteString(_name);
            // 写入帧集合
            int count = _frames.Count;

            output.WriteInt32(count);
            for (int n = 0; n < count; n++)
            {
                FFrameInfo frameInfo = _frames.Get(n);
                frameInfo.Serialize(output);
            }
            return(EResult.Success);
        }
Exemplo n.º 2
0
        //============================================================
        // <T>从输入流中反序列化数据。</T>
        //
        // @param input 输入流
        // @return 处理结果
        //============================================================
        public EResult Unserialize(IDataInput input)
        {
            // 读取属性
            _name = input.ReadString();
            // 读取帧集合
            int count = input.ReadInt32();

            for (int n = 0; n < count; n++)
            {
                FFrameInfo frameInfo = new FFrameInfo();
                frameInfo.Unserialize(input);
                frameInfo.Index = _frames.Count;
                _frames.Push(frameInfo);
            }
            return(EResult.Success);
        }
Exemplo n.º 3
0
        //============================================================
        // <T>获得指定时间的帧对象。</T>
        //============================================================
        public FFrameInfo SyncFrame(long tick)
        {
            long findTick = tick / 1000000;
            int  count    = _frames.Count;

            if (count > 0)
            {
                FFrameInfo find = _frames.Get(count - 1);
                if (find.Tick == findTick)
                {
                    return(find);
                }
            }
            FFrameInfo info = new FFrameInfo();

            info.Index = _frames.Count;
            info.Tick  = findTick;
            _frames.Push(info);
            return(info);
        }