solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 1 | /* |
| 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 Solenberg | a8b7c7f | 2018-01-17 11:18:31 +0100 | [diff] [blame] | 11 | #ifndef AUDIO_MOCK_VOE_CHANNEL_PROXY_H_ |
| 12 | #define AUDIO_MOCK_VOE_CHANNEL_PROXY_H_ |
solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 13 | |
Fredrik Solenberg | a8b7c7f | 2018-01-17 11:18:31 +0100 | [diff] [blame] | 14 | #include <map> |
| 15 | #include <memory> |
solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 16 | #include <string> |
Fredrik Solenberg | a8b7c7f | 2018-01-17 11:18:31 +0100 | [diff] [blame] | 17 | #include <vector> |
kwiberg | ac9f876 | 2016-09-30 22:29:43 -0700 | [diff] [blame] | 18 | |
Fredrik Solenberg | a8b7c7f | 2018-01-17 11:18:31 +0100 | [diff] [blame] | 19 | #include "audio/channel_proxy.h" |
Mirko Bonadei | 92ea95e | 2017-09-15 06:47:31 +0200 | [diff] [blame] | 20 | #include "modules/rtp_rtcp/source/rtp_packet_received.h" |
| 21 | #include "test/gmock.h" |
solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 22 | |
| 23 | namespace webrtc { |
| 24 | namespace test { |
| 25 | |
| 26 | class MockVoEChannelProxy : public voe::ChannelProxy { |
| 27 | public: |
Fredrik Solenberg | 2a87797 | 2017-12-15 16:42:15 +0100 | [diff] [blame] | 28 | // GMock doesn't like move-only types, like std::unique_ptr. |
| 29 | virtual bool SetEncoder(int payload_type, |
| 30 | std::unique_ptr<AudioEncoder> encoder) { |
ossu | 1ffbd6c | 2017-04-06 12:05:04 -0700 | [diff] [blame] | 31 | return SetEncoderForMock(payload_type, &encoder); |
| 32 | } |
| 33 | MOCK_METHOD2(SetEncoderForMock, |
| 34 | bool(int payload_type, |
| 35 | std::unique_ptr<AudioEncoder>* encoder)); |
ossu | 20a4b3f | 2017-04-27 02:08:52 -0700 | [diff] [blame] | 36 | MOCK_METHOD1( |
| 37 | ModifyEncoder, |
| 38 | void(rtc::FunctionView<void(std::unique_ptr<AudioEncoder>*)> modifier)); |
solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 39 | MOCK_METHOD1(SetRTCPStatus, void(bool enable)); |
| 40 | MOCK_METHOD1(SetLocalSSRC, void(uint32_t ssrc)); |
| 41 | MOCK_METHOD1(SetRTCP_CNAME, void(const std::string& c_name)); |
solenberg | 971cab0 | 2016-06-14 10:02:41 -0700 | [diff] [blame] | 42 | MOCK_METHOD2(SetNACKStatus, void(bool enable, int max_packets)); |
solenberg | 358057b | 2015-11-27 10:46:42 -0800 | [diff] [blame] | 43 | MOCK_METHOD2(SetSendAudioLevelIndicationStatus, void(bool enable, int id)); |
stefan | 3313ec9 | 2016-01-21 06:32:43 -0800 | [diff] [blame] | 44 | MOCK_METHOD1(EnableSendTransportSequenceNumber, void(int id)); |
nisse | b8f9a32 | 2017-03-27 05:36:15 -0700 | [diff] [blame] | 45 | MOCK_METHOD2(RegisterSenderCongestionControlObjects, |
| 46 | void(RtpTransportControllerSendInterface* transport, |
stefan | 7de8d64 | 2017-02-07 07:14:08 -0800 | [diff] [blame] | 47 | RtcpBandwidthObserver* bandwidth_observer)); |
stefan | bba9dec | 2016-02-01 04:39:55 -0800 | [diff] [blame] | 48 | MOCK_METHOD1(RegisterReceiverCongestionControlObjects, |
| 49 | void(PacketRouter* packet_router)); |
nisse | fdbfdc9 | 2017-03-31 05:44:52 -0700 | [diff] [blame] | 50 | MOCK_METHOD0(ResetSenderCongestionControlObjects, void()); |
| 51 | MOCK_METHOD0(ResetReceiverCongestionControlObjects, void()); |
solenberg | 358057b | 2015-11-27 10:46:42 -0800 | [diff] [blame] | 52 | MOCK_CONST_METHOD0(GetRTCPStatistics, CallStatistics()); |
| 53 | MOCK_CONST_METHOD0(GetRemoteRTCPReportBlocks, std::vector<ReportBlock>()); |
| 54 | MOCK_CONST_METHOD0(GetNetworkStatistics, NetworkStatistics()); |
| 55 | MOCK_CONST_METHOD0(GetDecodingCallStatistics, AudioDecodingCallStats()); |
ivoc | e1198e0 | 2017-09-08 08:13:19 -0700 | [diff] [blame] | 56 | MOCK_CONST_METHOD0(GetANAStatistics, ANAStats()); |
solenberg | 8d73f8c | 2017-03-08 01:52:20 -0800 | [diff] [blame] | 57 | MOCK_CONST_METHOD0(GetSpeechOutputLevelFullRange, int()); |
zstein | e76bd3a | 2017-07-14 12:17:49 -0700 | [diff] [blame] | 58 | MOCK_CONST_METHOD0(GetTotalOutputEnergy, double()); |
| 59 | MOCK_CONST_METHOD0(GetTotalOutputDuration, double()); |
solenberg | 358057b | 2015-11-27 10:46:42 -0800 | [diff] [blame] | 60 | MOCK_CONST_METHOD0(GetDelayEstimate, uint32_t()); |
solenberg | ffbbcac | 2016-11-17 05:25:37 -0800 | [diff] [blame] | 61 | MOCK_METHOD2(SetSendTelephoneEventPayloadType, bool(int payload_type, |
| 62 | int payload_frequency)); |
solenberg | 8842c3e | 2016-03-11 03:06:41 -0800 | [diff] [blame] | 63 | MOCK_METHOD2(SendTelephoneEventOutband, bool(int event, int duration_ms)); |
minyue | 78b4d56 | 2016-11-30 04:47:39 -0800 | [diff] [blame] | 64 | MOCK_METHOD2(SetBitrate, void(int bitrate_bps, int64_t probing_interval_ms)); |
Fredrik Solenberg | 8f5787a | 2018-01-11 13:52:30 +0100 | [diff] [blame] | 65 | MOCK_METHOD1(SetSink, void(AudioSinkInterface* sink)); |
solenberg | 7602aab | 2016-11-14 11:30:07 -0800 | [diff] [blame] | 66 | MOCK_METHOD1(SetInputMute, void(bool muted)); |
solenberg | 1c239d4 | 2017-09-29 06:00:28 -0700 | [diff] [blame] | 67 | MOCK_METHOD1(RegisterTransport, void(Transport* transport)); |
nisse | 657bab2 | 2017-02-21 06:28:10 -0800 | [diff] [blame] | 68 | MOCK_METHOD1(OnRtpPacket, void(const RtpPacketReceived& packet)); |
mflodman | 3d7db26 | 2016-04-29 00:57:13 -0700 | [diff] [blame] | 69 | MOCK_METHOD2(ReceivedRTCPPacket, bool(const uint8_t* packet, size_t length)); |
solenberg | 217fb66 | 2016-06-17 08:30:54 -0700 | [diff] [blame] | 70 | MOCK_METHOD1(SetChannelOutputVolumeScaling, void(float scaling)); |
ivoc | 14d5dbe | 2016-07-04 07:06:55 -0700 | [diff] [blame] | 71 | MOCK_METHOD1(SetRtcEventLog, void(RtcEventLog* event_log)); |
solenberg | 7602aab | 2016-11-14 11:30:07 -0800 | [diff] [blame] | 72 | MOCK_METHOD2(GetAudioFrameWithInfo, |
| 73 | AudioMixer::Source::AudioFrameInfo(int sample_rate_hz, |
| 74 | AudioFrame* audio_frame)); |
solenberg | 2397b9a | 2017-09-22 06:48:10 -0700 | [diff] [blame] | 75 | MOCK_CONST_METHOD0(PreferredSampleRate, int()); |
Fredrik Solenberg | 2a87797 | 2017-12-15 16:42:15 +0100 | [diff] [blame] | 76 | // GMock doesn't like move-only types, like std::unique_ptr. |
| 77 | virtual void ProcessAndEncodeAudio(std::unique_ptr<AudioFrame> audio_frame) { |
| 78 | ProcessAndEncodeAudioForMock(&audio_frame); |
| 79 | } |
| 80 | MOCK_METHOD1(ProcessAndEncodeAudioForMock, |
| 81 | void(std::unique_ptr<AudioFrame>* audio_frame)); |
solenberg | 7602aab | 2016-11-14 11:30:07 -0800 | [diff] [blame] | 82 | MOCK_METHOD1(SetTransportOverhead, void(int transport_overhead_per_packet)); |
| 83 | MOCK_METHOD1(AssociateSendChannel, |
| 84 | void(const ChannelProxy& send_channel_proxy)); |
| 85 | MOCK_METHOD0(DisassociateSendChannel, void()); |
solenberg | 3ebbcb5 | 2017-01-31 03:58:40 -0800 | [diff] [blame] | 86 | MOCK_CONST_METHOD2(GetRtpRtcp, void(RtpRtcp** rtp_rtcp, |
| 87 | RtpReceiver** rtp_receiver)); |
solenberg | 3ebbcb5 | 2017-01-31 03:58:40 -0800 | [diff] [blame] | 88 | MOCK_CONST_METHOD0(GetPlayoutTimestamp, uint32_t()); |
| 89 | MOCK_METHOD1(SetMinimumPlayoutDelay, void(int delay_ms)); |
solenberg | bd9a77f | 2017-02-06 12:53:57 -0800 | [diff] [blame] | 90 | MOCK_CONST_METHOD1(GetRecCodec, bool(CodecInst* codec_inst)); |
kwiberg | 1c07c70 | 2017-03-27 07:15:49 -0700 | [diff] [blame] | 91 | MOCK_METHOD1(SetReceiveCodecs, |
| 92 | void(const std::map<int, SdpAudioFormat>& codecs)); |
elad.alon | d12a8e1 | 2017-03-23 11:04:48 -0700 | [diff] [blame] | 93 | MOCK_METHOD1(OnTwccBasedUplinkPacketLossRate, void(float packet_loss_rate)); |
elad.alon | dadb4dc | 2017-03-23 15:29:50 -0700 | [diff] [blame] | 94 | MOCK_METHOD1(OnRecoverableUplinkPacketLossRate, |
| 95 | void(float recoverable_packet_loss_rate)); |
hbos | 8d609f6 | 2017-04-10 07:39:05 -0700 | [diff] [blame] | 96 | MOCK_CONST_METHOD0(GetSources, std::vector<RtpSource>()); |
Fredrik Solenberg | aaedf75 | 2017-12-18 13:09:12 +0100 | [diff] [blame] | 97 | MOCK_METHOD0(StartSend, void()); |
| 98 | MOCK_METHOD0(StopSend, void()); |
Fredrik Solenberg | d524751 | 2017-12-18 22:41:03 +0100 | [diff] [blame] | 99 | MOCK_METHOD0(StartPlayout, void()); |
| 100 | MOCK_METHOD0(StopPlayout, void()); |
solenberg | 1372508 | 2015-11-25 08:16:52 -0800 | [diff] [blame] | 101 | }; |
| 102 | } // namespace test |
| 103 | } // namespace webrtc |
| 104 | |
Fredrik Solenberg | a8b7c7f | 2018-01-17 11:18:31 +0100 | [diff] [blame] | 105 | #endif // AUDIO_MOCK_VOE_CHANNEL_PROXY_H_ |