1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-16 02:23:10 +08:00

Tidy up test scene

This commit is contained in:
Dean Herbert 2021-10-07 20:08:02 +09:00
parent ef64c64f0b
commit ba84da6ef8

View File

@ -5,11 +5,12 @@ using ManagedBass.Fx;
using NUnit.Framework; using NUnit.Framework;
using osu.Framework.Allocation; using osu.Framework.Allocation;
using osu.Framework.Audio; using osu.Framework.Audio;
using osu.Framework.Audio.Track;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Sprites;
using osu.Framework.Testing;
using osu.Game.Audio.Effects; using osu.Game.Audio.Effects;
using osu.Game.Beatmaps;
using osu.Game.Graphics.Sprites; using osu.Game.Graphics.Sprites;
using osu.Game.Graphics.UserInterface; using osu.Game.Graphics.UserInterface;
@ -17,18 +18,22 @@ namespace osu.Game.Tests.Visual.Audio
{ {
public class TestSceneAudioFilter : OsuTestScene public class TestSceneAudioFilter : OsuTestScene
{ {
private WorkingBeatmap testBeatmap;
private OsuSpriteText lowpassText; private OsuSpriteText lowpassText;
private AudioFilter lowpassFilter;
private OsuSpriteText highpassText;
private AudioFilter highpassFilter; private AudioFilter highpassFilter;
private AudioFilter lowpassFilter; private Track track;
private OsuSpriteText highpassText;
private WaveformTestBeatmap beatmap;
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(AudioManager audio) private void load(AudioManager audio)
{ {
testBeatmap = new WaveformTestBeatmap(audio); beatmap = new WaveformTestBeatmap(audio);
track = beatmap.LoadTrack();
Add(new FillFlowContainer Add(new FillFlowContainer
{ {
Children = new Drawable[] Children = new Drawable[]
@ -67,30 +72,56 @@ namespace osu.Game.Tests.Visual.Audio
highpassFilter.Cutoff.ValueChanged += e => highpassText.Text = $"High Pass: {e.NewValue}hz"; highpassFilter.Cutoff.ValueChanged += e => highpassText.Text = $"High Pass: {e.NewValue}hz";
} }
[Test] [SetUpSteps]
public void TestLowPass() => testFilter(lowpassFilter, AudioFilter.MAX_LOWPASS_CUTOFF, 0); public void SetUpSteps()
{
[Test] AddStep("Play Track", () => track.Start());
public void TestHighPass() => testFilter(highpassFilter, 0, AudioFilter.MAX_LOWPASS_CUTOFF); waitTrackPlay();
}
private void testFilter(AudioFilter filter, int cutoffFrom, int cutoffTo)
[Test]
public void TestLowPass()
{ {
AddStep("Load Track", () => testBeatmap.LoadTrack());
AddStep("Play Track", () => testBeatmap.Track.Start());
AddWaitStep("Let track play", 10);
AddStep("Filter Sweep", () => AddStep("Filter Sweep", () =>
{ {
filter.CutoffTo(cutoffFrom).Then() lowpassFilter.CutoffTo(AudioFilter.MAX_LOWPASS_CUTOFF).Then()
.CutoffTo(cutoffTo, 2000, cutoffFrom > cutoffTo ? Easing.OutCubic : Easing.InCubic); .CutoffTo(0, 2000, Easing.OutCubic);
}); });
AddWaitStep("Let track play", 10);
waitTrackPlay();
AddStep("Filter Sweep (reverse)", () => AddStep("Filter Sweep (reverse)", () =>
{ {
filter.CutoffTo(cutoffTo).Then() lowpassFilter.CutoffTo(0).Then()
.CutoffTo(cutoffFrom, 2000, cutoffTo > cutoffFrom ? Easing.OutCubic : Easing.InCubic); .CutoffTo(AudioFilter.MAX_LOWPASS_CUTOFF, 2000, Easing.InCubic);
}); });
AddWaitStep("Let track play", 10);
AddStep("Stop track", () => testBeatmap.Track.Stop()); waitTrackPlay();
} AddStep("Stop track", () => track.Stop());
}
[Test]
public void TestHighPass()
{
AddStep("Filter Sweep", () =>
{
highpassFilter.CutoffTo(0).Then()
.CutoffTo(AudioFilter.MAX_LOWPASS_CUTOFF, 2000, Easing.InCubic);
});
waitTrackPlay();
AddStep("Filter Sweep (reverse)", () =>
{
highpassFilter.CutoffTo(AudioFilter.MAX_LOWPASS_CUTOFF).Then()
.CutoffTo(0, 2000, Easing.OutCubic);
});
waitTrackPlay();
AddStep("Stop track", () => track.Stop());
}
private void waitTrackPlay() => AddWaitStep("Let track play", 10);
} }
} }