blob: 9d122c6704d2613b2576719dc0d2242a613be426 [file] [log] [blame]
solenberg13725082015-11-25 16:16:521/*
2 * Copyright (c) 2015 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
Fredrik Solenberga8b7c7f2018-01-17 10:18:3111#ifndef AUDIO_MOCK_VOE_CHANNEL_PROXY_H_
12#define AUDIO_MOCK_VOE_CHANNEL_PROXY_H_
solenberg13725082015-11-25 16:16:5213
Fredrik Solenberga8b7c7f2018-01-17 10:18:3114#include <map>
15#include <memory>
solenberg13725082015-11-25 16:16:5216#include <string>
Fredrik Solenberga8b7c7f2018-01-17 10:18:3117#include <vector>
kwibergac9f8762016-10-01 05:29:4318
Niels Möllerb222f492018-10-03 14:50:0819#include "audio/channel_receive_proxy.h"
20#include "audio/channel_send_proxy.h"
Mirko Bonadei92ea95e2017-09-15 04:47:3121#include "modules/rtp_rtcp/source/rtp_packet_received.h"
22#include "test/gmock.h"
solenberg13725082015-11-25 16:16:5223
24namespace webrtc {
25namespace test {
26
Niels Möllerb222f492018-10-03 14:50:0827class MockChannelReceiveProxy : public voe::ChannelReceiveProxy {
28 public:
29 MOCK_METHOD1(SetLocalSSRC, void(uint32_t ssrc));
30 MOCK_METHOD2(SetNACKStatus, void(bool enable, int max_packets));
31 MOCK_METHOD1(RegisterReceiverCongestionControlObjects,
32 void(PacketRouter* packet_router));
33 MOCK_METHOD0(ResetReceiverCongestionControlObjects, void());
34 MOCK_CONST_METHOD0(GetRTCPStatistics, CallStatistics());
35 MOCK_CONST_METHOD0(GetNetworkStatistics, NetworkStatistics());
36 MOCK_CONST_METHOD0(GetDecodingCallStatistics, AudioDecodingCallStats());
37 MOCK_CONST_METHOD0(GetSpeechOutputLevelFullRange, int());
38 MOCK_CONST_METHOD0(GetTotalOutputEnergy, double());
39 MOCK_CONST_METHOD0(GetTotalOutputDuration, double());
40 MOCK_CONST_METHOD0(GetDelayEstimate, uint32_t());
41 MOCK_METHOD1(SetSink, void(AudioSinkInterface* sink));
42 MOCK_METHOD1(RegisterTransport, void(Transport* transport));
43 MOCK_METHOD1(OnRtpPacket, void(const RtpPacketReceived& packet));
44 MOCK_METHOD2(ReceivedRTCPPacket, bool(const uint8_t* packet, size_t length));
45 MOCK_METHOD1(SetChannelOutputVolumeScaling, void(float scaling));
46 MOCK_METHOD2(GetAudioFrameWithInfo,
47 AudioMixer::Source::AudioFrameInfo(int sample_rate_hz,
48 AudioFrame* audio_frame));
49 MOCK_CONST_METHOD0(PreferredSampleRate, int());
50 MOCK_METHOD1(AssociateSendChannel,
51 void(const voe::ChannelSendProxy& send_channel_proxy));
52 MOCK_METHOD0(DisassociateSendChannel, void());
53 MOCK_CONST_METHOD0(GetPlayoutTimestamp, uint32_t());
54 MOCK_METHOD1(SetMinimumPlayoutDelay, void(int delay_ms));
55 MOCK_CONST_METHOD1(GetRecCodec, bool(CodecInst* codec_inst));
56 MOCK_METHOD1(SetReceiveCodecs,
57 void(const std::map<int, SdpAudioFormat>& codecs));
58 MOCK_CONST_METHOD0(GetSources, std::vector<RtpSource>());
59 MOCK_METHOD0(StartPlayout, void());
60 MOCK_METHOD0(StopPlayout, void());
61};
62
63class MockChannelSendProxy : public voe::ChannelSendProxy {
solenberg13725082015-11-25 16:16:5264 public:
Fredrik Solenberg2a877972017-12-15 15:42:1565 // GMock doesn't like move-only types, like std::unique_ptr.
66 virtual bool SetEncoder(int payload_type,
67 std::unique_ptr<AudioEncoder> encoder) {
ossu1ffbd6c2017-04-06 19:05:0468 return SetEncoderForMock(payload_type, &encoder);
69 }
70 MOCK_METHOD2(SetEncoderForMock,
Yves Gerey665174f2018-06-19 13:03:0571 bool(int payload_type, std::unique_ptr<AudioEncoder>* encoder));
ossu20a4b3f2017-04-27 09:08:5272 MOCK_METHOD1(
73 ModifyEncoder,
74 void(rtc::FunctionView<void(std::unique_ptr<AudioEncoder>*)> modifier));
solenberg13725082015-11-25 16:16:5275 MOCK_METHOD1(SetRTCPStatus, void(bool enable));
76 MOCK_METHOD1(SetLocalSSRC, void(uint32_t ssrc));
77 MOCK_METHOD1(SetRTCP_CNAME, void(const std::string& c_name));
solenberg971cab02016-06-14 17:02:4178 MOCK_METHOD2(SetNACKStatus, void(bool enable, int max_packets));
solenberg358057b2015-11-27 18:46:4279 MOCK_METHOD2(SetSendAudioLevelIndicationStatus, void(bool enable, int id));
stefan3313ec92016-01-21 14:32:4380 MOCK_METHOD1(EnableSendTransportSequenceNumber, void(int id));
nisseb8f9a322017-03-27 12:36:1581 MOCK_METHOD2(RegisterSenderCongestionControlObjects,
82 void(RtpTransportControllerSendInterface* transport,
stefan7de8d642017-02-07 15:14:0883 RtcpBandwidthObserver* bandwidth_observer));
nissefdbfdc92017-03-31 12:44:5284 MOCK_METHOD0(ResetSenderCongestionControlObjects, void());
solenberg358057b2015-11-27 18:46:4285 MOCK_CONST_METHOD0(GetRTCPStatistics, CallStatistics());
86 MOCK_CONST_METHOD0(GetRemoteRTCPReportBlocks, std::vector<ReportBlock>());
ivoce1198e02017-09-08 15:13:1987 MOCK_CONST_METHOD0(GetANAStatistics, ANAStats());
Yves Gerey665174f2018-06-19 13:03:0588 MOCK_METHOD2(SetSendTelephoneEventPayloadType,
89 bool(int payload_type, int payload_frequency));
solenberg8842c3e2016-03-11 11:06:4190 MOCK_METHOD2(SendTelephoneEventOutband, bool(int event, int duration_ms));
minyue78b4d562016-11-30 12:47:3991 MOCK_METHOD2(SetBitrate, void(int bitrate_bps, int64_t probing_interval_ms));
solenberg7602aab2016-11-14 19:30:0792 MOCK_METHOD1(SetInputMute, void(bool muted));
solenberg1c239d42017-09-29 13:00:2893 MOCK_METHOD1(RegisterTransport, void(Transport* transport));
mflodman3d7db262016-04-29 07:57:1394 MOCK_METHOD2(ReceivedRTCPPacket, bool(const uint8_t* packet, size_t length));
Fredrik Solenberg2a877972017-12-15 15:42:1595 // GMock doesn't like move-only types, like std::unique_ptr.
96 virtual void ProcessAndEncodeAudio(std::unique_ptr<AudioFrame> audio_frame) {
97 ProcessAndEncodeAudioForMock(&audio_frame);
98 }
99 MOCK_METHOD1(ProcessAndEncodeAudioForMock,
100 void(std::unique_ptr<AudioFrame>* audio_frame));
solenberg7602aab2016-11-14 19:30:07101 MOCK_METHOD1(SetTransportOverhead, void(int transport_overhead_per_packet));
Niels Möller848d6d32018-08-08 08:49:16102 MOCK_CONST_METHOD0(GetRtpRtcp, RtpRtcp*());
elad.alond12a8e12017-03-23 18:04:48103 MOCK_METHOD1(OnTwccBasedUplinkPacketLossRate, void(float packet_loss_rate));
elad.alondadb4dc2017-03-23 22:29:50104 MOCK_METHOD1(OnRecoverableUplinkPacketLossRate,
105 void(float recoverable_packet_loss_rate));
Fredrik Solenbergaaedf752017-12-18 12:09:12106 MOCK_METHOD0(StartSend, void());
107 MOCK_METHOD0(StopSend, void());
solenberg13725082015-11-25 16:16:52108};
109} // namespace test
110} // namespace webrtc
111
Fredrik Solenberga8b7c7f2018-01-17 10:18:31112#endif // AUDIO_MOCK_VOE_CHANNEL_PROXY_H_