List <IAudioDevice> GetDevices(IAudioAPI[] apis) { string[] AudioAPIBlackList = mdb.Config.ReadSection("AudioAPI.BlackList", true); string[] AudioDeviceBlackList = mdb.Config.ReadSection("AudioDevice.BlackList", true); List <IAudioDevice> result = new List <IAudioDevice>(); foreach (IAudioAPI api in apis) { if (AudioAPIBlackList.Contains(api.ToString())) { this.LogDebug("Ignoring blacklisted Audio API <red>{0}", api); continue; } if (!api.IsAvailable) { this.LogDebug("Audio API <red>{0}<default> is not available.", api); continue; } IAudioDevice[] devices = api.OutputDevices; foreach (IAudioDevice device in devices) { if (AudioDeviceBlackList.Contains(device.ToString())) { continue; } result.Add(device); } } return(result); }