From ebd2b9b937670795d76a4eefad769ac7b0afc5d4 Mon Sep 17 00:00:00 2001 From: Michalis Nicolaides Date: Fri, 3 Jul 2015 01:04:21 +0300 Subject: [PATCH] Fixed issue #26 - Use device ID instead of FriendlyName in devices with state NotPresent --- NAudioTests/Wasapi/MMDeviceEnumeratorTests.cs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/NAudioTests/Wasapi/MMDeviceEnumeratorTests.cs b/NAudioTests/Wasapi/MMDeviceEnumeratorTests.cs index c56d0235..486b6ef7 100644 --- a/NAudioTests/Wasapi/MMDeviceEnumeratorTests.cs +++ b/NAudioTests/Wasapi/MMDeviceEnumeratorTests.cs @@ -24,9 +24,18 @@ public void CanEnumerateDevicesInVista() { OSUtils.RequireVista(); MMDeviceEnumerator enumerator = new MMDeviceEnumerator(); - foreach (MMDevice devices in enumerator.EnumerateAudioEndPoints(DataFlow.All,DeviceState.All)) + var devices = enumerator.EnumerateAudioEndPoints(DataFlow.All, DeviceState.All); + + foreach (MMDevice device in devices) { - Debug.WriteLine(devices); + if (device.State != DeviceState.NotPresent) + { + Debug.WriteLine(String.Format("{0}, {1}", device.FriendlyName, device.State)); + } + else + { + Debug.WriteLine(String.Format("{0}, {1}", device.ID, device.State)); + } } } @@ -35,9 +44,18 @@ public void CanEnumerateCaptureDevices() { OSUtils.RequireVista(); MMDeviceEnumerator enumerator = new MMDeviceEnumerator(); - foreach (MMDevice device in enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All)) + var devices = enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.All); + + foreach (MMDevice device in devices) { - Debug.WriteLine(String.Format("{0}, {1}", device.FriendlyName, device.State)); + if (device.State != DeviceState.NotPresent) + { + Debug.WriteLine(String.Format("{0}, {1}", device.FriendlyName, device.State)); + } + else + { + Debug.WriteLine(String.Format("{0}, {1}", device.ID, device.State)); + } } }