/// <summary> /// Retrieves a <see cref="PreviewTrack"/> for a <see cref="IBeatmapSetInfo"/>. /// </summary> /// <param name="beatmapSetInfo">The <see cref="IBeatmapSetInfo"/> to retrieve the preview track for.</param> /// <returns>The playable <see cref="PreviewTrack"/>.</returns> public PreviewTrack Get(IBeatmapSetInfo beatmapSetInfo) { var track = CreatePreviewTrack(beatmapSetInfo, trackStore); track.Started += () => Schedule(() => { CurrentTrack?.Stop(); CurrentTrack = track; mainTrackAdjustments.AddAdjustment(AdjustableProperty.Volume, muteBindable); }); track.Stopped += () => Schedule(() => { if (CurrentTrack != track) { return; } CurrentTrack = null; mainTrackAdjustments.RemoveAdjustment(AdjustableProperty.Volume, muteBindable); }); return(track); }
/// <summary> /// Retrieves a <see cref="PreviewTrack"/> for a <see cref="BeatmapSetInfo"/>. /// </summary> /// <param name="beatmapSetInfo">The <see cref="BeatmapSetInfo"/> to retrieve the preview track for.</param> /// <returns>The playable <see cref="PreviewTrack"/>.</returns> public PreviewTrack Get(BeatmapSetInfo beatmapSetInfo) { var track = CreatePreviewTrack(beatmapSetInfo, trackStore); track.Started += () => Schedule(() => { current?.Stop(); current = track; audio.Tracks.AddAdjustment(AdjustableProperty.Volume, muteBindable); }); track.Stopped += () => Schedule(() => { if (current != track) { return; } current = null; audio.Tracks.RemoveAdjustment(AdjustableProperty.Volume, muteBindable); }); return(track); }