| /* |
| * 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. |
| */ |
| |
| #include <array> |
| #include <vector> |
| |
| #include "modules/audio_processing/echo_control_mobile_impl.h" |
| #include "modules/audio_processing/include/audio_processing.h" |
| #include "rtc_base/criticalsection.h" |
| #include "test/gtest.h" |
| |
| namespace webrtc { |
| TEST(EchoControlMobileTest, InterfaceConfiguration) { |
| EchoControlMobileImpl aecm; |
| aecm.Initialize(AudioProcessing::kSampleRate16kHz, 2, 2); |
| |
| // Turn AECM on |
| EXPECT_EQ(0, aecm.Enable(true)); |
| EXPECT_TRUE(aecm.is_enabled()); |
| |
| // Toggle routing modes |
| std::array<EchoControlMobileImpl::RoutingMode, 5> routing_modes = { |
| EchoControlMobileImpl::kQuietEarpieceOrHeadset, |
| EchoControlMobileImpl::kEarpiece, |
| EchoControlMobileImpl::kLoudEarpiece, |
| EchoControlMobileImpl::kSpeakerphone, |
| EchoControlMobileImpl::kLoudSpeakerphone, |
| }; |
| for (auto mode : routing_modes) { |
| EXPECT_EQ(0, aecm.set_routing_mode(mode)); |
| EXPECT_EQ(mode, aecm.routing_mode()); |
| } |
| |
| // Turn comfort noise off/on |
| EXPECT_EQ(0, aecm.enable_comfort_noise(false)); |
| EXPECT_FALSE(aecm.is_comfort_noise_enabled()); |
| EXPECT_EQ(0, aecm.enable_comfort_noise(true)); |
| EXPECT_TRUE(aecm.is_comfort_noise_enabled()); |
| |
| // Turn AECM off |
| EXPECT_EQ(0, aecm.Enable(false)); |
| EXPECT_FALSE(aecm.is_enabled()); |
| } |
| |
| } // namespace webrtc |