static MidiManager() { AccessManager = MidiAccessManager.Default; Logger.WriteLine("Available MIDI Inputs ({0}): ", AvailableInputDevices.Count()); AvailableInputDevices.ForEach(i => Logger.WriteLine(" " + i.Name)); Logger.WriteLine(); Logger.WriteLine("Available MIDI Outputs: ({0}): ", AvailableOutputDevices.Count()); AvailableOutputDevices.ForEach(o => Logger.WriteLine(" " + o.Name)); Logger.WriteLine(); }
public static async Task <bool> OpenOutput(string outputDeviceName) { var outputInfo = AvailableOutputDevices.SingleOrDefault(o => o.Name.ToLower() == outputDeviceName.ToLower()); if (outputInfo == default) { return(false); } ActiveOutputDevices[outputDeviceName] = new MidiOutputDevice(await AccessManager.OpenOutputAsync(outputInfo.Id)); Logger.WriteLine("Successfully opened output device {0}", outputDeviceName); return(true); }
public async Task LoadAsync() { foreach (var dev in await DeviceInformation.FindAllAsync(DeviceClass.AudioCapture)) { AvailableInputDevices.Add(dev); } foreach (var dev in await DeviceInformation.FindAllAsync(DeviceClass.AudioRender)) { AvailableOutputDevices.Add(dev); } var inputDeviceId = App.LocalSettings.Read <string>("InputDevice", null); var outputDeviceId = App.LocalSettings.Read <string>("OutputDevice", null); _inputDevice = AvailableInputDevices.FirstOrDefault(d => d?.Id == inputDeviceId); _outputDevice = AvailableOutputDevices.FirstOrDefault(d => d?.Id == outputDeviceId); InvokePropertyChanged(nameof(AvailableInputDevices)); InvokePropertyChanged(nameof(AvailableOutputDevices)); InvokePropertyChanged(nameof(InputDevice)); InvokePropertyChanged(nameof(OutputDevice)); }