public static WaveLib Serdes(WaveLib w, ISerializer s) { w ??= new WaveLib(); s.Begin(); w._headers ??= new WaveLibSample[512]; s.List(nameof(w._headers), w._headers, 512, WaveLibSample.Serdes); foreach (var header in w._headers.Where(x => x.IsValid != -1)) { header.Samples = s.ByteArray(nameof(header.Samples), header.Samples, (int)header.Length); } s.End(); return(w); }
public static WaveLib Serdes(WaveLib w, ISerializer s) { if (s == null) { throw new ArgumentNullException(nameof(s)); } w ??= new WaveLib(); w._headers ??= new WaveLibSample[512]; s.List(nameof(w._headers), w._headers, 512, WaveLibSample.Serdes); foreach (var header in w._headers.Where(x => x.IsValid != -1)) { header.Samples = s.ByteArray(nameof(header.Samples), header.Samples.ToArray(), (int)header.Length); } return(w); }
public static WaveLib Serdes(WaveLib w, ISerializer s) { if (s == null) { throw new ArgumentNullException(nameof(s)); } w ??= new WaveLib(); w.Samples ??= new WaveLibSample[512]; uint offset = WaveLibSample.SizeInBytes * MaxSamples; s.List(nameof(w.Samples), w.Samples, 512, (_, x, s2) => WaveLibSample.Serdes(x, s2, ref offset)); foreach (var header in w.Samples.Where(x => x.Active)) { header.Samples = s.Bytes(nameof(header.Samples), header.Samples, header.Samples.Length); } return(w); }