Re-enable instruments with fallback when MIDI isn't available.
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
using Content.Client.GameObjects.Components.Instruments;
|
||||
using Content.Client.UserInterface;
|
||||
using Robust.Client.Audio.Midi;
|
||||
using Robust.Client.Graphics.Drawing;
|
||||
using Robust.Client.Interfaces.UserInterface;
|
||||
using Robust.Client.UserInterface;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Client.UserInterface.CustomControls;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Localization;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Maths;
|
||||
|
||||
@@ -27,7 +30,7 @@ namespace Content.Client.Instruments
|
||||
public InstrumentMenu(InstrumentBoundUserInterface owner)
|
||||
{
|
||||
IoCManager.InjectDependencies(this);
|
||||
Title = "Instrument";
|
||||
Title = Loc.GetString("Instrument");
|
||||
|
||||
_owner = owner;
|
||||
|
||||
@@ -55,7 +58,7 @@ namespace Content.Client.Instruments
|
||||
|
||||
midiInputButton = new Button()
|
||||
{
|
||||
Text = "MIDI Input",
|
||||
Text = Loc.GetString("MIDI Input"),
|
||||
TextAlign = Label.AlignMode.Center,
|
||||
SizeFlagsHorizontal = SizeFlags.FillExpand,
|
||||
SizeFlagsStretchRatio = 1,
|
||||
@@ -73,7 +76,7 @@ namespace Content.Client.Instruments
|
||||
|
||||
var midiFileButton = new Button()
|
||||
{
|
||||
Text = "Open File",
|
||||
Text = Loc.GetString("Play MIDI File"),
|
||||
TextAlign = Label.AlignMode.Center,
|
||||
SizeFlagsHorizontal = SizeFlags.FillExpand,
|
||||
SizeFlagsStretchRatio = 1,
|
||||
@@ -91,7 +94,7 @@ namespace Content.Client.Instruments
|
||||
|
||||
midiLoopButton = new Button()
|
||||
{
|
||||
Text = "Loop",
|
||||
Text = Loc.GetString("Loop"),
|
||||
TextAlign = Label.AlignMode.Center,
|
||||
SizeFlagsHorizontal = SizeFlags.FillExpand,
|
||||
SizeFlagsStretchRatio = 1,
|
||||
@@ -110,7 +113,7 @@ namespace Content.Client.Instruments
|
||||
|
||||
midiStopButton = new Button()
|
||||
{
|
||||
Text = "Stop",
|
||||
Text = Loc.GetString("Stop"),
|
||||
TextAlign = Label.AlignMode.Center,
|
||||
SizeFlagsHorizontal = SizeFlags.FillExpand,
|
||||
SizeFlagsStretchRatio = 1,
|
||||
@@ -132,6 +135,26 @@ namespace Content.Client.Instruments
|
||||
|
||||
margin.AddChild(vBox);
|
||||
|
||||
if (!_midiManager.IsAvailable)
|
||||
{
|
||||
margin.AddChild(new PanelContainer
|
||||
{
|
||||
MouseFilter = MouseFilterMode.Stop,
|
||||
PanelOverride = new StyleBoxFlat {BackgroundColor = Color.Black.WithAlpha(0.90f)},
|
||||
Children =
|
||||
{
|
||||
new Label
|
||||
{
|
||||
Align = Label.AlignMode.Center,
|
||||
SizeFlagsVertical = SizeFlags.ShrinkCenter,
|
||||
SizeFlagsHorizontal = SizeFlags.ShrinkCenter,
|
||||
StyleClasses = {NanoStyle.StyleClassLabelBig},
|
||||
Text = Loc.GetString("MIDI support is currently\nnot available on your platform.")
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Contents.AddChild(margin);
|
||||
}
|
||||
|
||||
@@ -148,7 +171,8 @@ namespace Content.Client.Instruments
|
||||
|
||||
private async void MidiFileButtonOnOnPressed(BaseButton.ButtonEventArgs obj)
|
||||
{
|
||||
var filename = await _fileDialogManager.OpenFile();
|
||||
var filters = new FileDialogFilters(new FileDialogFilters.Group("mid", "midi"));
|
||||
var filename = await _fileDialogManager.OpenFile(filters);
|
||||
|
||||
if (filename == null) return;
|
||||
|
||||
@@ -160,7 +184,7 @@ namespace Content.Client.Instruments
|
||||
|
||||
if (!_owner.Instrument.OpenMidi(filename)) return;
|
||||
MidiPlaybackSetButtonsDisabled(false);
|
||||
if(midiInputButton.Pressed)
|
||||
if (midiInputButton.Pressed)
|
||||
midiInputButton.Pressed = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user