public void Write(BinaryWriter bw) { var msRgn = new MemoryStream(); var bwRgn = new BinaryWriter(msRgn); bwRgn.Write("LIST".ToCharArray()); bwRgn.Write(0xFFFFFFFF); bwRgn.Write("rgn ".ToCharArray()); Header.Write(bwRgn); bwRgn.Write("wsmp".ToCharArray()); bwRgn.Write((uint)(Marshal.SizeOf <CK_WSMP>() + Sampler.LoopCount * Marshal.SizeOf <WaveLoop>())); Sampler.Write(bwRgn); for (var i = 0; i < Sampler.LoopCount && i < Loops.Count; ++i) { Loops[i].Write(bwRgn); } WaveLink.Write(bwRgn); Articulations.Write(bwRgn); bwRgn.Seek(4, SeekOrigin.Begin); bwRgn.Write((uint)msRgn.Length - 8); bw.Write(msRgn.ToArray()); }
public void Write(BinaryWriter bw) { var msIns = new MemoryStream(); var bwIns = new BinaryWriter(msIns); bwIns.Write("LIST".ToCharArray()); bwIns.Write(0xFFFFFFFF); bwIns.Write("ins ".ToCharArray()); Header.Write(bwIns); Regions.Write(bwIns); Articulations.Write(bwIns); Info.Write(bwIns); bwIns.Seek(4, SeekOrigin.Begin); bwIns.Write((uint)msIns.Length - 8); bw.Write(msIns.ToArray()); }