Chromium Code Reviews| Index: talk/media/base/fakemediaengine.h |
| diff --git a/talk/media/base/fakemediaengine.h b/talk/media/base/fakemediaengine.h |
| index de6062b5d4f713f4a7c99ccf0456f2ea35da8a1d..fb9ba6a55162b545261be68a1abe743956d01c30 100644 |
| --- a/talk/media/base/fakemediaengine.h |
| +++ b/talk/media/base/fakemediaengine.h |
| @@ -137,15 +137,6 @@ template <class Base> class RtpHelper : public Base { |
| virtual bool RemoveRecvStream(uint32 ssrc) { |
| return RemoveStreamBySsrc(&receive_streams_, ssrc); |
| } |
| - virtual bool MuteStream(uint32 ssrc, bool on) { |
| - if (!HasSendStream(ssrc) && ssrc != 0) |
| - return false; |
| - if (on) |
| - muted_streams_.insert(ssrc); |
| - else |
| - muted_streams_.erase(ssrc); |
| - return true; |
| - } |
| bool IsStreamMuted(uint32 ssrc) const { |
| bool ret = muted_streams_.find(ssrc) != muted_streams_.end(); |
| // If |ssrc = 0| check if the first send stream is muted. |
| @@ -188,6 +179,15 @@ template <class Base> class RtpHelper : public Base { |
| } |
| protected: |
| + bool MuteStream(uint32 ssrc, bool on) { |
| + if (!HasSendStream(ssrc) && ssrc != 0) |
| + return false; |
| + if (on) |
| + muted_streams_.insert(ssrc); |
| + else |
| + muted_streams_.erase(ssrc); |
| + return true; |
| + } |
| bool set_sending(bool send) { |
| sending_ = send; |
| return true; |
| @@ -283,6 +283,33 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { |
| } |
| return set_sending(flag != SEND_NOTHING); |
| } |
| + virtual bool SetAudioSend(uint32 ssrc, bool mute, |
| + const AudioOptions* options, |
| + AudioRenderer* renderer) { |
| + std::map<uint32, VoiceChannelAudioSink*>::iterator it = |
| + local_renderers_.find(ssrc); |
| + if (renderer) { |
| + if (it != local_renderers_.end()) { |
| + ASSERT(it->second->renderer() == renderer); |
| + } else { |
| + local_renderers_.insert(std::make_pair( |
| + ssrc, new VoiceChannelAudioSink(renderer))); |
| + } |
| + } else { |
| + if (it != local_renderers_.end()) { |
| + delete it->second; |
| + local_renderers_.erase(it); |
| + } else { |
| + return false; |
| + } |
| + } |
| + bool result = RtpHelper<VoiceMediaChannel>::MuteStream(ssrc, mute); |
| + if (result && !mute && options) { |
| + return SetOptions(*options); |
| + } else { |
| + return result; |
| + } |
| + } |
|
pthatcher1
2015/09/09 07:16:12
I think it will make the intention of this CL more
the sun
2015/09/09 09:50:50
Done.
|
| virtual bool SetMaxSendBandwidth(int bps) { return true; } |
| virtual bool AddRecvStream(const StreamParams& sp) { |
| if (!RtpHelper<VoiceMediaChannel>::AddRecvStream(sp)) |
| @@ -316,26 +343,6 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { |
| } |
| return true; |
| } |
| - virtual bool SetLocalRenderer(uint32 ssrc, AudioRenderer* renderer) { |
| - std::map<uint32, VoiceChannelAudioSink*>::iterator it = |
| - local_renderers_.find(ssrc); |
| - if (renderer) { |
| - if (it != local_renderers_.end()) { |
| - ASSERT(it->second->renderer() == renderer); |
| - } else { |
| - local_renderers_.insert(std::make_pair( |
| - ssrc, new VoiceChannelAudioSink(renderer))); |
| - } |
| - } else { |
| - if (it != local_renderers_.end()) { |
| - delete it->second; |
| - local_renderers_.erase(it); |
| - } else { |
| - return false; |
| - } |
| - } |
| - return true; |
| - } |
| virtual bool GetActiveStreams(AudioInfo::StreamList* streams) { return true; } |
| virtual int GetOutputLevel() { return 0; } |
| @@ -560,6 +567,15 @@ class FakeVideoMediaChannel : public RtpHelper<VideoMediaChannel> { |
| } |
| virtual bool SetSend(bool send) { return set_sending(send); } |
| + virtual bool SetVideoSend(uint32 ssrc, bool mute, |
| + const VideoOptions* options) { |
| + bool result = RtpHelper<VideoMediaChannel>::MuteStream(ssrc, mute); |
| + if (result && !mute && options) { |
| + return SetOptions(*options); |
| + } else { |
| + return result; |
| + } |
| + } |
| virtual bool SetCapturer(uint32 ssrc, VideoCapturer* capturer) { |
| capturers_[ssrc] = capturer; |
| return true; |