コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        /// <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();
                }
            });
        }
コード例 #5
0
        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);
        }