Added audio mixer and removed audio device module in AudioState::Config.

The audio_device_module field was currently unused. The audio_mixer
field is going to be used to pass an AudioMixer to AudioState.

In the hopefully-not-very-far future, the toplevel WebRTC API will allow passing
a custom AudioMixer, e.g. for spatialized audio (audio in space). If no
mixer is passed, a default mixer is created (the one in modules/audio_mixer).

The only object which will have a permanent reference to the mixer is AudioState.
AudioState is created in WebRTCVoiceEngine with a configuration object,
which already contains a VoiceEngine pointer. In this CL, we extend this
config object with a mixer pointer.

In summary: in an upcoming CL, a mixer will be either created in or passed to
WebRTCVoiceEngine. This mixer will be passed to the ctor of AudioState in a
config struct.

BUG=webrtc:6346
NOTRY=True

Review-Url: https://codereview.webrtc.org/2456363002
Cr-Original-Commit-Position: refs/heads/master@{#14973}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 81da488ab6c9c79e4a74e29d18c574285312241f
diff --git a/api/call/audio_state.h b/api/call/audio_state.h
index ac91277..1941cbf 100644
--- a/api/call/audio_state.h
+++ b/api/call/audio_state.h
@@ -10,6 +10,7 @@
 #ifndef WEBRTC_API_CALL_AUDIO_STATE_H_
 #define WEBRTC_API_CALL_AUDIO_STATE_H_
 
+#include "webrtc/api/audio/audio_mixer.h"
 #include "webrtc/base/refcount.h"
 #include "webrtc/base/scoped_ref_ptr.h"
 
@@ -33,8 +34,9 @@
     // the AudioState itself.
     VoiceEngine* voice_engine = nullptr;
 
-    // The AudioDeviceModule associated with the Calls.
-    AudioDeviceModule* audio_device_module = nullptr;
+    // The audio mixer connected to active receive streams. One per
+    // AudioState.
+    rtc::scoped_refptr<AudioMixer> audio_mixer;
   };
 
   // TODO(solenberg): Replace scoped_refptr with shared_ptr once we can use it.