Make SampleControlPoint clone the existing SampleInfo

This commit is contained in:
smoogipoo 2018-07-02 14:17:19 +09:00
parent 37495c34fa
commit 8b0c6a4c85
2 changed files with 9 additions and 5 deletions

View File

@ -32,5 +32,7 @@ public class SampleInfo
/// The sample volume.
/// </summary>
public int Volume;
public SampleInfo Clone() => (SampleInfo)MemberwiseClone();
}
}

View File

@ -36,12 +36,14 @@ public class SampleControlPoint : ControlPoint
/// </summary>
/// <param name="sampleInfo">The <see cref="SampleInfo"/>. This will not be modified.</param>
/// <returns>The modified <see cref="SampleInfo"/>. This does not share a reference with <paramref name="sampleInfo"/>.</returns>
public virtual SampleInfo ApplyTo(SampleInfo sampleInfo) => new SampleInfo
public virtual SampleInfo ApplyTo(SampleInfo sampleInfo)
{
Bank = sampleInfo.Bank ?? SampleBank,
Name = sampleInfo.Name,
Volume = sampleInfo.Volume > 0 ? sampleInfo.Volume : SampleVolume
};
var newSampleInfo = sampleInfo.Clone();
newSampleInfo.Bank = sampleInfo.Bank ?? SampleBank;
newSampleInfo.Name = sampleInfo.Name;
newSampleInfo.Volume = sampleInfo.Volume > 0 ? sampleInfo.Volume : SampleVolume;
return newSampleInfo;
}
public override bool ChangeEquals(ControlPoint other)
=> base.ChangeEquals(other)