Chromium Code Reviews| Index: webrtc/media/engine/webrtcvoiceengine.cc | 
| diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc | 
| index e0d9884e8f1b2939b777b9f61df6e4722636e9ce..67b739206b1876e2b7b4ce3e01fb10206f79abb0 100644 | 
| --- a/webrtc/media/engine/webrtcvoiceengine.cc | 
| +++ b/webrtc/media/engine/webrtcvoiceengine.cc | 
| @@ -959,11 +959,12 @@ void WebRtcVoiceEngine::SetDefaultDevices() { | 
| #endif // !WEBRTC_IOS | 
| } | 
| +// TODO(solenberg): Remove, once AudioMonitor is gone. | 
| int WebRtcVoiceEngine::GetInputLevel() { | 
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| - unsigned int ulevel; | 
| - return (voe_wrapper_->volume()->GetSpeechInputLevel(ulevel) != -1) ? | 
| - static_cast<int>(ulevel) : -1; | 
| + int8_t currentLevel = transmit_mixer()->AudioLevel(); | 
| 
 
kwiberg-webrtc
2017/02/28 13:59:18
const? Also, why camelCase?
 
the sun
2017/03/02 00:36:25
a) Do you mean currentLevel (sic) should be const?
 
kwiberg-webrtc
2017/03/02 02:37:37
It just says "Use const whenever it makes sense."
 
 | 
| + RTC_DCHECK_LE(0, currentLevel); | 
| + return currentLevel; | 
| } | 
| const std::vector<AudioCodec>& WebRtcVoiceEngine::send_codecs() const { | 
| @@ -1576,6 +1577,12 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream { | 
| return stream_->GetStats(); | 
| } | 
| + int GetOutputLevel() const { | 
| + RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| + RTC_DCHECK(stream_); | 
| + return stream_->GetOutputLevel(); | 
| + } | 
| + | 
| int channel() const { | 
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| return config_.voe_channel_id; | 
| @@ -2345,12 +2352,13 @@ bool WebRtcVoiceMediaChannel::SetLocalSource(uint32_t ssrc, | 
| return true; | 
| } | 
| +// TODO(solenberg): Remove, once AudioMonitor is gone. | 
| bool WebRtcVoiceMediaChannel::GetActiveStreams( | 
| AudioInfo::StreamList* actives) { | 
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| actives->clear(); | 
| for (const auto& ch : recv_streams_) { | 
| - int level = GetOutputLevel(ch.second->channel()); | 
| + int level = ch.second->GetOutputLevel(); | 
| if (level > 0) { | 
| actives->push_back(std::make_pair(ch.first, level)); | 
| } | 
| @@ -2358,11 +2366,12 @@ bool WebRtcVoiceMediaChannel::GetActiveStreams( | 
| return true; | 
| } | 
| +// TODO(solenberg): Remove, once AudioMonitor is gone. | 
| int WebRtcVoiceMediaChannel::GetOutputLevel() { | 
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| int highest = 0; | 
| for (const auto& ch : recv_streams_) { | 
| - highest = std::max(GetOutputLevel(ch.second->channel()), highest); | 
| + highest = std::max(ch.second->GetOutputLevel(), highest); | 
| } | 
| return highest; | 
| } | 
| @@ -2643,12 +2652,6 @@ void WebRtcVoiceMediaChannel::SetRawAudioSink( | 
| it->second->SetRawAudioSink(std::move(sink)); | 
| } | 
| -int WebRtcVoiceMediaChannel::GetOutputLevel(int channel) { | 
| - unsigned int ulevel = 0; | 
| - int ret = engine()->voe()->volume()->GetSpeechOutputLevel(channel, ulevel); | 
| - return (ret == 0) ? static_cast<int>(ulevel) : -1; | 
| -} | 
| - | 
| int WebRtcVoiceMediaChannel::GetReceiveChannelId(uint32_t ssrc) const { | 
| RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); | 
| const auto it = recv_streams_.find(ssrc); |