private void AddInput(Guid guid) { var existing = InputList.ToList(); if (!existing.Any(m => m.Guid == guid)) { if (!IsRecording) { RefreshInputDevices(guid); } else { MMDevice found = MMDevices.FindDeviceByGuid(guid); if (found != null) { var added = new InputDeviceModel(found); InputList.Add(added); if (SelectedInputSource == null) { SelectedInputSource = added; } } } SelectActiveInputGroup(); } }
private void AudioEvents_OnAudioDeviceRemoved(object sender, AudioEvents.MMDeviceAddedRemovedArgs e) { Console.WriteLine("Removed audio device: " + e.deviceId); var guid = MMDevices.ParseWasapiGuid(e.deviceId); if (guid != Guid.Empty) { Dispatcher.Invoke(new Action <Guid>(RemoveInput), guid); } }
private void AudioEvents_OnAudioDeviceAdded(object sender, AudioEvents.MMDeviceAddedRemovedArgs e) { Console.WriteLine("Added audio device: " + e.deviceId); var guid = MMDevices.ParseWasapiGuid(e.deviceId); if (guid != Guid.Empty) { Dispatcher.Invoke(new Action <Guid>(AddInput), guid); } Dispatcher.Invoke(new Action(() => { if (InputList != null && InputList.Count > 0) { if (SelectedInputSource == null) { SelectedInputSource = InputList[0]; } SelectActiveInputGroup(); } })); }