public void Snap() { EnsureParent(); if (_parent == null) { return; } TimeSpan duration = TimePanel.GetDuration(_parent); if (duration <= TimeSpan.Zero) { return; } if (!TimeLock) { _patternRepeats = duration.Divide(PatternDuration); } int repeats = (int)Math.Round(_patternRepeats); if (repeats <= 0) { repeats = 1; } duration = PatternDuration.Multiply(repeats); _patternRepeats = repeats; TimePanel.SetDuration(_parent, duration); }
public void SetBeatSegment(BeatSegment summary) { TimePanel.SetPosition(this, TimeSpan.FromTicks(summary.Position)); TimePanel.SetDuration(this, TimeSpan.FromTicks(summary.Duration)); BeatLine.SetBeatSegment(summary); }