public void AddFile(uint id, Stream audioStream, Stream metadataStream)
 {
     SoundbankEntry entry = new SoundbankEntry(this);
     entry.Info.FileId = id;
     if (metadataStream != null)
         entry.Info.MetadataLength = (uint)metadataStream.Length;
     else
         entry.Info.MetadataLength = 0;
     entry.Info.AudioLength = (uint)audioStream.Length;
     m_AudioStreams.Add(audioStream);
     m_MetadataStreams.Add(metadataStream);
     Files.Add(entry);
 }
        public StreamingSoundbank(Stream s)
        {
            DataStream = new MemoryStream();
            s.CopyTo(DataStream);

            DataStream.Seek(0, SeekOrigin.Begin);

            Header = DataStream.ReadStruct<SoundbankHeader>();

            if (Header.Signature != 0x42535756)
                throw new InvalidDataException("File is not a streaming soundbank.");

            for (int i = 0; i < Header.NumFiles; i++)
            {
                var fileInfo = DataStream.ReadStruct<SoundbankEntryInfo>();
                var entry = new SoundbankEntry(this, fileInfo);
                Files.Add(entry);
            }
        }