blob: 8b5380057b031e0497642362f2a555ccbe52b6f2 [file] [log] [blame]
Gustaf Ullbergc453c162018-02-16 12:09:55 +01001/*
2 * Copyright (c) 2018 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
11#ifndef API_AUDIO_ECHO_CANCELLER3_FACTORY_H_
12#define API_AUDIO_ECHO_CANCELLER3_FACTORY_H_
13
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010014#include <memory>
15
Gustaf Ullbergc453c162018-02-16 12:09:55 +010016#include "api/audio/echo_canceller3_config.h"
17#include "api/audio/echo_control.h"
Mirko Bonadei3d255302018-10-11 10:50:45 +020018#include "rtc_base/system/rtc_export.h"
Gustaf Ullbergc453c162018-02-16 12:09:55 +010019
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010020namespace webrtc {
21
Mirko Bonadei3d255302018-10-11 10:50:45 +020022class RTC_EXPORT EchoCanceller3Factory : public EchoControlFactory {
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010023 public:
24 // Factory producing EchoCanceller3 instances with the default configuration.
25 EchoCanceller3Factory();
26
27 // Factory producing EchoCanceller3 instances with the specified
28 // configuration.
29 explicit EchoCanceller3Factory(const EchoCanceller3Config& config);
30
Gustaf Ullberg2c6f3732019-11-07 17:15:12 +010031 // Creates an EchoCanceller3 with a specified channel count and sampling rate.
Per Ã…hgren4e5c7092019-11-01 20:44:11 +010032 std::unique_ptr<EchoControl> Create(int sample_rate_hz,
33 int num_render_channels,
34 int num_capture_channels) override;
35
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010036 private:
37 const EchoCanceller3Config config_;
38};
39} // namespace webrtc
Gustaf Ullbergc453c162018-02-16 12:09:55 +010040
41#endif // API_AUDIO_ECHO_CANCELLER3_FACTORY_H_