xref: /aosp_15_r20/external/webrtc/modules/audio_processing/include/mock_audio_processing.h (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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