/// <summary> /// Query DeviceInformation class for Midi Output devices /// </summary> private async Task EnumerateMidiOutputDevices() { // Clear output devices OutputDevices.Clear(); OutputDeviceProperties.Clear(); outputDeviceProperties.IsEnabled = false; // Find all output MIDI devices string midiOutputQueryString = MidiOutPort.GetDeviceSelector(); DeviceInformationCollection midiOutputDevices = await DeviceInformation.FindAllAsync(midiOutputQueryString); // Return if no external devices are connected, and GS synth is not detected if (midiOutputDevices.Count == 0) { OutputDevices.Add("No MIDI output devices found!"); outputDevices.IsEnabled = false; NotifyUser("Please connect at least one external MIDI device for this demo to work correctly"); return; } // List specific device information for each output device foreach (DeviceInformation deviceInfo in midiOutputDevices) { OutputDevices.Add(deviceInfo.Name); outputDevices.IsEnabled = true; } NotifyUser("MIDI Output devices found!"); }
public void UpdateDevices() { InputDevices.Clear(); OutputDevices.Clear(); VideoDevices.Clear(); for (int i = 0; i < WaveIn.DeviceCount; i++) { InputDevices.Add(new InputMenuData { Name = WaveIn.GetCapabilities(i).ProductName }); } for (int i = 0; i < WaveOut.DeviceCount; i++) { OutputDevices.Add(new OutputMenuData { Name = WaveOut.GetCapabilities(i).ProductName }); } var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); foreach (FilterInfo device in videoDevices) { VideoDevices.Add(new VideoMenuData { Name = device.Name }); } }
public bool RemoveDevice(Device device) { var success = InputDevices.Remove(device) || OutputDevices.Remove(device); if (success) { OnPropertyChanged(nameof(InputDevices)); OnPropertyChanged(nameof(OutputDevices)); Context.ContextChanged(); } return(success); }
/// <summary> /// Clear all input and output MIDI device lists and properties /// </summary> private void ClearAllDeviceValues() { // Clear input devices InputDevices.Clear(); InputDevices.Add("Click button to list input MIDI devices"); inputDevices.IsEnabled = false; // Clear output devices OutputDevices.Clear(); OutputDevices.Add("Click button to list output MIDI devices"); outputDevices.IsEnabled = false; // Clear input device properties InputDeviceProperties.Clear(); InputDeviceProperties.Add("Select a MIDI input device to view its properties"); inputDeviceProperties.IsEnabled = false; // Clear output device properties OutputDeviceProperties.Clear(); OutputDeviceProperties.Add("Select a MIDI output device to view its properties"); outputDeviceProperties.IsEnabled = false; }
/// <summary> /// Get input and output MIDI devices /// </summary> public void GetMidiDevices() { var inputDevices = new BindableCollection <MidiInputDeviceInfo>(); var outputDevices = new BindableCollection <MidiOutputDeviceInfo>(); for (var i = 0; i < InputDevice.DeviceCount; i++) { inputDevices.Add(new MidiInputDeviceInfo(InputDevice.GetDeviceCapabilities(i))); } for (var i = 0; i < OutputDeviceBase.DeviceCount; i++) { outputDevices.Add(new MidiOutputDeviceInfo(OutputDeviceBase.GetDeviceCapabilities(i))); } _logger.Info($"Found {inputDevices.Count} input devices"); _logger.Info($"Found {outputDevices.Count} output devices"); InputDevices = inputDevices; OutputDevices = outputDevices; var jdXiInput = InputDevices.FirstOrDefault(d => d.Name == "JD-Xi"); var jdXiOutput = OutputDevices.FirstOrDefault(d => d.Name == "JD-Xi"); SelectedInputDeviceId = jdXiInput == null ? -1 : InputDevices.IndexOf(jdXiInput); SelectedOutputDeviceId = jdXiOutput == null ? -1 : OutputDevices.IndexOf(jdXiOutput); if (jdXiInput != null) { _logger.Info($"JD-XI Input device found (ID: {SelectedInputDeviceId})"); } if (jdXiOutput != null) { _logger.Info($"JD-XI Output device found (ID: {SelectedOutputDeviceId})"); } }
public AudioTabViewModel() : base(NameKey, SettingsTabCategory.Audio) { OutputDevices = ClientModel.Player.Devices; InputDevices = ClientModel.Recorder.Devices; InputConfigs = new[] { new AudioQuality(1, 8, 22050), new AudioQuality(1, 16, 22050), new AudioQuality(1, 8, 44100), new AudioQuality(1, 16, 44100) }; SelectedOutputIndex = OutputDevices.IndexOf(Settings.Current.OutputAudioDevice); SelectedInputIndex = InputDevices.IndexOf(Settings.Current.InputAudioDevice); SelectedConfigIndex = InputConfigs.IndexOf(new AudioQuality(1, Settings.Current.Bits, Settings.Current.Frequency)); if (SelectedOutputIndex == -1) { SelectedOutputIndex = 0; } if (SelectedInputIndex == -1) { SelectedInputIndex = 0; } if (SelectedConfigIndex == -1) { SelectedConfigIndex = 0; } SelectButtonName = Settings.Current.RecorderKey.ToString(); SelectKeyCommand = new Command(SelectKey); }
public bool CanRemoveDevice(Device device) { return(InputDevices.Contains(device) || OutputDevices.Contains(device)); }