Chromium Code Reviews| Index: webrtc/audio/audio_state.cc |
| diff --git a/webrtc/audio/audio_state.cc b/webrtc/audio/audio_state.cc |
| index e63f97af2d4fb9fd3123f37532f0553382715984..bcf888bc1e6669d5975f217563fe0add2d121549 100644 |
| --- a/webrtc/audio/audio_state.cc |
| +++ b/webrtc/audio/audio_state.cc |
| @@ -13,16 +13,26 @@ |
| #include "webrtc/base/atomicops.h" |
| #include "webrtc/base/checks.h" |
| #include "webrtc/base/logging.h" |
| +#include "webrtc/modules/audio_device/include/audio_device.h" |
| #include "webrtc/voice_engine/include/voe_errors.h" |
| namespace webrtc { |
| namespace internal { |
| AudioState::AudioState(const AudioState::Config& config) |
| - : config_(config), voe_base_(config.voice_engine) { |
| + : config_(config), |
| + voe_base_(config.voice_engine), |
| + audio_transport_proxy_(voe_base_->audio_transport(), |
| + voe_base_->audio_processing(), |
| + config_.audio_mixer) { |
| process_thread_checker_.DetachFromThread(); |
| // Only one AudioState should be created per VoiceEngine. |
| RTC_CHECK(voe_base_->RegisterVoiceEngineObserver(*this) != -1); |
| + |
| + auto* const device = voe_base_->audio_device_module(); |
| + RTC_DCHECK(device); |
| + device->RegisterAudioCallback(nullptr); |
|
the sun
2016/11/14 13:50:08
Please add a comment about this being necessary fo
|
| + device->RegisterAudioCallback(&audio_transport_proxy_); |
| } |
| AudioState::~AudioState() { |
| @@ -35,6 +45,10 @@ VoiceEngine* AudioState::voice_engine() { |
| return config_.voice_engine; |
| } |
| +rtc::scoped_refptr<AudioMixer> AudioState::mixer() const { |
| + return config_.audio_mixer; |
| +} |
| + |
| bool AudioState::typing_noise_detected() const { |
| RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
| rtc::CritScope lock(&crit_sect_); |