Chromium Code Reviews| Index: talk/media/base/fakemediaengine.h |
| diff --git a/talk/media/base/fakemediaengine.h b/talk/media/base/fakemediaengine.h |
| index 47ec402f18ee0e08e966757404c63d5f1ee6a7e2..e9610ee3f8cc0ce79e59a09230742aa102d16caa 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 mute) { |
| + if (!HasSendStream(ssrc) && ssrc != 0) |
| + return false; |
| + if (mute) |
| + muted_streams_.insert(ssrc); |
| + else |
| + muted_streams_.erase(ssrc); |
| + return true; |
| + } |
| bool set_sending(bool send) { |
| sending_ = send; |
| return true; |
| @@ -283,6 +283,21 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { |
| } |
| return set_sending(flag != SEND_NOTHING); |
| } |
| + virtual bool SetAudioSend(uint32 ssrc, bool mute, |
| + const AudioOptions* options, |
| + AudioRenderer* renderer) { |
| + if (!SetLocalRenderer(ssrc, renderer)) { |
| + return false; |
| + } |
| + if (!RtpHelper<VoiceMediaChannel>::MuteStream(ssrc, mute)) { |
| + return false; |
| + } |
| + if (!mute && options) { |
| + return SetOptions(*options); |
| + } else { |
| + return true; |
| + } |
|
pthatcher1
2015/09/09 14:25:14
nit: Could look a little nicer:
if (!mute && op
the sun
2015/09/09 14:52:11
Done.
|
| + } |
| virtual bool SetMaxSendBandwidth(int bps) { return true; } |
| virtual bool AddRecvStream(const StreamParams& sp) { |
| if (!RtpHelper<VoiceMediaChannel>::AddRecvStream(sp)) |
| @@ -316,26 +331,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; } |
| @@ -442,6 +437,23 @@ class FakeVoiceMediaChannel : public RtpHelper<VoiceMediaChannel> { |
| AudioRenderer* renderer_; |
| }; |
| + bool SetLocalRenderer(uint32 ssrc, AudioRenderer* renderer) { |
| + auto 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); |
| + } |
| + } |
| + return true; |
| + } |
| FakeVoiceEngine* engine_; |
| std::vector<AudioCodec> recv_codecs_; |
| @@ -556,6 +568,17 @@ class FakeVideoMediaChannel : public RtpHelper<VideoMediaChannel> { |
| } |
| virtual bool SetSend(bool send) { return set_sending(send); } |
| + virtual bool SetVideoSend(uint32 ssrc, bool mute, |
| + const VideoOptions* options) { |
| + if (!RtpHelper<VideoMediaChannel>::MuteStream(ssrc, mute)) { |
| + return false; |
| + } |
| + if (!mute && options) { |
| + return SetOptions(*options); |
| + } else { |
| + return true; |
| + } |
| + } |
| virtual bool SetCapturer(uint32 ssrc, VideoCapturer* capturer) { |
| capturers_[ssrc] = capturer; |
| return true; |