// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Bindables; using osu.Game.Beatmaps.ControlPoints; using osu.Game.Graphics.UserInterfaceV2; using osu.Game.Overlays.Settings; namespace osu.Game.Screens.Edit.Timing { internal class SampleSection : Section { private LabelledTextBox bank; private SettingsSlider volume; [BackgroundDependencyLoader] private void load() { Flow.AddRange(new Drawable[] { bank = new LabelledTextBox { Label = "Bank Name", }, volume = new SettingsSlider { Bindable = new SampleControlPoint().SampleVolumeBindable, LabelText = "Volume", } }); } protected override void OnControlPointChanged(ValueChangedEvent point) { if (point.NewValue != null) { bank.Current = point.NewValue.SampleBankBindable; volume.Bindable = point.NewValue.SampleVolumeBindable; } } protected override SampleControlPoint CreatePoint() { var reference = Beatmap.Value.Beatmap.ControlPointInfo.SamplePointAt(SelectedGroup.Value.Time); return new SampleControlPoint { SampleBank = reference.SampleBank, SampleVolume = reference.SampleVolume, }; } } }