blob: f6db11685037a1a2c32d84a6f765a287fc475b7f [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"
18
Gustaf Ullberg0efa9412018-02-27 13:58:45 +010019namespace webrtc {
20
21class EchoCanceller3Factory : public EchoControlFactory {
22 public:
23 // Factory producing EchoCanceller3 instances with the default configuration.
24 EchoCanceller3Factory();
25
26 // Factory producing EchoCanceller3 instances with the specified
27 // configuration.
28 explicit EchoCanceller3Factory(const EchoCanceller3Config& config);
29
30 // Creates an EchoCanceller3 running at the specified sampling rate.
31 std::unique_ptr<EchoControl> Create(int sample_rate_hz) override;
32
33 private:
34 const EchoCanceller3Config config_;
35};
36} // namespace webrtc
Gustaf Ullbergc453c162018-02-16 12:09:55 +010037
38#endif // API_AUDIO_ECHO_CANCELLER3_FACTORY_H_