I'm having a bit of a problem distinguishing device names due to the string truncation. I need to support XP users so I'm limited to WaveOut.GetCapabilities.
This might be a possible fix to the problem for the NAudio source.
It appears that the device name length is determined in the WaveOutCapabilities.cs file.
located in the source at ...\NAudio\Wave\MmeInterop\WaveOutCapabilities.cs
line 48 private const int MaxProductNameLength = 32;
I wonder if changing that value (say triple it = 96) will eliminate most of the device name truncation issues?
Then testing this simple code to see if the returned device names are longer.
for (int deviceId = 0; deviceId < deviceCount; deviceId++)
var capabilities = WaveOut.GetCapabilities(deviceId);
string name = capabilities.ProductName;
Sorry that I can't test this myself or I would. The NAudio solution source code won't build for me with VS2010-- lots of missing namespaces.