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; |