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