public IAudioProvider GetAudioSource(int FrameRate, out WaveFormat Wf)
{
Wf = new WaveFormat(44100, 16, Stereo ? 2 : 1);
IAudioEncoder audioEncoder = SelectedBitRate != 0 && IsLamePresent && Encode ? new Mp3EncoderLame(Wf.Channels, Wf.SampleRate, SelectedBitRate) : null;
if (SelectedAudioSource is WaveInDevice)
return new WaveInProvider(SelectedAudioSource as WaveInDevice, Wf, FrameRate);
if (!(SelectedAudioSource is MMDevice))
return null;
IAudioProvider audioSource = new LoopbackProvider((MMDevice)SelectedAudioSource);
Wf = audioSource.WaveFormat;
return audioEncoder == null ? audioSource : new EncodedAudioProvider(audioSource, audioEncoder);
}