public void Stop() { if (_inputType == InputType.Plugin && _frontend != null) { _frontend.Stop(); _frontend = null; } if (_wavePlayer != null) { _wavePlayer.Dispose(); _wavePlayer = null; } if (_waveRecorder != null) { _waveRecorder.Dispose(); _waveRecorder = null; } if (_waveDuplex != null) { _waveDuplex.Dispose(); _waveDuplex = null; } _inputSampleRate = 0; if (_waveReadThread != null) { _waveReadThread.Join(); _waveReadThread = null; } if (_iqStream != null) { _iqStream.Close(); } if (_audioStream != null) { _audioStream.Close(); } if (_dspThread != null) { _dspThread.Join(); _dspThread = null; } if (_waveFile != null) { _waveFile.Dispose(); _waveFile = null; } if (_iqStream != null) { _iqStream.Dispose(); _iqStream = null; } _audioStream = null; _dspOutBuffer = null; _iqInBuffer = null; }
private void CloseInterceptorStreams() { if (_firstAudioStream != null) { _firstAudioStream.Close(); } lock (_audioInterceptors) { foreach (IAudioInterceptor interceptor in _audioInterceptors) { if (interceptor.Output != null) { interceptor.Output.Close(); } } } }