blob: db9ab975ff5b1c6e46730d064d9ca2c177cb57bb [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
Alex Konradic20baf62020-12-03 11:30:34 -050070class MockAudioProcessing : public 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));
Danil Chapovalov704fb552020-05-18 15:10:15 +020091 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(int,
100 ProcessStream,
101 (const int16_t* const src,
102 const StreamConfig& input_config,
103 const StreamConfig& output_config,
104 int16_t* const dest),
105 (override));
106 MOCK_METHOD(int,
107 ProcessStream,
108 (const float* const* src,
109 const StreamConfig& input_config,
110 const StreamConfig& output_config,
111 float* const* dest),
112 (override));
113 MOCK_METHOD(int,
114 ProcessReverseStream,
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 AnalyzeReverseStream,
122 (const float* const* data, const StreamConfig& reverse_config),
123 (override));
124 MOCK_METHOD(int,
125 ProcessReverseStream,
126 (const float* const* src,
127 const StreamConfig& input_config,
128 const StreamConfig& output_config,
129 float* const* dest),
130 (override));
131 MOCK_METHOD(bool,
132 GetLinearAecOutput,
133 ((rtc::ArrayView<std::array<float, 160>> linear_output)),
134 (const, override));
135 MOCK_METHOD(int, set_stream_delay_ms, (int delay), (override));
136 MOCK_METHOD(int, stream_delay_ms, (), (const, override));
137 MOCK_METHOD(void, set_stream_key_pressed, (bool key_pressed), (override));
138 MOCK_METHOD(void, set_stream_analog_level, (int), (override));
139 MOCK_METHOD(int, recommended_stream_analog_level, (), (const, override));
140 MOCK_METHOD(bool,
141 CreateAndAttachAecDump,
142 (const std::string& file_name,
143 int64_t max_log_size_bytes,
144 rtc::TaskQueue* worker_queue),
145 (override));
146 MOCK_METHOD(bool,
147 CreateAndAttachAecDump,
148 (FILE * handle,
149 int64_t max_log_size_bytes,
150 rtc::TaskQueue* worker_queue),
151 (override));
152 MOCK_METHOD(void, AttachAecDump, (std::unique_ptr<AecDump>), (override));
153 MOCK_METHOD(void, DetachAecDump, (), (override));
aleloi868f32f2017-05-23 07:20:05 -0700154
Danil Chapovalov704fb552020-05-18 15:10:15 +0200155 MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override));
156 MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000157
Danil Chapovalov704fb552020-05-18 15:10:15 +0200158 MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override));
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000159};
160
solenberg059fb442016-10-26 05:12:24 -0700161} // namespace test
andrew@webrtc.orgc83a00a2013-03-25 21:20:38 +0000162} // namespace webrtc
163
Mirko Bonadei92ea95e2017-09-15 06:47:31 +0200164#endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_