blob: 2ea1a865c39b890c7bfaddf96459e81e13b72dfc [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
Ali Tofigh980ad0c2022-08-09 09:21:17 +020016#include "absl/strings/string_view.h"
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020017#include "modules/audio_processing/include/aec_dump.h"
18#include "modules/audio_processing/include/audio_processing.h"
Ivo Creusen56d46092017-11-24 17:29:59 +010019#include "modules/audio_processing/include/audio_processing_statistics.h"
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020020#include "test/gmock.h"
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000021
22namespace webrtc {
23
solenberg059fb442016-10-26 05:12:24 -070024namespace test {
Alex Loiko5825aa62017-12-18 16:02:40 +010025class MockCustomProcessing : public CustomProcessing {
Sam Zackrisson0beac582017-09-25 12:04:02 +020026 public:
Alex Loiko5825aa62017-12-18 16:02:40 +010027 virtual ~MockCustomProcessing() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020028 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));
Sam Zackrisson0beac582017-09-25 12:04:02 +020038};
39
Valeriia Nemychnikovaf06eb572018-08-29 10:37:09 +020040class MockCustomAudioAnalyzer : public CustomAudioAnalyzer {
41 public:
42 virtual ~MockCustomAudioAnalyzer() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020043 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));
Valeriia Nemychnikovaf06eb572018-08-29 10:37:09 +020049};
50
Gustaf Ullberg002ef282017-10-12 15:13:17 +020051class MockEchoControl : public EchoControl {
52 public:
53 virtual ~MockEchoControl() {}
Danil Chapovalov704fb552020-05-18 15:10:15 +020054 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));
Gustaf Ullberg002ef282017-10-12 15:13:17 +020069};
70
Sam Zackrisson03cb7e52021-12-06 15:40:04 +010071class MockEchoDetector : public EchoDetector {
72 public:
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
Alex Konradic20baf62020-12-03 11:30:34 -050092class MockAudioProcessing : public AudioProcessing {
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000093 public:
saza0bad15f2019-10-16 11:46:11 +020094 MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000095
solenberg059fb442016-10-26 05:12:24 -070096 virtual ~MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000097
Danil Chapovalov704fb552020-05-18 15:10:15 +020098 MOCK_METHOD(int, Initialize, (), (override));
99 MOCK_METHOD(int,
100 Initialize,
Danil Chapovalov704fb552020-05-18 15:10:15 +0200101 (const ProcessingConfig& processing_config),
102 (override));
103 MOCK_METHOD(void, ApplyConfig, (const Config& config), (override));
Danil Chapovalov704fb552020-05-18 15:10:15 +0200104 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));
Per Ã…hgren0a144a72021-02-09 08:47:51 +0100112 MOCK_METHOD(bool, PostRuntimeSetting, (RuntimeSetting setting), (override));
Danil Chapovalov704fb552020-05-18 15:10:15 +0200113 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,
Ali Tofigh980ad0c2022-08-09 09:21:17 +0200156 (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,
Danil Chapovalov704fb552020-05-18 15:10:15 +0200162 (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));
aleloi868f32f2017-05-23 07:20:05 -0700168
Danil Chapovalov704fb552020-05-18 15:10:15 +0200169 MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override));
170 MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000171
Danil Chapovalov704fb552020-05-18 15:10:15 +0200172 MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000173};
174
solenberg059fb442016-10-26 05:12:24 -0700175} // namespace test
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000176} // namespace webrtc
177
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200178#endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_