コード例 #1
0
ファイル: MidiManager.cs プロジェクト: eidetic-av/Buddah
 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();
 }
コード例 #2
0
ファイル: MidiManager.cs プロジェクト: eidetic-av/Buddah
        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);
        }
コード例 #3
0
        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));
        }