Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }