From c116e7899e3826d51eb13973a90c0a167172ca2e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Mon, 20 Sep 2010 10:04:51 -0400
Subject: [PATCH] [#4068] Remove echo cancel from configuration

---
 sflphone-client-gnome/src/config/audioconf.c  | 42 ++-----------------
 .../dbus/configurationmanager-introspec.xml   | 16 -------
 sflphone-client-gnome/src/dbus/dbus.c         | 36 +---------------
 sflphone-client-gnome/src/dbus/dbus.h         | 13 ------
 sflphone-common/src/audio/alsa/alsalayer.cpp  |  8 ----
 sflphone-common/src/audio/alsa/alsalayer.h    | 14 -------
 sflphone-common/src/audio/audiolayer.h        | 17 --------
 .../src/audio/pulseaudio/pulselayer.cpp       |  7 ----
 .../src/audio/pulseaudio/pulselayer.h         | 14 -------
 .../dbus/configurationmanager-introspec.xml   | 16 -------
 .../src/dbus/configurationmanager.cpp         | 10 -----
 .../src/dbus/configurationmanager.h           |  2 -
 sflphone-common/src/managerimpl.cpp           | 24 -----------
 sflphone-common/src/managerimpl.h             | 12 ++++--
 sflphone-common/src/preferences.cpp           | 11 -----
 sflphone-common/src/preferences.h             | 11 -----
 16 files changed, 12 insertions(+), 241 deletions(-)

diff --git a/sflphone-client-gnome/src/config/audioconf.c b/sflphone-client-gnome/src/config/audioconf.c
index 6f767ea32f..05fb955c05 100644
--- a/sflphone-client-gnome/src/config/audioconf.c
+++ b/sflphone-client-gnome/src/config/audioconf.c
@@ -752,28 +752,6 @@ select_audio_manager (void)
 
 }
 
-void
-active_echo_cancel (void)
-{
-
-    gchar* state;
-    gchar* newstate;
-
-    DEBUG ("Audio: Active echo cancel clicked");
-    state = dbus_get_echo_cancel_state();
-
-    DEBUG ("Audio: Get echo cancel state %s", state);
-
-    if (strcmp (state, "enabled") == 0)
-        newstate = "disabled";
-    else
-        newstate = "enabled";
-
-    dbus_set_echo_cancel_state (newstate);
-
-}
-
-
 void
 active_noise_suppress (void)
 {
@@ -781,10 +759,10 @@ active_noise_suppress (void)
     gchar *state;
     gchar *newstate;
 
-    DEBUG ("Audio: Active noise suppress clicked");
+    DEBUG ("Audio: Active noise suppression clicked");
     state = dbus_get_noise_suppress_state();
 
-    DEBUG ("Audio: Get echo cancel state %s", state);
+    DEBUG ("Audio: Get noise suppression cancel state %s", state);
 
     if (strcmp (state, "enabled") == 0)
         newstate = "disabled";
@@ -919,9 +897,8 @@ GtkWidget* create_audio_configuration()
     GtkWidget *ret;
     // Sub boxes
     GtkWidget *frame;
-    GtkWidget *enableEchoCancel;
     GtkWidget *enableNoiseReduction;
-    gboolean echocancelActive, noisesuppressActive;
+    gboolean noisesuppressActive;
     gchar *state;
 
     ret = gtk_vbox_new (FALSE, 10);
@@ -988,19 +965,6 @@ GtkWidget* create_audio_configuration()
     gnome_main_section_new_with_table (_ ("Voice enhancement settings"), &frame, &table, 2, 1);
     gtk_box_pack_start (GTK_BOX (ret), frame, FALSE, FALSE, 0);
 
-    enableEchoCancel = gtk_check_button_new_with_mnemonic (_ ("_Echo Suppression"));
-    state = dbus_get_echo_cancel_state();
-    echocancelActive = FALSE;
-
-    if (strcmp (state, "enabled") == 0)
-        echocancelActive = TRUE;
-    else
-        echocancelActive = FALSE;
-
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (enableEchoCancel), echocancelActive);
-    g_signal_connect (G_OBJECT (enableEchoCancel), "clicked", active_echo_cancel, NULL);
-    gtk_table_attach (GTK_TABLE (table), enableEchoCancel, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
     enableNoiseReduction = gtk_check_button_new_with_mnemonic (_ ("_Noise Reduction"));
     state = dbus_get_noise_suppress_state();
     noisesuppressActive = FALSE;
diff --git a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
index c2818831f9..f051f3b44b 100755
--- a/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-client-gnome/src/dbus/configurationmanager-introspec.xml
@@ -545,22 +545,6 @@
 		   </arg>
 	   </method>
 
-	   <method name="getEchoCancelState" tp:name-for-bindings="getEchoCancelState">
-	           <tp:docstring>
-	           </tp:docstring>
-	           <arg type="s" name="state" direction="out">
-		           <tp:docstring>
-			   </tp:docstring>
-	           </arg>
-	   </method>
-
-	   <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="state" direction="in">
-		   </arg>
-	   </method>
-
            <method name="getNoiseSuppressState" tp:name-for-bindings="getNoiseSuppressState">
 	           <tp:docstring>
 		   </tp:docstring>
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index 73b3c39dc9..b73d3f0bf3 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -1465,40 +1465,6 @@ dbus_get_current_audio_output_plugin()
     return plugin;
 }
 
-/**
- * Get echo canceller state
- */
-gchar*
-dbus_get_echo_cancel_state()
-{
-    gchar* state = "";
-    GError* error = NULL;
-    org_sflphone_SFLphone_ConfigurationManager_get_echo_cancel_state (configurationManagerProxy, &state, &error);
-
-    if (error) {
-        ERROR ("DBus: Failed to call get_echo_cancel_state() on ConfigurationManager: %s", error->message);
-        g_error_free (error);
-    }
-
-    return state;
-}
-
-/**
- * Set echo canceller state
- */
-void
-dbus_set_echo_cancel_state (gchar* state)
-{
-    GError* error = NULL;
-    org_sflphone_SFLphone_ConfigurationManager_set_echo_cancel_state (
-        configurationManagerProxy, state, &error);
-
-    if (error) {
-        ERROR ("Failed to call set_echo_cancel_state() on ConfigurationManager: %s", error->message);
-        g_error_free (error);
-    }
-}
-
 
 /**
  * Get noise reduction state
@@ -1519,7 +1485,7 @@ dbus_get_noise_suppress_state()
 }
 
 /**
- * Set echo canceller state
+ * Set noise reduction state
  */
 void
 dbus_set_noise_suppress_state (gchar* state)
diff --git a/sflphone-client-gnome/src/dbus/dbus.h b/sflphone-client-gnome/src/dbus/dbus.h
index 8bdb088aef..a2a6611506 100644
--- a/sflphone-client-gnome/src/dbus/dbus.h
+++ b/sflphone-client-gnome/src/dbus/dbus.h
@@ -315,19 +315,6 @@ int dbus_get_audio_device_index (const gchar* name);
  */
 gchar* dbus_get_current_audio_output_plugin();
 
-
-/**
- * ConfigurationManager - Get the current state of echo canceller
- * @return gchar* The state (enabled/disabled)
- */
-gchar *dbus_get_echo_cancel_state (void);
-
-/**
- * ConfigurationManager - Set the crrent state of echo canceller
- * @param gchar* The state (enabled/disabled)
- */
-void dbus_set_echo_cancel_state (gchar *state);
-
 /**
  * ConfigurationManager - Get the current noise suppressor state
  * @return gchar* The state (enabled/disabled)
diff --git a/sflphone-common/src/audio/alsa/alsalayer.cpp b/sflphone-common/src/audio/alsa/alsalayer.cpp
index 72bd589560..83bec76ab1 100644
--- a/sflphone-common/src/audio/alsa/alsalayer.cpp
+++ b/sflphone-common/src/audio/alsa/alsalayer.cpp
@@ -62,7 +62,6 @@ AlsaLayer::AlsaLayer (ManagerImpl* manager)
 
     _audioPlugin = AudioLayer::_manager->audioPreference.getPlugin();
 
-    AudioLayer::_echocancelstate = true;
     AudioLayer::_noisesuppressstate = true;
 
     // captureFile = new ofstream ("probeFile", ofstream::binary);
@@ -253,13 +252,6 @@ bool AlsaLayer::isCaptureActive (void)
         return false;
 }
 
-
-void AlsaLayer::setEchoCancelState (bool state)
-{
-    // if a stream already running
-    AudioLayer::_echocancelstate = state;
-}
-
 void AlsaLayer::setNoiseSuppressState (bool state)
 {
     // if a stream already opened
diff --git a/sflphone-common/src/audio/alsa/alsalayer.h b/sflphone-common/src/audio/alsa/alsalayer.h
index 8d1ca9b0cb..7eebc11d5a 100644
--- a/sflphone-common/src/audio/alsa/alsalayer.h
+++ b/sflphone-common/src/audio/alsa/alsalayer.h
@@ -159,20 +159,6 @@ class AlsaLayer : public AudioLayer
 
         bool isCaptureActive (void);
 
-        /**
-         * Get the echo canceller state
-         * @return true if echo cancel activated
-         */
-        virtual bool getEchoCancelState (void) {
-            return AudioLayer::_echocancelstate;
-        }
-
-        /**
-         * Set the echo canceller state
-         * @param state true if echocancel active, false elsewhere
-         */
-        virtual void setEchoCancelState (bool state);
-
         /**
          * Get the noise suppressor state
          * @return true if noise suppressor activated
diff --git a/sflphone-common/src/audio/audiolayer.h b/sflphone-common/src/audio/audiolayer.h
index 9859398d67..62a4de683b 100644
--- a/sflphone-common/src/audio/audiolayer.h
+++ b/sflphone-common/src/audio/audiolayer.h
@@ -254,18 +254,6 @@ class AudioLayer
             return _recorder;
         }
 
-        /**
-         * Get the echo canceller state
-         * @return true if echo cancel activated
-             */
-        virtual bool getEchoCancelState (void) = 0;
-
-        /**
-         * Set the echo canceller state
-         * @param state true if echocancel active, false elsewhere
-         */
-        virtual void setEchoCancelState (bool state) = 0;
-
         /**
          * Get the noise suppressor state
          * @return true if noise suppressor activated
@@ -367,14 +355,9 @@ class AudioLayer
          */
         ost::Mutex _mutex;
 
-        EchoCancel *_echoCancel;
-        AudioProcessing *_echoCanceller;
-
         DcBlocker *_dcblocker;
         AudioProcessing *_audiofilter;
 
-        bool _echocancelstate;
-
         bool _noisesuppressstate;
 
 };
diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
index 23580d1ed7..e90d0698f1 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
@@ -245,7 +245,6 @@ PulseLayer::PulseLayer (ManagerImpl* manager)
 
     is_started = false;
 
-    AudioLayer::_echocancelstate = true;
     AudioLayer::_noisesuppressstate = true;
 
     byteCounter = 0;
@@ -735,12 +734,6 @@ void PulseLayer::processData (void)
 
 }
 
-void PulseLayer::setEchoCancelState (bool state)
-{
-    // if a stream already running
-    AudioLayer::_echocancelstate = state;
-}
-
 void PulseLayer::setNoiseSuppressState (bool state)
 {
     // if a stream already opened
diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.h b/sflphone-common/src/audio/pulseaudio/pulselayer.h
index 05a725449d..d06bec75b0 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.h
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.h
@@ -191,20 +191,6 @@ class PulseLayer : public AudioLayer
 
         void processData (void);
 
-        /**
-         * Get the echo canceller state
-         * @return true if echo cancel activated
-         */
-        bool getEchoCancelState (void) {
-            return AudioLayer::_echocancelstate;
-        }
-
-        /**
-         * Set the echo canceller state
-         * @param state true if echocancel active, false elsewhere
-         */
-        void setEchoCancelState (bool state);
-
         /**
          * Get the noise suppressor state
          * @return true if noise suppressor activated
diff --git a/sflphone-common/src/dbus/configurationmanager-introspec.xml b/sflphone-common/src/dbus/configurationmanager-introspec.xml
index c2818831f9..f051f3b44b 100755
--- a/sflphone-common/src/dbus/configurationmanager-introspec.xml
+++ b/sflphone-common/src/dbus/configurationmanager-introspec.xml
@@ -545,22 +545,6 @@
 		   </arg>
 	   </method>
 
-	   <method name="getEchoCancelState" tp:name-for-bindings="getEchoCancelState">
-	           <tp:docstring>
-	           </tp:docstring>
-	           <arg type="s" name="state" direction="out">
-		           <tp:docstring>
-			   </tp:docstring>
-	           </arg>
-	   </method>
-
-	   <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="state" direction="in">
-		   </arg>
-	   </method>
-
            <method name="getNoiseSuppressState" tp:name-for-bindings="getNoiseSuppressState">
 	           <tp:docstring>
 		   </tp:docstring>
diff --git a/sflphone-common/src/dbus/configurationmanager.cpp b/sflphone-common/src/dbus/configurationmanager.cpp
index 13ba7a2f5c..2273ce8381 100644
--- a/sflphone-common/src/dbus/configurationmanager.cpp
+++ b/sflphone-common/src/dbus/configurationmanager.cpp
@@ -558,16 +558,6 @@ std::string ConfigurationManager::getCurrentAudioOutputPlugin (void)
     return Manager::instance().getCurrentAudioOutputPlugin();
 }
 
-std::string ConfigurationManager::getEchoCancelState (void)
-{
-    return Manager::instance().getEchoCancelState();
-}
-
-void ConfigurationManager::setEchoCancelState (const std::string& state)
-{
-    Manager::instance().setEchoCancelState (state);
-}
-
 std::string ConfigurationManager::getNoiseSuppressState (void)
 {
     return Manager::instance().getNoiseSuppressState();
diff --git a/sflphone-common/src/dbus/configurationmanager.h b/sflphone-common/src/dbus/configurationmanager.h
index 4691149228..df510731c0 100644
--- a/sflphone-common/src/dbus/configurationmanager.h
+++ b/sflphone-common/src/dbus/configurationmanager.h
@@ -89,8 +89,6 @@ class ConfigurationManager
         std::vector< std::string > getCurrentAudioDevicesIndex();
         int32_t getAudioDeviceIndex (const std::string& name);
         std::string getCurrentAudioOutputPlugin (void);
-        std::string getEchoCancelState (void);
-        void setEchoCancelState (const std::string& state);
         std::string getNoiseSuppressState (void);
         void setNoiseSuppressState (const std::string& state);
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index b738f79a93..5f48c1ae0d 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -2824,30 +2824,6 @@ std::string ManagerImpl::getCurrentAudioOutputPlugin (void)
 }
 
 
-std::string ManagerImpl::getEchoCancelState (void)
-{
-
-    std::string state;
-
-    state = audioPreference.getEchoCancel() ? "enabled" : "disabled";
-
-    return state;
-}
-
-void ManagerImpl::setEchoCancelState (std::string state)
-{
-    _debug ("Manager: Set echo suppress state: %s", state.c_str());
-
-    bool isEnabled = state == "enabled" ? true : false;
-
-    audioPreference.setEchoCancel (isEnabled);
-
-    if (_audiodriver) {
-        _audiodriver->setEchoCancelState (isEnabled);
-    }
-}
-
-
 std::string ManagerImpl::getNoiseSuppressState (void)
 {
 
diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h
index 42ce9c8c32..2e2c729b80 100644
--- a/sflphone-common/src/managerimpl.h
+++ b/sflphone-common/src/managerimpl.h
@@ -619,12 +619,16 @@ class ManagerImpl
          */
         std::string getCurrentAudioOutputPlugin (void);
 
-        std::string getEchoCancelState (void);
-
-        void setEchoCancelState (std::string state);
-
+        /**
+         * Get the noise reduction engin state from
+         * the current audio layer.
+         */
         std::string getNoiseSuppressState (void);
 
+        /**
+         * Set the noise reduction engin state in the current
+         * audio layer.
+         */
         void setNoiseSuppressState (std::string state);
 
         /**
diff --git a/sflphone-common/src/preferences.cpp b/sflphone-common/src/preferences.cpp
index ddc8fd7da7..d4b1131be9 100644
--- a/sflphone-common/src/preferences.cpp
+++ b/sflphone-common/src/preferences.cpp
@@ -489,7 +489,6 @@ AudioPreference::AudioPreference() : _cardin (atoi (ALSA_DFT_CARD)) // ALSA_DFT_
         , _volumemic (atoi (DFT_VOL_SPKR_STR)) // DFT_VOL_SPKR_STR
         , _volumespkr (atoi (DFT_VOL_MICRO_STR)) // DFT_VOL_MICRO_STR
         , _noisereduce (true)
-        , _echocancel (true)
 {
 
 }
@@ -536,8 +535,6 @@ void AudioPreference::serialize (Conf::YamlEmitter *emitter)
     spkrstr << _volumespkr;
     Conf::ScalarNode volumespkr (spkrstr.str()); //: 100
     Conf::ScalarNode noise (_noisereduce ? "true":"false");
-    Conf::ScalarNode echo (_echocancel ? "true":"false");
-
     preferencemap.setKeyValue (recordpathKey, &recordpath);
     preferencemap.setKeyValue (volumemicKey, &volumemic);
     preferencemap.setKeyValue (volumespkrKey, &volumespkr);
@@ -556,7 +553,6 @@ void AudioPreference::serialize (Conf::YamlEmitter *emitter)
     pulsepreferencemap.setKeyValue (deviceRingtoneKey, &deviceRingtone);
 
     preferencemap.setKeyValue (noiseReduceKey, &noise);
-    preferencemap.setKeyValue (echocancelKey, &echo);
 
     emitter->serializeAudioPreference (&preferencemap);
 
@@ -603,13 +599,6 @@ void AudioPreference::unserialize (Conf::MappingNode *map)
         val = NULL;
     }
 
-    val = (Conf::ScalarNode *) (map->getValue (echocancelKey));
-
-    if (val) {
-        _echocancel = (val->getValue() == "true");
-        val = NULL;
-    }
-
     alsamap = (Conf::MappingNode *) (map->getValue ("alsa"));
 
     // did found alsa
diff --git a/sflphone-common/src/preferences.h b/sflphone-common/src/preferences.h
index eb22c6cc3a..41d9053ba8 100644
--- a/sflphone-common/src/preferences.h
+++ b/sflphone-common/src/preferences.h
@@ -87,8 +87,6 @@ const Conf::Key recordpathKey ("recordpath");//: /home/msavard/Bureau
 const Conf::Key volumemicKey ("volumemic");//:  100
 const Conf::Key volumespkrKey ("volumespkr");//: 100
 const Conf::Key noiseReduceKey ("noiseReduce");
-const Conf::Key echocancelKey ("echocancel");
-
 
 // shortcut preferences
 const Conf::Key hangupShortKey ("hangUp");
@@ -524,14 +522,6 @@ class AudioPreference : public Serializable
             _noisereduce = noise;
         }
 
-        bool getEchoCancel (void) {
-            return _echocancel;
-        }
-
-        void setEchoCancel (bool echo) {
-            _echocancel = echo;
-        }
-
     private:
 
         // alsa preference
@@ -553,7 +543,6 @@ class AudioPreference : public Serializable
         int _volumespkr; //: 100
 
         bool _noisereduce;
-        bool _echocancel;
 };
 
 
-- 
GitLab