mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 05:02:55 +08:00
commit
b0b4c09181
@ -1 +1 @@
|
||||
Subproject commit 7df72f8d0cb887437a2816d3f413bf37ca2d6641
|
||||
Subproject commit 68c82a6ad16bc3bf237695152515694e19dc0b05
|
@ -240,7 +240,6 @@ namespace osu.Game.Overlays
|
||||
|
||||
if (current?.TrackLoaded ?? false)
|
||||
{
|
||||
|
||||
progress.UpdatePosition((float)(current.Track.CurrentTime / current.Track.Length));
|
||||
playButton.Icon = current.Track.IsRunning ? FontAwesome.fa_pause_circle_o : FontAwesome.fa_play_circle_o;
|
||||
|
||||
|
@ -71,7 +71,14 @@ namespace osu.Game.Overlays.Options
|
||||
{
|
||||
items = value;
|
||||
if(dropdown != null)
|
||||
{
|
||||
dropdown.Items = value;
|
||||
|
||||
// We need to refresh the dropdown because our items changed,
|
||||
// thus its selected value may be outdated.
|
||||
if (bindable != null)
|
||||
dropdown.SelectedValue = bindable.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,7 @@ namespace osu.Game.Overlays.Options.Sections.Audio
|
||||
protected override string Header => "Devices";
|
||||
|
||||
private AudioManager audio;
|
||||
private OptionDropDown<string> dropdown;
|
||||
|
||||
[BackgroundDependencyLoader]
|
||||
private void load(AudioManager audio)
|
||||
@ -21,21 +22,45 @@ namespace osu.Game.Overlays.Options.Sections.Audio
|
||||
this.audio = audio;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool isDisposing)
|
||||
{
|
||||
base.Dispose(isDisposing);
|
||||
|
||||
audio.OnNewDevice -= onDeviceChanged;
|
||||
audio.OnLostDevice -= onDeviceChanged;
|
||||
}
|
||||
|
||||
private void updateItems()
|
||||
{
|
||||
var deviceItems = new List<KeyValuePair<string, string>>();
|
||||
deviceItems.Add(new KeyValuePair<string, string>("Default", string.Empty));
|
||||
deviceItems.AddRange(audio.AudioDeviceNames.Select(d => new KeyValuePair<string, string>(d, d)));
|
||||
|
||||
var preferredDeviceName = audio.AudioDevice.Value;
|
||||
if (!deviceItems.Any(kv => kv.Value == preferredDeviceName))
|
||||
deviceItems.Add(new KeyValuePair<string, string>(preferredDeviceName, preferredDeviceName));
|
||||
|
||||
dropdown.Items = deviceItems;
|
||||
}
|
||||
|
||||
private void onDeviceChanged(string name) => updateItems();
|
||||
|
||||
protected override void LoadComplete()
|
||||
{
|
||||
base.LoadComplete();
|
||||
|
||||
var deviceItems = new List<KeyValuePair<string, string>>();
|
||||
deviceItems.Add(new KeyValuePair<string, string>("Default", string.Empty));
|
||||
deviceItems.AddRange(audio.GetDeviceNames().Select(d => new KeyValuePair<string, string>(d, d)));
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new OptionDropDown<string>()
|
||||
dropdown = new OptionDropDown<string>()
|
||||
{
|
||||
Items = deviceItems,
|
||||
Bindable = audio.AudioDevice
|
||||
},
|
||||
};
|
||||
|
||||
updateItems();
|
||||
|
||||
audio.OnNewDevice += onDeviceChanged;
|
||||
audio.OnLostDevice += onDeviceChanged;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user