Add experimental noise suppression dummy API.

Add this flag to the voe_cmd_test.

R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3879004

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@5134 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/modules/audio_processing/audio_processing_impl.cc b/modules/audio_processing/audio_processing_impl.cc
index b33049e..2eb97bf 100644
--- a/modules/audio_processing/audio_processing_impl.cc
+++ b/modules/audio_processing/audio_processing_impl.cc
@@ -186,6 +186,10 @@
     (*it)->SetExtraOptions(config);
 }
 
+int AudioProcessingImpl::EnableExperimentalNs(bool enable) {
+  return kNoError;
+}
+
 int AudioProcessingImpl::set_sample_rate_hz(int rate) {
   CriticalSectionScoped crit_scoped(crit_);
   if (rate == sample_rate_hz_) {
diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h
index b0afd6d..6c22878 100644
--- a/modules/audio_processing/audio_processing_impl.h
+++ b/modules/audio_processing/audio_processing_impl.h
@@ -59,6 +59,10 @@
   virtual int Initialize() OVERRIDE;
   virtual int InitializeLocked();
   virtual void SetExtraOptions(const Config& config) OVERRIDE;
+  virtual int EnableExperimentalNs(bool enable) OVERRIDE;
+  virtual bool experimental_ns_enabled() const OVERRIDE {
+    return false;
+  }
   virtual int set_sample_rate_hz(int rate) OVERRIDE;
   virtual int sample_rate_hz() const OVERRIDE;
   virtual int set_num_channels(int input_channels,
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 1babe43..8297649 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -155,6 +155,9 @@
   // ensures the options are applied immediately.
   virtual void SetExtraOptions(const Config& config) = 0;
 
+  virtual int EnableExperimentalNs(bool enable) = 0;
+  virtual bool experimental_ns_enabled() const = 0;
+
   // Sets the sample |rate| in Hz for both the primary and reverse audio
   // streams. 8000, 16000 or 32000 Hz are permitted.
   virtual int set_sample_rate_hz(int rate) = 0;
diff --git a/modules/audio_processing/include/mock_audio_processing.h b/modules/audio_processing/include/mock_audio_processing.h
index 9a36fe8..c4600bd 100644
--- a/modules/audio_processing/include/mock_audio_processing.h
+++ b/modules/audio_processing/include/mock_audio_processing.h
@@ -183,6 +183,10 @@
       int());
   MOCK_METHOD1(SetExtraOptions,
       void(const Config& config));
+  MOCK_METHOD1(EnableExperimentalNs,
+      int(bool enable));
+  MOCK_CONST_METHOD0(experimental_ns_enabled,
+      bool());
   MOCK_METHOD1(set_sample_rate_hz,
       int(int rate));
   MOCK_CONST_METHOD0(sample_rate_hz,
diff --git a/voice_engine/test/cmd_test/voe_cmd_test.cc b/voice_engine/test/cmd_test/voe_cmd_test.cc
index 10fc198..68d096d 100644
--- a/voice_engine/test/cmd_test/voe_cmd_test.cc
+++ b/voice_engine/test/cmd_test/voe_cmd_test.cc
@@ -23,6 +23,7 @@
 #include "webrtc/common_types.h"
 #include "webrtc/engine_configurations.h"
 #include "webrtc/modules/audio_coding/main/interface/audio_coding_module.h"
+#include "webrtc/modules/audio_processing/include/audio_processing.h"
 #include "webrtc/system_wrappers/interface/scoped_ptr.h"
 #include "webrtc/test/channel_transport/include/channel_transport.h"
 #include "webrtc/test/testsupport/fileutils.h"
@@ -242,6 +243,7 @@
   bool muted = false;
   bool on_hold = false;
   bool opus_stereo = false;
+  bool experimental_ns_enabled = false;
 
 #if defined(WEBRTC_ANDROID)
   std::string resource_path = "/sdcard/";
@@ -432,6 +434,7 @@
       printf("%i. Toggle CNG\n", option_index++);
       printf("%i. Toggle AGC\n", option_index++);
       printf("%i. Toggle NS\n", option_index++);
+      printf("%i. Toggle experimental NS\n", option_index++);
       printf("%i. Toggle EC\n", option_index++);
       printf("%i. Select AEC\n", option_index++);
       printf("%i. Select AECM\n", option_index++);
@@ -497,6 +500,16 @@
         else
           printf("\n NS is now off! \n");
       } else if (option_selection == option_index++) {
+        experimental_ns_enabled = !experimental_ns_enabled;
+        res = base1->audio_processing()->EnableExperimentalNs(
+            experimental_ns_enabled);
+        VALIDATE;
+        if (experimental_ns_enabled) {
+          printf("\n Experimental NS is now on!\n");
+        } else {
+          printf("\n Experimental NS is now off!\n");
+        }
+      } else if (option_selection == option_index++) {
         enable_aec = !enable_aec;
         res = apm->SetEcStatus(enable_aec, kEcUnchanged);
         VALIDATE;