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);
        }