Beispiel #1
0
 public override void Serialize(IO.EndianStream s, AkSubchunkHeader header)
 {
     if (s.IsReading)
     {
         FromStream(s, header);
     }
 }
Beispiel #2
0
        public override void Serialize(IO.EndianStream s, AkSubchunkHeader header)
        {
            if (s.IsReading)
            {
                LoadedMedia = new AkMediaHeader[header.ChunkSize / AkMediaHeader.kSizeOf];
            }

            s.StreamArray(LoadedMedia);
        }
Beispiel #3
0
        public override void Serialize(IO.EndianStream s, AkSubchunkHeader header)
        {
            if (s.IsReading)
            {
                Buffer = new byte[header.ChunkSize];
            }

            s.Stream(Buffer);
        }
Beispiel #4
0
        void FromStream(IO.EndianStream s, AkSubchunkHeader header)
        {
            var bank = s.Owner as AkSoundBank;

            using (s.EnterVirtualBufferWithBookmark(header.ChunkSize))
            {
                for (int x = 0, num_hirc_items = s.Reader.ReadInt32(); x < num_hirc_items; x++)
                {
                    var section = new AKBKSubHircSection(); section.Serialize(s);

                    SerializeItem(s, section);
                }
            }
        }
        public override void Serialize(IO.EndianStream s, AkSubchunkHeader header)
        {
            Contract.Assert(s.IsReading);

            var bank = s.Owner as AkSoundBank;

            long eos = EndOfStream(s, header);

            while (s.BaseStream.Position != eos)
            {
                AKBKHashHeader hdr = new AKBKHashHeader();
                hdr.Serialize(s);

                SerializeStringType(s, hdr, bank);
            }
        }
        void ReadChunks(IO.EndianStream es, IO.EndianReader s)
        {
            while (!EndOfStream(es))
            {
                var hdr = new AkSubchunkHeader();
                hdr.Serialize(es);

                using (es.EnterVirtualBufferWithBookmark(hdr.ChunkSize))
                {
                    var obj = AkSoundBankObjectBase.New(hdr.Tag, GeneratorVersion);
                    if (obj != null)
                    {
                        obj.Serialize(es, hdr);

                        mChunks.Add(hdr, obj);
                    }
                }
            }
        }
Beispiel #7
0
 public abstract void Serialize(IO.EndianStream s, AkSubchunkHeader header);
Beispiel #8
0
 protected static long EndOfStream(IO.EndianStream s, AkSubchunkHeader header)
 {
     return(s.BaseStream.Position + header.ChunkSize);
 }