From 059e2a3c5a239b262ed42de4054d4193495a1400 Mon Sep 17 00:00:00 2001 From: TocoToucan Date: Wed, 12 Oct 2016 22:17:53 +0300 Subject: [PATCH] Improve appearing of the volume meters --- osu.Game/VolumeControl.cs | 11 +++++++++-- osu.Game/VolumeMeter.cs | 21 +++++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/osu.Game/VolumeControl.cs b/osu.Game/VolumeControl.cs index a63b2147fc..fdb7bf1785 100644 --- a/osu.Game/VolumeControl.cs +++ b/osu.Game/VolumeControl.cs @@ -20,9 +20,18 @@ public VolumeControl() RelativeSizeAxes = Axes.Both; } + private void volumeChanged(object sender, System.EventArgs e) + { + appear(); + } + public override void Load(BaseGame game) { base.Load(game); + VolumeGlobal.ValueChanged += volumeChanged; + VolumeSample.ValueChanged += volumeChanged; + VolumeTrack.ValueChanged += volumeChanged; + Children = new Drawable[] { volumeMetersContainer = new FlowContainer @@ -44,14 +53,12 @@ public override void Load(BaseGame game) protected override bool OnWheelDown(InputState state) { - appear(); volumeMeterMaster.TriggerWheelDown(state); return true; } protected override bool OnWheelUp(InputState state) { - appear(); volumeMeterMaster.TriggerWheelUp(state); return true; } diff --git a/osu.Game/VolumeMeter.cs b/osu.Game/VolumeMeter.cs index 23cd771098..3309b19b12 100644 --- a/osu.Game/VolumeMeter.cs +++ b/osu.Game/VolumeMeter.cs @@ -1,5 +1,4 @@ -using osu.Framework; -using osu.Framework.Configuration; +using osu.Framework.Configuration; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; using osu.Framework.Graphics.Drawables; @@ -53,26 +52,28 @@ public VolumeMeter(string meterName, BindableDouble volume) }; } - public override void Load(BaseGame game) + public double Volume { - base.Load(game); - updateFill(); + get { return volume.Value; } + private set + { + volume.Value = value; + updateFill(); + } } protected override bool OnWheelUp(InputState state) { - volume.Value += 0.05f; - updateFill(); + Volume += 0.05f; return true; } protected override bool OnWheelDown(InputState state) { - volume.Value -= 0.05f; - updateFill(); + Volume -= 0.05f; return true; } - private void updateFill() => meterFill.ScaleTo(new Vector2(1, (float)volume.Value), 300, EasingTypes.OutQuint); + private void updateFill() => meterFill.ScaleTo(new Vector2(1, (float)Volume), 300, EasingTypes.OutQuint); } } \ No newline at end of file