blob: 562b23f7d5dbc12d7d865acd5c41e21f52664816 [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
Mirko Bonadei6a489f22019-04-09 15:11:12 +020070class MockAudioProcessing : public ::testing::NiceMock<AudioProcessing> {
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000071 public:
saza0bad15f2019-10-16 11:46:11 +020072 MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000073
solenberg059fb442016-10-26 05:12:24 -070074 virtual ~MockAudioProcessing() {}
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +000075
Danil Chapovalov704fb552020-05-18 15:10:15 +020076 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(void,
92 SetExtraOptions,
93 (const webrtc::Config& config),
94 (override));
95 MOCK_METHOD(int, proc_sample_rate_hz, (), (const, override));
96 MOCK_METHOD(int, proc_split_sample_rate_hz, (), (const, override));
97 MOCK_METHOD(size_t, num_input_channels, (), (const, override));
98 MOCK_METHOD(size_t, num_proc_channels, (), (const, override));
99 MOCK_METHOD(size_t, num_output_channels, (), (const, override));
100 MOCK_METHOD(size_t, num_reverse_channels, (), (const, override));
101 MOCK_METHOD(void, set_output_will_be_muted, (bool muted), (override));
102 MOCK_METHOD(void, SetRuntimeSetting, (RuntimeSetting setting), (override));
103 MOCK_METHOD(int,
104 ProcessStream,
105 (const int16_t* const src,
106 const StreamConfig& input_config,
107 const StreamConfig& output_config,
108 int16_t* const dest),
109 (override));
110 MOCK_METHOD(int,
111 ProcessStream,
112 (const float* const* src,
113 const StreamConfig& input_config,
114 const StreamConfig& output_config,
115 float* const* dest),
116 (override));
117 MOCK_METHOD(int,
118 ProcessReverseStream,
119 (const int16_t* const src,
120 const StreamConfig& input_config,
121 const StreamConfig& output_config,
122 int16_t* const dest),
123 (override));
124 MOCK_METHOD(int,
125 AnalyzeReverseStream,
126 (const float* const* data, const StreamConfig& reverse_config),
127 (override));
128 MOCK_METHOD(int,
129 ProcessReverseStream,
130 (const float* const* src,
131 const StreamConfig& input_config,
132 const StreamConfig& output_config,
133 float* const* dest),
134 (override));
135 MOCK_METHOD(bool,
136 GetLinearAecOutput,
137 ((rtc::ArrayView<std::array<float, 160>> linear_output)),
138 (const, override));
139 MOCK_METHOD(int, set_stream_delay_ms, (int delay), (override));
140 MOCK_METHOD(int, stream_delay_ms, (), (const, override));
141 MOCK_METHOD(void, set_stream_key_pressed, (bool key_pressed), (override));
142 MOCK_METHOD(void, set_stream_analog_level, (int), (override));
143 MOCK_METHOD(int, recommended_stream_analog_level, (), (const, override));
144 MOCK_METHOD(bool,
145 CreateAndAttachAecDump,
146 (const std::string& file_name,
147 int64_t max_log_size_bytes,
148 rtc::TaskQueue* worker_queue),
149 (override));
150 MOCK_METHOD(bool,
151 CreateAndAttachAecDump,
152 (FILE * handle,
153 int64_t max_log_size_bytes,
154 rtc::TaskQueue* worker_queue),
155 (override));
156 MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
157 MOCK_METHOD(void, DetachAecDump, (), (override));
aleloi868f32f2017-05-23 07:20:05 -0700158
Danil Chapovalov704fb552020-05-18 15:10:15 +0200159 MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override));
160 MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000161
Danil Chapovalov704fb552020-05-18 15:10:15 +0200162 MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000163};
164
solenberg059fb442016-10-26 05:12:24 -0700165} // namespace test
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000166} // namespace webrtc
167
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200168#endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_