1 /* 2 * Copyright (c) 2013 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 MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ 12 #define MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ 13 14 #include <memory> 15 16 #include "absl/strings/string_view.h" 17 #include "modules/audio_processing/include/aec_dump.h" 18 #include "modules/audio_processing/include/audio_processing.h" 19 #include "modules/audio_processing/include/audio_processing_statistics.h" 20 #include "test/gmock.h" 21 22 namespace webrtc { 23 24 namespace test { 25 class MockCustomProcessing : public CustomProcessing { 26 public: ~MockCustomProcessing()27 virtual ~MockCustomProcessing() {} 28 MOCK_METHOD(void, 29 Initialize, 30 (int sample_rate_hz, int num_channels), 31 (override)); 32 MOCK_METHOD(void, Process, (AudioBuffer * audio), (override)); 33 MOCK_METHOD(void, 34 SetRuntimeSetting, 35 (AudioProcessing::RuntimeSetting setting), 36 (override)); 37 MOCK_METHOD(std::string, ToString, (), (const, override)); 38 }; 39 40 class MockCustomAudioAnalyzer : public CustomAudioAnalyzer { 41 public: ~MockCustomAudioAnalyzer()42 virtual ~MockCustomAudioAnalyzer() {} 43 MOCK_METHOD(void, 44 Initialize, 45 (int sample_rate_hz, int num_channels), 46 (override)); 47 MOCK_METHOD(void, Analyze, (const AudioBuffer* audio), (override)); 48 MOCK_METHOD(std::string, ToString, (), (const, override)); 49 }; 50 51 class MockEchoControl : public EchoControl { 52 public: ~MockEchoControl()53 virtual ~MockEchoControl() {} 54 MOCK_METHOD(void, AnalyzeRender, (AudioBuffer * render), (override)); 55 MOCK_METHOD(void, AnalyzeCapture, (AudioBuffer * capture), (override)); 56 MOCK_METHOD(void, 57 ProcessCapture, 58 (AudioBuffer * capture, bool echo_path_change), 59 (override)); 60 MOCK_METHOD(void, 61 ProcessCapture, 62 (AudioBuffer * capture, 63 AudioBuffer* linear_output, 64 bool echo_path_change), 65 (override)); 66 MOCK_METHOD(Metrics, GetMetrics, (), (const, override)); 67 MOCK_METHOD(void, SetAudioBufferDelay, (int delay_ms), (override)); 68 MOCK_METHOD(bool, ActiveProcessing, (), (const, override)); 69 }; 70 71 class MockEchoDetector : public EchoDetector { 72 public: ~MockEchoDetector()73 virtual ~MockEchoDetector() {} 74 MOCK_METHOD(void, 75 Initialize, 76 (int capture_sample_rate_hz, 77 int num_capture_channels, 78 int render_sample_rate_hz, 79 int num_render_channels), 80 (override)); 81 MOCK_METHOD(void, 82 AnalyzeRenderAudio, 83 (rtc::ArrayView<const float> render_audio), 84 (override)); 85 MOCK_METHOD(void, 86 AnalyzeCaptureAudio, 87 (rtc::ArrayView<const float> capture_audio), 88 (override)); 89 MOCK_METHOD(Metrics, GetMetrics, (), (const, override)); 90 }; 91 92 class MockAudioProcessing : public AudioProcessing { 93 public: MockAudioProcessing()94 MockAudioProcessing() {} 95 ~MockAudioProcessing()96 virtual ~MockAudioProcessing() {} 97 98 MOCK_METHOD(int, Initialize, (), (override)); 99 MOCK_METHOD(int, 100 Initialize, 101 (const ProcessingConfig& processing_config), 102 (override)); 103 MOCK_METHOD(void, ApplyConfig, (const Config& config), (override)); 104 MOCK_METHOD(int, proc_sample_rate_hz, (), (const, override)); 105 MOCK_METHOD(int, proc_split_sample_rate_hz, (), (const, override)); 106 MOCK_METHOD(size_t, num_input_channels, (), (const, override)); 107 MOCK_METHOD(size_t, num_proc_channels, (), (const, override)); 108 MOCK_METHOD(size_t, num_output_channels, (), (const, override)); 109 MOCK_METHOD(size_t, num_reverse_channels, (), (const, override)); 110 MOCK_METHOD(void, set_output_will_be_muted, (bool muted), (override)); 111 MOCK_METHOD(void, SetRuntimeSetting, (RuntimeSetting setting), (override)); 112 MOCK_METHOD(bool, PostRuntimeSetting, (RuntimeSetting setting), (override)); 113 MOCK_METHOD(int, 114 ProcessStream, 115 (const int16_t* const src, 116 const StreamConfig& input_config, 117 const StreamConfig& output_config, 118 int16_t* const dest), 119 (override)); 120 MOCK_METHOD(int, 121 ProcessStream, 122 (const float* const* src, 123 const StreamConfig& input_config, 124 const StreamConfig& output_config, 125 float* const* dest), 126 (override)); 127 MOCK_METHOD(int, 128 ProcessReverseStream, 129 (const int16_t* const src, 130 const StreamConfig& input_config, 131 const StreamConfig& output_config, 132 int16_t* const dest), 133 (override)); 134 MOCK_METHOD(int, 135 AnalyzeReverseStream, 136 (const float* const* data, const StreamConfig& reverse_config), 137 (override)); 138 MOCK_METHOD(int, 139 ProcessReverseStream, 140 (const float* const* src, 141 const StreamConfig& input_config, 142 const StreamConfig& output_config, 143 float* const* dest), 144 (override)); 145 MOCK_METHOD(bool, 146 GetLinearAecOutput, 147 ((rtc::ArrayView<std::array<float, 160>> linear_output)), 148 (const, override)); 149 MOCK_METHOD(int, set_stream_delay_ms, (int delay), (override)); 150 MOCK_METHOD(int, stream_delay_ms, (), (const, override)); 151 MOCK_METHOD(void, set_stream_key_pressed, (bool key_pressed), (override)); 152 MOCK_METHOD(void, set_stream_analog_level, (int), (override)); 153 MOCK_METHOD(int, recommended_stream_analog_level, (), (const, override)); 154 MOCK_METHOD(bool, 155 CreateAndAttachAecDump, 156 (absl::string_view file_name, 157 int64_t max_log_size_bytes, 158 rtc::TaskQueue* worker_queue), 159 (override)); 160 MOCK_METHOD(bool, 161 CreateAndAttachAecDump, 162 (FILE * handle, 163 int64_t max_log_size_bytes, 164 rtc::TaskQueue* worker_queue), 165 (override)); 166 MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override)); 167 MOCK_METHOD(void, DetachAecDump, (), (override)); 168 169 MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override)); 170 MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override)); 171 172 MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override)); 173 }; 174 175 } // namespace test 176 } // namespace webrtc 177 178 #endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ 179