/// <summary> /// Copy data from sysex dumps /// </summary> /// <param name="common">Common sysex message</param> /// <param name="vfx">VFX sysex message</param> public void CopyFrom(SysExMessage common, SysExMessage vfx) { // Skipping 12 bytes from front because it's header and address offset // Skipping 2 bytes from end because it's checksum and sysex footer var commonBytes = common.GetBytes().Skip(12).ToArray(); var vfxBytes = vfx.GetBytes().Skip(12).ToArray(); Common.CopyFrom(commonBytes.Take(commonBytes.Length - 2).ToArray()); VocalEffect.CopyFrom(vfxBytes.Take(vfxBytes.Length - 2).ToArray()); }
/// <inheritdoc /> public void CopyFrom(IPatch patch) { if (patch is CommonAndVocalEffectPatch p) { Common.CopyFrom(p.Common); VocalEffect.CopyFrom(p.VocalEffect); } else { throw new NotSupportedException("Copying from that type is not supported"); } }
/// <inheritdoc /> public void Reset() { Common.Reset(); VocalEffect.Reset(); }