mirror of
https://github.com/osukey/osukey.git
synced 2025-05-29 09:27:18 +09:00
Cleanup external PlayButton.Playing usage
This commit is contained in:
parent
498244a308
commit
a24589f583
@ -37,14 +37,17 @@ namespace osu.Game.Audio
|
|||||||
CurrentTrack?.Stop();
|
CurrentTrack?.Stop();
|
||||||
audio.Track.AddAdjustment(AdjustableProperty.Volume, muteBindable);
|
audio.Track.AddAdjustment(AdjustableProperty.Volume, muteBindable);
|
||||||
CurrentTrack = track;
|
CurrentTrack = track;
|
||||||
CurrentTrack.Stopped += () => CurrentTrack = null;
|
|
||||||
};
|
};
|
||||||
onTrackStop = () => audio.Track.RemoveAdjustment(AdjustableProperty.Volume, muteBindable);
|
onTrackStop = () =>
|
||||||
|
{
|
||||||
|
audio.Track.RemoveAdjustment(AdjustableProperty.Volume, muteBindable);
|
||||||
|
CurrentTrack = null;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public PreviewTrack Get(BeatmapSetInfo beatmapSetInfo) =>
|
public PreviewTrack Get(BeatmapSetInfo beatmapSetInfo) =>
|
||||||
new PreviewTrack(
|
new PreviewTrack(
|
||||||
trackManager.Get($"https://b.ppy.sh/preview/{beatmapSetInfo.OnlineBeatmapSetID}.mp3"),
|
trackManager.Get($"https://b.ppy.sh/preview/{beatmapSetInfo?.OnlineBeatmapSetID}.mp3"),
|
||||||
onTrackStart,
|
onTrackStart,
|
||||||
onTrackStop);
|
onTrackStop);
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ namespace osu.Game.Overlays.BeatmapSet.Buttons
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
Action = () => Playing.Value = !Playing.Value;
|
Action = () => playButton.TriggerOnClick();
|
||||||
Playing.ValueChanged += newValue => progress.FadeTo(newValue ? 1 : 0, 100);
|
Playing.ValueChanged += newValue => progress.FadeTo(newValue ? 1 : 0, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,12 +89,6 @@ namespace osu.Game.Overlays.BeatmapSet.Buttons
|
|||||||
progress.Width = 0;
|
progress.Width = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Dispose(bool isDisposing)
|
|
||||||
{
|
|
||||||
Playing.Value = false;
|
|
||||||
base.Dispose(isDisposing);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override bool OnHover(InputState state)
|
protected override bool OnHover(InputState state)
|
||||||
{
|
{
|
||||||
bg.FadeColour(Color4.Black.Opacity(0.5f), 100);
|
bg.FadeColour(Color4.Black.Opacity(0.5f), 100);
|
||||||
|
@ -102,7 +102,11 @@ namespace osu.Game.Overlays.BeatmapSet
|
|||||||
updateDisplay();
|
updateDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StopPreview() => preview.Playing.Value = false;
|
public void StopPreview()
|
||||||
|
{
|
||||||
|
if (preview.Playing)
|
||||||
|
preview.TriggerOnClick();
|
||||||
|
}
|
||||||
|
|
||||||
private class DetailBox : Container
|
private class DetailBox : Container
|
||||||
{
|
{
|
||||||
|
@ -149,7 +149,6 @@ namespace osu.Game.Overlays.Direct
|
|||||||
protected override bool OnClick(InputState state)
|
protected override bool OnClick(InputState state)
|
||||||
{
|
{
|
||||||
ShowInformation();
|
ShowInformation();
|
||||||
PreviewPlaying.Value = false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,8 +31,6 @@ namespace osu.Game.Overlays.Direct
|
|||||||
beatmapSet = value;
|
beatmapSet = value;
|
||||||
|
|
||||||
Playing.Value = false;
|
Playing.Value = false;
|
||||||
if (Preview != null)
|
|
||||||
Preview.Stopped -= preview_Stopped;
|
|
||||||
Preview = null;
|
Preview = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,7 +88,30 @@ namespace osu.Game.Overlays.Direct
|
|||||||
|
|
||||||
protected override bool OnClick(InputState state)
|
protected override bool OnClick(InputState state)
|
||||||
{
|
{
|
||||||
Playing.Value = !Playing.Value;
|
if (!Playing.Value)
|
||||||
|
{
|
||||||
|
if (Preview == null)
|
||||||
|
{
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
loading = true;
|
||||||
|
return Preview = previewTrackManager.Get(beatmapSet);
|
||||||
|
})
|
||||||
|
.ContinueWith(t =>
|
||||||
|
{
|
||||||
|
Preview.Started += () => Playing.Value = true;
|
||||||
|
Preview.Stopped += () => Playing.Value = false;
|
||||||
|
Preview.Start();
|
||||||
|
loading = false;
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Preview.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Preview?.Stop();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,35 +139,12 @@ namespace osu.Game.Overlays.Direct
|
|||||||
icon.Icon = playing ? FontAwesome.fa_pause : FontAwesome.fa_play;
|
icon.Icon = playing ? FontAwesome.fa_pause : FontAwesome.fa_play;
|
||||||
icon.FadeColour(playing || IsHovered ? hoverColour : Color4.White, 120, Easing.InOutQuint);
|
icon.FadeColour(playing || IsHovered ? hoverColour : Color4.White, 120, Easing.InOutQuint);
|
||||||
|
|
||||||
if (playing)
|
if (!playing)
|
||||||
{
|
{
|
||||||
if (Preview == null)
|
|
||||||
{
|
|
||||||
Task.Run(() =>
|
|
||||||
{
|
|
||||||
loading = true;
|
|
||||||
return Preview = previewTrackManager.Get(beatmapSet);
|
|
||||||
})
|
|
||||||
.ContinueWith(t =>
|
|
||||||
{
|
|
||||||
Preview.Stopped += preview_Stopped;
|
|
||||||
playingStateChanged(true);
|
|
||||||
loading = false;
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Preview.Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Preview.Stop();
|
|
||||||
loading = false;
|
loading = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void preview_Stopped() => Playing.Value = false;
|
|
||||||
|
|
||||||
protected override void Dispose(bool isDisposing)
|
protected override void Dispose(bool isDisposing)
|
||||||
{
|
{
|
||||||
base.Dispose(isDisposing);
|
base.Dispose(isDisposing);
|
||||||
|
@ -33,7 +33,6 @@ namespace osu.Game.Overlays
|
|||||||
private readonly FillFlowContainer resultCountsContainer;
|
private readonly FillFlowContainer resultCountsContainer;
|
||||||
private readonly OsuSpriteText resultCountsText;
|
private readonly OsuSpriteText resultCountsText;
|
||||||
private FillFlowContainer<DirectPanel> panels;
|
private FillFlowContainer<DirectPanel> panels;
|
||||||
private DirectPanel playing;
|
|
||||||
|
|
||||||
protected override Color4 BackgroundColour => OsuColour.FromHex(@"485e74");
|
protected override Color4 BackgroundColour => OsuColour.FromHex(@"485e74");
|
||||||
protected override Color4 TrianglesColourLight => OsuColour.FromHex(@"465b71");
|
protected override Color4 TrianglesColourLight => OsuColour.FromHex(@"465b71");
|
||||||
@ -217,12 +216,6 @@ namespace osu.Game.Overlays
|
|||||||
panels.FadeOut(200);
|
panels.FadeOut(200);
|
||||||
panels.Expire();
|
panels.Expire();
|
||||||
panels = null;
|
panels = null;
|
||||||
|
|
||||||
if (playing != null)
|
|
||||||
{
|
|
||||||
playing.PreviewPlaying.Value = false;
|
|
||||||
playing = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BeatmapSets == null) return;
|
if (BeatmapSets == null) return;
|
||||||
@ -253,17 +246,6 @@ namespace osu.Game.Overlays
|
|||||||
{
|
{
|
||||||
if (panels != null) ScrollFlow.Remove(panels);
|
if (panels != null) ScrollFlow.Remove(panels);
|
||||||
ScrollFlow.Add(panels = newPanels);
|
ScrollFlow.Add(panels = newPanels);
|
||||||
|
|
||||||
foreach (DirectPanel panel in p.Children)
|
|
||||||
panel.PreviewPlaying.ValueChanged += newValue =>
|
|
||||||
{
|
|
||||||
if (newValue)
|
|
||||||
{
|
|
||||||
if (playing != null && playing != panel)
|
|
||||||
playing.PreviewPlaying.Value = false;
|
|
||||||
playing = panel;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -313,14 +295,6 @@ namespace osu.Game.Overlays
|
|||||||
api.Queue(getSetsRequest);
|
api.Queue(getSetsRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void PopOut()
|
|
||||||
{
|
|
||||||
base.PopOut();
|
|
||||||
|
|
||||||
if (playing != null)
|
|
||||||
playing.PreviewPlaying.Value = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int distinctCount(List<string> list) => list.Distinct().ToArray().Length;
|
private int distinctCount(List<string> list) => list.Distinct().ToArray().Length;
|
||||||
|
|
||||||
protected override void Dispose(bool isDisposing)
|
protected override void Dispose(bool isDisposing)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user