public static extern IntPtr Dissonance_CreatePreprocessor(
     NoiseSuppressionLevels nsLevel,
     AecSuppressionLevels aecLevel,
     bool aecDelayAgnostic,
     bool aecExtended,
     bool aecRefined,
     AecmRoutingMode aecmRoutingMode,
     bool aecmComfortNoise
     );
            public WebRtcPreprocessor(bool useMobileAec)
            {
                _useMobileAec = useMobileAec;

                _nsLevel   = VoiceSettings.Instance.DenoiseAmount;
                _aecLevel  = VoiceSettings.Instance.AecSuppressionAmount;
                _aecmLevel = VoiceSettings.Instance.AecmRoutingMode;

                _handle = new LockedValue <IntPtr>(IntPtr.Zero);
            }
            public WebRtcPreprocessor(bool useMobileAec)
            {
                _useMobileAec = useMobileAec;

                _nsLevel   = VoiceSettings.Instance.DenoiseAmount;
                _aecLevel  = VoiceSettings.Instance.AecSuppressionAmount;
                _aecmLevel = VoiceSettings.Instance.AecmRoutingMode;

                _handle = new LockedValue <IntPtr>(CreatePreprocessor());

                using (var handle = _handle.Lock())
                    SetFilterPreprocessor(handle.Value);
            }
 private static extern void Dissonance_ConfigureAecSuppression(IntPtr handle, AecSuppressionLevels aecLevel, AecmRoutingMode aecmRouting);