Improving support for Android Audio Effects in WebRTC.
Now also supports AGC and NS effects and adds the possibility
to override default settings.

R=magjed@webrtc.org, pbos@webrtc.org, sophiechang@chromium.org
TBR=perkj
BUG=NONE

Review URL: https://codereview.webrtc.org/1344563002 .

Cr-Commit-Position: refs/heads/master@{#10030}
diff --git a/webrtc/modules/audio_device/include/audio_device.h b/webrtc/modules/audio_device/include/audio_device.h
index 1826e0e..c2c2b88 100644
--- a/webrtc/modules/audio_device/include/audio_device.h
+++ b/webrtc/modules/audio_device/include/audio_device.h
@@ -187,18 +187,14 @@
   // Only supported on Android.
   // TODO(henrika): Make pure virtual after updating Chromium.
   virtual bool BuiltInAECIsAvailable() const { return false; }
+  virtual bool BuiltInAGCIsAvailable() const { return false; }
+  virtual bool BuiltInNSIsAvailable() const { return false; }
 
-  // Enables the built-in AEC. Only supported on Windows and Android.
-  //
-  // For usage on Windows (requires Core Audio):
-  // Must be called before InitRecording(). When enabled:
-  // 1. StartPlayout() must be called before StartRecording().
-  // 2. StopRecording() should be called before StopPlayout().
-  //    The reverse order may cause garbage audio to be rendered or the
-  //    capture side to halt until StopRecording() is called.
+  // Enables the built-in audio effects. Only supported on Android.
   // TODO(henrika): Make pure virtual after updating Chromium.
   virtual int32_t EnableBuiltInAEC(bool enable) { return -1; }
-
+  virtual int32_t EnableBuiltInAGC(bool enable) { return -1; }
+  virtual int32_t EnableBuiltInNS(bool enable) { return -1; }
   // Don't use.
   virtual bool BuiltInAECIsEnabled() const { return false; }