public void PlaybackCompletedToEnd() { var vt = new VirtualMidiPlayerTimeManager(); var music = TestHelper.GetMidiMusic(); var qmsec = MidiMusic.GetPlayTimeMillisecondsAtTick(music.Tracks [0].Messages, 4998, 192); var player = TestHelper.GetMidiPlayer(vt, music); bool completed = false, finished = false; player.PlaybackCompletedToEnd += () => completed = true; player.Finished += () => finished = true; Assert.IsTrue(!completed, "1 PlaybackCompletedToEnd already fired"); Assert.IsTrue(!finished, "2 Finished already fired"); player.Play(); vt.ProceedBy(100); Assert.IsTrue(!completed, "3 PlaybackCompletedToEnd already fired"); Assert.IsTrue(!finished, "4 Finished already fired"); vt.ProceedBy(qmsec); Assert.AreEqual(12989, qmsec, "qmsec"); // FIXME: this is ugly while (player.PlayDeltaTime < 4988) { Task.Delay(100); } Assert.AreEqual(4988, player.PlayDeltaTime, "PlayDeltaTime"); player.Pause(); player.Dispose(); Assert.IsTrue(completed, "5 PlaybackCompletedToEnd not fired"); Assert.IsTrue(finished, "6 Finished not fired"); }
public void GetTimePositionInMillisecondsForTick() { var vt = new VirtualMidiPlayerTimeManager(); var player = TestHelper.GetMidiPlayer(vt); player.Play(); vt.ProceedBy(100); player.Seek(5000); Task.Delay(200); Assert.AreEqual(5000, player.PlayDeltaTime, "1 PlayDeltaTime"); Assert.AreEqual(12, (int)player.PositionInTime.TotalSeconds, "1 PositionInTime"); vt.ProceedBy(100); // FIXME: this is ugly. Task.Delay(100); // FIXME: not working //Assert.AreEqual (5100, player.PlayDeltaTime, "2 PlayDeltaTime"); Assert.AreEqual(12, (int)player.PositionInTime.TotalSeconds, "2 PositionInTime"); player.Seek(2000); Assert.AreEqual(2000, player.PlayDeltaTime, "3 PlayDeltaTime"); Assert.AreEqual(5, (int)player.PositionInTime.TotalSeconds, "3 PositionInTime"); vt.ProceedBy(100); // FIXME: this is ugly. Task.Delay(100); // FIXME: not working //Assert.AreEqual (2100, player.PlayDeltaTime, "4 PlayDeltaTime"); Assert.AreEqual(5, (int)player.PositionInTime.TotalSeconds, "4 PositionInTime"); }
public void PlaySimple() { var vt = new VirtualMidiPlayerTimeManager(); var player = TestHelper.GetMidiPlayer(vt); player.Play(); vt.ProceedBy(200000); player.Pause(); player.Dispose(); }
public void PlaybackCompletedToEndAbort() { var vt = new VirtualMidiPlayerTimeManager(); var player = TestHelper.GetMidiPlayer(vt); bool completed = false, finished = false; player.PlaybackCompletedToEnd += () => completed = true; player.Finished += () => finished = true; player.Play(); vt.ProceedBy(1000); // FIXME: this is ugly while (player.PlayDeltaTime == 0) { Task.Delay(100); } player.Pause(); player.Dispose(); // abort in the middle Assert.IsFalse(completed, "1 PlaybackCompletedToEnd unexpectedly fired"); Assert.IsTrue(finished, "2 Finished not fired"); }