1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 08:22:56 +08:00

Add sound for switching between volume controls

This commit is contained in:
Jamie Taylor 2021-07-08 20:01:39 +09:00
parent 341cb09c6e
commit 93eb385dd4
No known key found for this signature in database
GPG Key ID: 2ACFA8B6370B8C8C

View File

@ -8,6 +8,7 @@ using osu.Framework.Allocation;
using osu.Framework.Audio; using osu.Framework.Audio;
using osu.Framework.Audio.Sample; using osu.Framework.Audio.Sample;
using osu.Framework.Bindables; using osu.Framework.Bindables;
using osu.Framework.Extensions;
using osu.Framework.Extensions.Color4Extensions; using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics; using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Containers;
@ -42,7 +43,8 @@ namespace osu.Game.Overlays.Volume
private Container selectedGlowContainer; private Container selectedGlowContainer;
private Sample sample; private Sample hoverSample;
private Sample notchSample;
private double sampleLastPlaybackTime; private double sampleLastPlaybackTime;
public event Action<SelectionState> StateChanged; public event Action<SelectionState> StateChanged;
@ -78,7 +80,8 @@ namespace osu.Game.Overlays.Volume
[BackgroundDependencyLoader] [BackgroundDependencyLoader]
private void load(OsuColour colours, AudioManager audio) private void load(OsuColour colours, AudioManager audio)
{ {
sample = audio.Samples.Get(@"UI/notch-tick"); hoverSample = audio.Samples.Get($"UI/{HoverSampleSet.Button.GetDescription()}-hover");
notchSample = audio.Samples.Get(@"UI/notch-tick");
sampleLastPlaybackTime = Time.Current; sampleLastPlaybackTime = Time.Current;
Color4 backgroundColour = colours.Gray1; Color4 backgroundColour = colours.Gray1;
@ -274,7 +277,7 @@ namespace osu.Game.Overlays.Volume
if (Time.Current - sampleLastPlaybackTime <= tick_debounce_time) if (Time.Current - sampleLastPlaybackTime <= tick_debounce_time)
return; return;
var channel = sample.GetChannel(); var channel = notchSample.GetChannel();
channel.Frequency.Value = 0.99f + RNG.NextDouble(0.02f) + displayVolume * 0.1f; channel.Frequency.Value = 0.99f + RNG.NextDouble(0.02f) + displayVolume * 0.1f;
@ -395,6 +398,8 @@ namespace osu.Game.Overlays.Volume
selectedGlowContainer.FadeOut(transition_length, Easing.OutExpo); selectedGlowContainer.FadeOut(transition_length, Easing.OutExpo);
break; break;
} }
hoverSample?.Play();
} }
} }
} }