Esempio n. 1
0
 /// <summary>
 /// Create an instance which provides the <see cref="IBeatmap"/> when requested.
 /// </summary>
 /// <param name="beatmap">The beatmap</param>
 /// <param name="referenceClock">An optional clock which should be used instead of a stopwatch for virtual time progression.</param>
 /// <param name="audio">Audio manager. Required if a reference clock isn't provided.</param>
 /// <param name="length">The length of the returned virtual track.</param>
 public ClockBackedTestWorkingBeatmap(IBeatmap beatmap, IFrameBasedClock referenceClock, AudioManager audio, double length = 60000)
     : base(beatmap)
 {
     if (referenceClock != null)
     {
         store = new TrackVirtualStore(referenceClock);
         audio.AddItem(store);
         track = store.GetVirtual(length);
     }
     else
         track = audio?.Tracks.GetVirtual(length);
 }
Esempio n. 2
0
            /// <summary>
            /// Create an instance which provides the <see cref="IBeatmap"/> when requested.
            /// </summary>
            /// <param name="beatmap">The beatmap</param>
            /// <param name="storyboard">The storyboard.</param>
            /// <param name="referenceClock">An optional clock which should be used instead of a stopwatch for virtual time progression.</param>
            /// <param name="audio">Audio manager. Required if a reference clock isn't provided.</param>
            public ClockBackedTestWorkingBeatmap(IBeatmap beatmap, Storyboard storyboard, IFrameBasedClock referenceClock, AudioManager audio)
                : base(beatmap, storyboard, audio)
            {
                double trackLength = 60000;

                if (beatmap.HitObjects.Count > 0)
                {
                    // add buffer after last hitobject to allow for final replay frames etc.
                    trackLength = Math.Max(trackLength, beatmap.HitObjects.Max(h => h.GetEndTime()) + 2000);
                }

                if (referenceClock != null)
                {
                    store = new TrackVirtualStore(referenceClock);
                    audio.AddItem(store);
                    track = store.GetVirtual(trackLength);
                }
                else
                {
                    track = audio?.Tracks.GetVirtual(trackLength);
                }
            }