[empathy] Add Echo cancellation preference



commit 4121205c56393f8d51d59237adb001c108628365
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Mon Aug 15 12:15:25 2011 +0200

    Add Echo cancellation preference

 data/org.gnome.Empathy.gschema.xml.in |    5 +++++
 libempathy/empathy-gsettings.h        |    1 +
 src/empathy-preferences.c             |    8 ++++++++
 src/empathy-preferences.ui            |   13 +++++++++++++
 4 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/data/org.gnome.Empathy.gschema.xml.in b/data/org.gnome.Empathy.gschema.xml.in
index 3f887fe..f51b51b 100644
--- a/data/org.gnome.Empathy.gschema.xml.in
+++ b/data/org.gnome.Empathy.gschema.xml.in
@@ -236,6 +236,11 @@ present them to the user immediately.</_description>
       <_summary>Camera device</_summary>
       <_description>Default camera device to use in video calls, e.g. /dev/video0.</_description>
     </key>
+    <key name="echo-cancellation" type="b">
+      <default>true</default>
+      <_summary>Echo cancellation support</_summary>
+      <_description>Whether to enable Pulseaudio's echo cancellation filter.</_description>
+    </key>
   </schema>
   <schema id="org.gnome.Empathy.hints" path="/org/gnome/empathy/hints/">
     <key name="close-main-window" type="b">
diff --git a/libempathy/empathy-gsettings.h b/libempathy/empathy-gsettings.h
index d6e5d91..96c869d 100644
--- a/libempathy/empathy-gsettings.h
+++ b/libempathy/empathy-gsettings.h
@@ -54,6 +54,7 @@ G_BEGIN_DECLS
 #define EMPATHY_PREFS_CALL_SCHEMA EMPATHY_PREFS_SCHEMA ".call"
 #define EMPATHY_PREFS_CALL_SOUND_VOLUME            "volume"
 #define EMPATHY_PREFS_CALL_CAMERA_DEVICE           "camera-device"
+#define EMPATHY_PREFS_CALL_ECHO_CANCELLATION       "echo-cancellation"
 
 #define EMPATHY_PREFS_CHAT_SCHEMA EMPATHY_PREFS_SCHEMA ".conversation"
 #define EMPATHY_PREFS_CHAT_SHOW_SMILEYS            "graphical-smileys"
diff --git a/src/empathy-preferences.c b/src/empathy-preferences.c
index e593c6f..5618cae 100644
--- a/src/empathy-preferences.c
+++ b/src/empathy-preferences.c
@@ -88,6 +88,7 @@ struct _EmpathyPreferencesPriv {
 
 	GtkWidget *scale_call_volume;
 	GtkWidget *adj_call_volume;
+	GtkWidget *echo_cancellation;
 
 	GtkWidget *treeview_spell_checker;
 
@@ -280,6 +281,12 @@ preferences_setup_widgets (EmpathyPreferences *preferences)
 			 "value",
 			 G_SETTINGS_BIND_DEFAULT);
 
+	g_settings_bind (priv->gsettings_call,
+			 EMPATHY_PREFS_CALL_ECHO_CANCELLATION,
+			 priv->echo_cancellation,
+			 "active",
+			 G_SETTINGS_BIND_DEFAULT);
+
 	g_settings_bind (priv->gsettings,
 			 EMPATHY_PREFS_AUTOCONNECT,
 			 priv->checkbutton_autoconnect,
@@ -1197,6 +1204,7 @@ empathy_preferences_init (EmpathyPreferences *preferences)
 		"checkbutton_location_resource_gps", &priv->checkbutton_location_resource_gps,
 		"call_volume_scale", &priv->scale_call_volume,
 		"call_volume_adjustment", &priv->adj_call_volume,
+		"call_echo_cancellation", &priv->echo_cancellation,
 		NULL);
 	g_free (filename);
 
diff --git a/src/empathy-preferences.ui b/src/empathy-preferences.ui
index f8dc0a0..ab06b21 100644
--- a/src/empathy-preferences.ui
+++ b/src/empathy-preferences.ui
@@ -561,6 +561,19 @@
                         <property name="position">1</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkCheckButton" id="call_echo_cancellation">
+                        <property name="label">_Echo Cancellation</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="use_underline">True</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
               </object>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]