webrtc/modules/audio_processing/echo_control_mobile_proxy.h
Sam Zackrisson 74ed734d71 Add AEC proxies for simple deprecation of AEC configurability.
Some changes need access to both the APM interface and the AECs,
hence we can't make the changes inside the AECs themselves.

The proxies also make it easy to drop support for individual parts of the
interfaces one at a time.


Bug: webrtc:9535
Change-Id: I3398e1182157f7d8b1e4c455060b830b61c20dd9
Reviewed-on: https://webrtc-review.googlesource.com/94500
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24317}
2018-08-16 15:16:44 +00:00

44 lines
1.6 KiB
C++

/*
* Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef MODULES_AUDIO_PROCESSING_ECHO_CONTROL_MOBILE_PROXY_H_
#define MODULES_AUDIO_PROCESSING_ECHO_CONTROL_MOBILE_PROXY_H_
#include "modules/audio_processing/include/audio_processing.h"
#include "rtc_base/constructormagic.h"
#include "rtc_base/scoped_ref_ptr.h"
namespace webrtc {
// Class for temporarily redirecting AECM configuration to a new API.
class EchoControlMobileProxy : public EchoControlMobile {
public:
EchoControlMobileProxy(AudioProcessing* audio_processing,
EchoControlMobile* echo_control_mobile);
~EchoControlMobileProxy() override;
bool is_enabled() const override;
RoutingMode routing_mode() const override;
bool is_comfort_noise_enabled() const override;
int Enable(bool enable) override;
int set_routing_mode(RoutingMode mode) override;
int enable_comfort_noise(bool enable) override;
int SetEchoPath(const void* echo_path, size_t size_bytes) override;
int GetEchoPath(void* echo_path, size_t size_bytes) const override;
private:
AudioProcessing* audio_processing_;
EchoControlMobile* echo_control_mobile_;
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(EchoControlMobileProxy);
};
} // namespace webrtc
#endif // MODULES_AUDIO_PROCESSING_ECHO_CONTROL_MOBILE_PROXY_H_