/// <summary> /// Dispose pattern /// </summary> protected virtual void Dispose(bool disposing) { if (disposing) { if (recording) { StopRecording(); } CloseWaveInDevice(); if (callbackInfo != null) { callbackInfo.Disconnect(); callbackInfo = null; } } }