andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 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 | |
Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame] | 11 | #ifndef MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ |
| 12 | #define MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 13 | |
kwiberg | 88788ad | 2016-02-19 07:04:49 -0800 | [diff] [blame] | 14 | #include <memory> |
| 15 | |
Ali Tofigh | 980ad0c | 2022-08-09 09:21:17 +0200 | [diff] [blame] | 16 | #include "absl/strings/string_view.h" |
Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame] | 17 | #include "modules/audio_processing/include/aec_dump.h" |
| 18 | #include "modules/audio_processing/include/audio_processing.h" |
Ivo Creusen | 56d4609 | 2017-11-24 17:29:59 +0100 | [diff] [blame] | 19 | #include "modules/audio_processing/include/audio_processing_statistics.h" |
Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame] | 20 | #include "test/gmock.h" |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 21 | |
| 22 | namespace webrtc { |
| 23 | |
solenberg | 059fb44 | 2016-10-26 05:12:24 -0700 | [diff] [blame] | 24 | namespace test { |
Alex Loiko | 5825aa6 | 2017-12-18 16:02:40 +0100 | [diff] [blame] | 25 | class MockCustomProcessing : public CustomProcessing { |
Sam Zackrisson | 0beac58 | 2017-09-25 12:04:02 +0200 | [diff] [blame] | 26 | public: |
Alex Loiko | 5825aa6 | 2017-12-18 16:02:40 +0100 | [diff] [blame] | 27 | virtual ~MockCustomProcessing() {} |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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)); |
Sam Zackrisson | 0beac58 | 2017-09-25 12:04:02 +0200 | [diff] [blame] | 38 | }; |
| 39 | |
Valeriia Nemychnikova | f06eb57 | 2018-08-29 10:37:09 +0200 | [diff] [blame] | 40 | class MockCustomAudioAnalyzer : public CustomAudioAnalyzer { |
| 41 | public: |
| 42 | virtual ~MockCustomAudioAnalyzer() {} |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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)); |
Valeriia Nemychnikova | f06eb57 | 2018-08-29 10:37:09 +0200 | [diff] [blame] | 49 | }; |
| 50 | |
Gustaf Ullberg | 002ef28 | 2017-10-12 15:13:17 +0200 | [diff] [blame] | 51 | class MockEchoControl : public EchoControl { |
| 52 | public: |
| 53 | virtual ~MockEchoControl() {} |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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)); |
Gustaf Ullberg | 002ef28 | 2017-10-12 15:13:17 +0200 | [diff] [blame] | 69 | }; |
| 70 | |
Sam Zackrisson | 03cb7e5 | 2021-12-06 15:40:04 +0100 | [diff] [blame] | 71 | class 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 Konradi | c20baf6 | 2020-12-03 11:30:34 -0500 | [diff] [blame] | 92 | class MockAudioProcessing : public AudioProcessing { |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 93 | public: |
saza | 0bad15f | 2019-10-16 11:46:11 +0200 | [diff] [blame] | 94 | MockAudioProcessing() {} |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 95 | |
solenberg | 059fb44 | 2016-10-26 05:12:24 -0700 | [diff] [blame] | 96 | virtual ~MockAudioProcessing() {} |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 97 | |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 98 | MOCK_METHOD(int, Initialize, (), (override)); |
| 99 | MOCK_METHOD(int, |
| 100 | Initialize, |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 101 | (const ProcessingConfig& processing_config), |
| 102 | (override)); |
| 103 | MOCK_METHOD(void, ApplyConfig, (const Config& config), (override)); |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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)); |
Per Ã…hgren | 0a144a7 | 2021-02-09 08:47:51 +0100 | [diff] [blame] | 112 | MOCK_METHOD(bool, PostRuntimeSetting, (RuntimeSetting setting), (override)); |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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, |
Ali Tofigh | 980ad0c | 2022-08-09 09:21:17 +0200 | [diff] [blame] | 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, |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 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)); |
aleloi | 868f32f | 2017-05-23 07:20:05 -0700 | [diff] [blame] | 168 | |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 169 | MOCK_METHOD(AudioProcessingStats, GetStatistics, (), (override)); |
| 170 | MOCK_METHOD(AudioProcessingStats, GetStatistics, (bool), (override)); |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 171 | |
Danil Chapovalov | 704fb55 | 2020-05-18 15:10:15 +0200 | [diff] [blame] | 172 | MOCK_METHOD(AudioProcessing::Config, GetConfig, (), (const, override)); |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 173 | }; |
| 174 | |
solenberg | 059fb44 | 2016-10-26 05:12:24 -0700 | [diff] [blame] | 175 | } // namespace test |
andrew@webrtc.org | c83a00a | 2013-03-25 21:20:38 +0000 | [diff] [blame] | 176 | } // namespace webrtc |
| 177 | |
Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame] | 178 | #endif // MODULES_AUDIO_PROCESSING_INCLUDE_MOCK_AUDIO_PROCESSING_H_ |