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 "modules/audio_processing/include/aec_dump.h"
17 #include "modules/audio_processing/include/audio_processing.h"
18 #include "modules/audio_processing/include/audio_processing_statistics.h"
19 #include "test/gmock.h"
20 
21 namespace webrtc {
22 
23 namespace test {
24 class MockCustomProcessing : public CustomProcessing {
25  public:
~MockCustomProcessing()26   virtual ~MockCustomProcessing() {}
27   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));
37 };
38 
39 class MockCustomAudioAnalyzer : public CustomAudioAnalyzer {
40  public:
~MockCustomAudioAnalyzer()41   virtual ~MockCustomAudioAnalyzer() {}
42   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));
48 };
49 
50 class MockEchoControl : public EchoControl {
51  public:
~MockEchoControl()52   virtual ~MockEchoControl() {}
53   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));
68 };
69 
70 class MockAudioProcessing : public AudioProcessing {
71  public:
MockAudioProcessing()72   MockAudioProcessing() {}
73 
~MockAudioProcessing()74   virtual ~MockAudioProcessing() {}
75 
76   MOCK_METHOD(int, Initialize, (), (override));
77   MOCK_METHOD(int,
78               Initialize,
79               (int capture_input_sample_rate_hz,
80                int capture_output_sample_rate_hz,
81                int render_sample_rate_hz,
82                ChannelLayout capture_input_layout,
83                ChannelLayout capture_output_layout,
84                ChannelLayout render_input_layout),
85               (override));
86   MOCK_METHOD(int,
87               Initialize,
88               (const ProcessingConfig& processing_config),
89               (override));
90   MOCK_METHOD(void, ApplyConfig, (const Config& config), (override));
91   MOCK_METHOD(int, proc_sample_rate_hz, (), (const, override));
92   MOCK_METHOD(int, proc_split_sample_rate_hz, (), (const, override));
93   MOCK_METHOD(size_t, num_input_channels, (), (const, override));
94   MOCK_METHOD(size_t, num_proc_channels, (), (const, override));
95   MOCK_METHOD(size_t, num_output_channels, (), (const, override));
96   MOCK_METHOD(size_t, num_reverse_channels, (), (const, override));
97   MOCK_METHOD(void, set_output_will_be_muted, (bool muted), (override));
98   MOCK_METHOD(void, SetRuntimeSetting, (RuntimeSetting setting), (override));
99   MOCK_METHOD(bool, PostRuntimeSetting, (RuntimeSetting setting), (override));
100   MOCK_METHOD(int,
101               ProcessStream,
102               (const int16_t* const src,
103                const StreamConfig& input_config,
104                const StreamConfig& output_config,
105                int16_t* const dest),
106               (override));
107   MOCK_METHOD(int,
108               ProcessStream,
109               (const float* const* src,
110                const StreamConfig& input_config,
111                const StreamConfig& output_config,
112                float* const* dest),
113               (override));
114   MOCK_METHOD(int,
115               ProcessReverseStream,
116               (const int16_t* const src,
117                const StreamConfig& input_config,
118                const StreamConfig& output_config,
119                int16_t* const dest),
120               (override));
121   MOCK_METHOD(int,
122               AnalyzeReverseStream,
123               (const float* const* data, const StreamConfig& reverse_config),
124               (override));
125   MOCK_METHOD(int,
126               ProcessReverseStream,
127               (const float* const* src,
128                const StreamConfig& input_config,
129                const StreamConfig& output_config,
130                float* const* dest),
131               (override));
132   MOCK_METHOD(bool,
133               GetLinearAecOutput,
134               ((rtc::ArrayView<std::array<float, 160>> linear_output)),
135               (const, override));
136   MOCK_METHOD(int, set_stream_delay_ms, (int delay), (override));
137   MOCK_METHOD(int, stream_delay_ms, (), (const, override));
138   MOCK_METHOD(void, set_stream_key_pressed, (bool key_pressed), (override));
139   MOCK_METHOD(void, set_stream_analog_level, (int), (override));
140   MOCK_METHOD(int, recommended_stream_analog_level, (), (const, override));
141   MOCK_METHOD(bool,
142               CreateAndAttachAecDump,
143               (const std::string& file_name,
144                int64_t max_log_size_bytes,
145                rtc::TaskQueue* worker_queue),
146               (override));
147   MOCK_METHOD(bool,
148               CreateAndAttachAecDump,
149               (FILE * handle,
150                int64_t max_log_size_bytes,
151                rtc::TaskQueue* worker_queue),
152               (override));
153   MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
154   MOCK_METHOD(void, DetachAecDump, (), (override));
155 
156   MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override));
157   MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override));
158 
159   MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
160 };
161 
162 }  // namespace test
163 }  // namespace webrtc
164 
165 #endif  // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_
166