diff libpurple/media/backend-fs2.c @ 31375:4f2aac5967bb

Make the simple silence suppression stuff optional per-account. Fixes #13180. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author jakub.adam@ktknet.cz
date Sun, 13 Mar 2011 18:17:14 +0000
parents 017b7ff5a894
children 3fb443b6460c
line wrap: on
line diff
--- a/libpurple/media/backend-fs2.c	Sun Mar 13 18:14:04 2011 +0000
+++ b/libpurple/media/backend-fs2.c	Sun Mar 13 18:17:14 2011 +0000
@@ -155,13 +155,7 @@
 
 static void
 purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self)
-{
-	PurpleMediaBackendFs2Private *priv =
-			PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self);
-
-	priv->silence_threshold = purple_prefs_get_int(
-			"/purple/media/audio/silence_threshold") / 100.0;
-}
+{}
 
 static gboolean
 event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad)
@@ -817,9 +811,11 @@
 
 		if (!strncmp(name, "sendlevel_", 10)) {
 			session = get_session(self, name+10);
-			percent = gst_msg_db_to_percent(msg, "decay");
-			g_object_set(session->srcvalve,
-					"drop", (percent < priv->silence_threshold), NULL);
+			if (priv->silence_threshold > 0) {
+				percent = gst_msg_db_to_percent(msg, "decay");
+				g_object_set(session->srcvalve,
+						"drop", (percent < priv->silence_threshold), NULL);
+			}
 		}
 
 		g_free(name);
@@ -1255,6 +1251,13 @@
 		return FALSE;
 	}
 
+	if (purple_account_get_silence_suppression(
+				purple_media_get_account(priv->media)))
+		priv->silence_threshold = purple_prefs_get_int(
+				"/purple/media/audio/silence_threshold") / 100.0;
+	else
+		priv->silence_threshold = 0;
+
 	pipeline = purple_media_manager_get_pipeline(
 			purple_media_get_manager(priv->media));