public void BeatTimer_ResumeTimer() { var beatTimer = new BeatTimer(60); beatTimer.StartTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.PauseTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.ResumeTimer(); beatTimer.OnQuarterBeat(); Assert.AreEqual(3 * 250, beatTimer.Time.Milliseconds); beatTimer = new BeatTimer(60); beatTimer.StartTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.PauseTimer(1111, -3); beatTimer.OnQuarterBeat(); beatTimer.ResumeTimer(42, 8); Assert.AreEqual((2 - 3 - 8) * 250 + 1111 - 42, beatTimer.Time.Milliseconds); }
public void BeatTimer_PauseTimer() { var beatTimer = new BeatTimer(60); beatTimer.StartTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.PauseTimer(); Assert.IsTrue(beatTimer.IsPaused); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); Assert.AreEqual(2 * 250, beatTimer.Time.Milliseconds); beatTimer = new BeatTimer(60); beatTimer.StartTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.PauseTimer(1111, -3); beatTimer.OnQuarterBeat(); Assert.AreEqual((2 - 3) * 250 + 1111, beatTimer.Time.Milliseconds); }
public void BeatTimer_OnQuarterBeat() { var beatTimer = new BeatTimer(60); beatTimer.OnQuarterBeat(); Assert.AreEqual(0, beatTimer.Time.Milliseconds); beatTimer.StartTimer(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); Assert.AreEqual(3 * 250, beatTimer.Time.Milliseconds); }
/// <summary> /// Offsets relative to the last beat /// </summary> /// <param name="millisecondsOffset"></param> /// <param name="quarterBeatsOffset"></param> public void StartTimer(int millisecondsOffset = 0, int quarterBeatsOffset = 0) { var beatTime = new BeatTime(_beatTimer.Bpm, quarterBeatsOffset, millisecondsOffset); DoAfterUpdate(() => { if (IsRunning) { return; } ResetTimer(); _speedrunStopwatch.Start((int)beatTime.Milliseconds); _beatTimer.StartTimer(millisecondsOffset, quarterBeatsOffset); RunLog.StartDate = _speedrunStopwatch.StartDate + beatTime.TimeSpan; if (LiveSplitSyncEnabled) { _liveSplitSync.Start(); } }); }
public void BeatTimer_StartTimer() { var beatTimer = new BeatTimer(60); Assert.IsFalse(beatTimer.IsStarted); beatTimer.StartTimer(1111, 3); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); Assert.IsTrue(beatTimer.IsStarted); Assert.IsFalse(beatTimer.IsPaused); Assert.AreEqual((-3 + 2) * 250 - 1111, beatTimer.Time.Milliseconds); beatTimer = new BeatTimer(60); beatTimer.StartTimer(-260, 1); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); beatTimer.OnQuarterBeat(); Assert.AreEqual((3 - 1) * 250 + 260, beatTimer.Time.Milliseconds); }