blob: ac61768d853762b4e4c19dc30fb5d769057f2243 [file] [log] [blame]
solenberg76377c52017-02-21 00:54:31 -08001/*
2 * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef MEDIA_ENGINE_APM_HELPERS_H_
12#define MEDIA_ENGINE_APM_HELPERS_H_
solenberg76377c52017-02-21 00:54:31 -080013
Steve Antone78bcb92017-10-31 09:53:08 -070014#include <cstdint>
15
solenberg76377c52017-02-21 00:54:31 -080016namespace webrtc {
17
18class AudioProcessing;
solenberg76377c52017-02-21 00:54:31 -080019
solenberg22818a52017-03-16 01:20:23 -070020enum EcModes {
Yves Gerey665174f2018-06-19 15:03:05 +020021 kEcConference, // Conferencing default (aggressive AEC).
22 kEcAecm, // AEC mobile.
solenberg22818a52017-03-16 01:20:23 -070023};
24
solenberg76377c52017-02-21 00:54:31 -080025namespace apm_helpers {
26
Fredrik Solenberg55900fd2017-11-23 20:22:55 +010027void Init(AudioProcessing* apm);
Yves Gerey665174f2018-06-19 15:03:05 +020028void SetEcStatus(AudioProcessing* apm, bool enable, EcModes mode);
solenberg76377c52017-02-21 00:54:31 -080029void SetEcMetricsStatus(AudioProcessing* apm, bool enable);
30void SetAecmMode(AudioProcessing* apm, bool enable_cng);
31void SetNsStatus(AudioProcessing* apm, bool enable);
solenberg76377c52017-02-21 00:54:31 -080032
33} // namespace apm_helpers
34} // namespace webrtc
35
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020036#endif // MEDIA_ENGINE_APM_HELPERS_H_