blob: 246ef5617a117d813775ebcce6ea3c723a01f325 [file] [log] [blame]
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +00001/*
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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_
12#define MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000013
kwiberg88788ad2016-02-19 07:04:49 -080014#include <memory>
15
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020016#include "modules/audio_processing/include/aec_dump.h"
17#include "modules/audio_processing/include/audio_processing.h"
Ivo Creusen56d46092017-11-24 17:29:59 +010018#include "modules/audio_processing/include/audio_processing_statistics.h"
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020019#include "test/gmock.h"
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000020
21namespace webrtc {
22
solenberg059fb442016-10-26 05:12:24 -070023namespace test {
Alex Loiko5825aa62017-12-18 16:02:40 +010024class MockCustomProcessing : public CustomProcessing {
Sam Zackrisson0beac582017-09-25 12:04:02 +020025 public:
Alex Loiko5825aa62017-12-18 16:02:40 +010026 virtual ~MockCustomProcessing() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020027 MOCK_METHOD(void,
28 Initialize,
29 (int sample_rate_hz, int num_channels),
30 (override));
31 MOCK_METHOD(void, Process, (AudioBuffer * audio), (override));
32 MOCK_METHOD(void,
33 SetRuntimeSetting,
34 (AudioProcessing::RuntimeSetting setting),
35 (override));
36 MOCK_METHOD(std::string, ToString, (), (const, override));
Sam Zackrisson0beac582017-09-25 12:04:02 +020037};
38
Valeriia Nemychnikovaf06eb572018-08-29 10:37:09 +020039class MockCustomAudioAnalyzer : public CustomAudioAnalyzer {
40 public:
41 virtual ~MockCustomAudioAnalyzer() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020042 MOCK_METHOD(void,
43 Initialize,
44 (int sample_rate_hz, int num_channels),
45 (override));
46 MOCK_METHOD(void, Analyze, (const AudioBuffer* audio), (override));
47 MOCK_METHOD(std::string, ToString, (), (const, override));
Valeriia Nemychnikovaf06eb572018-08-29 10:37:09 +020048};
49
Gustaf Ullberg002ef282017-10-12 15:13:17 +020050class MockEchoControl : public EchoControl {
51 public:
52 virtual ~MockEchoControl() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020053 MOCK_METHOD(void, AnalyzeRender, (AudioBuffer * render), (override));
54 MOCK_METHOD(void, AnalyzeCapture, (AudioBuffer * capture), (override));
55 MOCK_METHOD(void,
56 ProcessCapture,
57 (AudioBuffer * capture, bool echo_path_change),
58 (override));
59 MOCK_METHOD(void,
60 ProcessCapture,
61 (AudioBuffer * capture,
62 AudioBuffer* linear_output,
63 bool echo_path_change),
64 (override));
65 MOCK_METHOD(Metrics, GetMetrics, (), (const, override));
66 MOCK_METHOD(void, SetAudioBufferDelay, (int delay_ms), (override));
67 MOCK_METHOD(bool, ActiveProcessing, (), (const, override));
Gustaf Ullberg002ef282017-10-12 15:13:17 +020068};
69
Sam Zackrisson03cb7e52021-12-06 15:40:04 +010070class MockEchoDetector : public EchoDetector {
71 public:
72 virtual ~MockEchoDetector() {}
73 MOCK_METHOD(void,
74 Initialize,
75 (int capture_sample_rate_hz,
76 int num_capture_channels,
77 int render_sample_rate_hz,
78 int num_render_channels),
79 (override));
80 MOCK_METHOD(void,
81 AnalyzeRenderAudio,
82 (rtc::ArrayView<const float> render_audio),
83 (override));
84 MOCK_METHOD(void,
85 AnalyzeCaptureAudio,
86 (rtc::ArrayView<const float> capture_audio),
87 (override));
88 MOCK_METHOD(Metrics, GetMetrics, (), (const, override));
89};
90
Alex Konradic20baf62020-12-03 11:30:34 -050091class MockAudioProcessing : public AudioProcessing {
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000092 public:
saza0bad15f2019-10-16 11:46:11 +020093 MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000094
solenberg059fb442016-10-26 05:12:24 -070095 virtual ~MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000096
Danil Chapovalov704fb552020-05-18 15:10:15 +020097 MOCK_METHOD(int, Initialize, (), (override));
98 MOCK_METHOD(int,
99 Initialize,
100 (int capture_input_sample_rate_hz,
101 int capture_output_sample_rate_hz,
102 int render_sample_rate_hz,
103 ChannelLayout capture_input_layout,
104 ChannelLayout capture_output_layout,
105 ChannelLayout render_input_layout),
106 (override));
107 MOCK_METHOD(int,
108 Initialize,
109 (const ProcessingConfig& processing_config),
110 (override));
111 MOCK_METHOD(void, ApplyConfig, (const Config& config), (override));
Danil Chapovalov704fb552020-05-18 15:10:15 +0200112 MOCK_METHOD(int, proc_sample_rate_hz, (), (const, override));
113 MOCK_METHOD(int, proc_split_sample_rate_hz, (), (const, override));
114 MOCK_METHOD(size_t, num_input_channels, (), (const, override));
115 MOCK_METHOD(size_t, num_proc_channels, (), (const, override));
116 MOCK_METHOD(size_t, num_output_channels, (), (const, override));
117 MOCK_METHOD(size_t, num_reverse_channels, (), (const, override));
118 MOCK_METHOD(void, set_output_will_be_muted, (bool muted), (override));
119 MOCK_METHOD(void, SetRuntimeSetting, (RuntimeSetting setting), (override));
Per Ã…hgren0a144a72021-02-09 08:47:51 +0100120 MOCK_METHOD(bool, PostRuntimeSetting, (RuntimeSetting setting), (override));
Danil Chapovalov704fb552020-05-18 15:10:15 +0200121 MOCK_METHOD(int,
122 ProcessStream,
123 (const int16_t* const src,
124 const StreamConfig& input_config,
125 const StreamConfig& output_config,
126 int16_t* const dest),
127 (override));
128 MOCK_METHOD(int,
129 ProcessStream,
130 (const float* const* src,
131 const StreamConfig& input_config,
132 const StreamConfig& output_config,
133 float* const* dest),
134 (override));
135 MOCK_METHOD(int,
136 ProcessReverseStream,
137 (const int16_t* const src,
138 const StreamConfig& input_config,
139 const StreamConfig& output_config,
140 int16_t* const dest),
141 (override));
142 MOCK_METHOD(int,
143 AnalyzeReverseStream,
144 (const float* const* data, const StreamConfig& reverse_config),
145 (override));
146 MOCK_METHOD(int,
147 ProcessReverseStream,
148 (const float* const* src,
149 const StreamConfig& input_config,
150 const StreamConfig& output_config,
151 float* const* dest),
152 (override));
153 MOCK_METHOD(bool,
154 GetLinearAecOutput,
155 ((rtc::ArrayView<std::array<float, 160>> linear_output)),
156 (const, override));
157 MOCK_METHOD(int, set_stream_delay_ms, (int delay), (override));
158 MOCK_METHOD(int, stream_delay_ms, (), (const, override));
159 MOCK_METHOD(void, set_stream_key_pressed, (bool key_pressed), (override));
160 MOCK_METHOD(void, set_stream_analog_level, (int), (override));
161 MOCK_METHOD(int, recommended_stream_analog_level, (), (const, override));
162 MOCK_METHOD(bool,
163 CreateAndAttachAecDump,
164 (const std::string& file_name,
165 int64_t max_log_size_bytes,
166 rtc::TaskQueue* worker_queue),
167 (override));
168 MOCK_METHOD(bool,
169 CreateAndAttachAecDump,
170 (FILE * handle,
171 int64_t max_log_size_bytes,
172 rtc::TaskQueue* worker_queue),
173 (override));
174 MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
175 MOCK_METHOD(void, DetachAecDump, (), (override));
aleloi868f32f2017-05-23 07:20:05 -0700176
Danil Chapovalov704fb552020-05-18 15:10:15 +0200177 MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override));
178 MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000179
Danil Chapovalov704fb552020-05-18 15:10:15 +0200180 MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000181};
182
solenberg059fb442016-10-26 05:12:24 -0700183} // namespace test
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000184} // namespace webrtc
185
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200186#endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_