public void LoadZones(Zone[] presetZones) { // don't do the last preset, which is simply EOP for (int preset = 0; preset < data.Count - 1; preset++) { var p = (Preset) data[preset]; p.Zones = new Zone[p.endPresetZoneIndex - p.startPresetZoneIndex + 1]; Array.Copy(presetZones, p.startPresetZoneIndex, p.Zones, 0, p.Zones.Length); } // we can get rid of the EOP record now data.RemoveAt(data.Count - 1); }
public void LoadZones(Zone[] zones) { // don't do the last preset, which is simply EOP for (int instrument = 0; instrument < data.Count - 1; instrument++) { var i = (Instrument) data[instrument]; i.Zones = new Zone[i.endInstrumentZoneIndex - i.startInstrumentZoneIndex + 1]; Array.Copy(zones, i.startInstrumentZoneIndex, i.Zones, 0, i.Zones.Length); } // we can get rid of the EOP record now data.RemoveAt(data.Count - 1); }
public override object Read(BinaryReader br) { var z = new Zone(); z.generatorIndex = br.ReadUInt16(); z.modulatorIndex = br.ReadUInt16(); if (lastZone != null) { lastZone.generatorCount = (ushort) (z.generatorIndex - lastZone.generatorIndex); lastZone.modulatorCount = (ushort) (z.modulatorIndex - lastZone.modulatorIndex); } data.Add(z); lastZone = z; return z; }