Mercurial > pidgin.yaz
comparison libpurple/media/backend-fs2.c @ 31824: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 |
comparison
equal
deleted
inserted
replaced
31823:d72d728226dc | 31824:4f2aac5967bb |
---|---|
153 PROP_MEDIA, | 153 PROP_MEDIA, |
154 }; | 154 }; |
155 | 155 |
156 static void | 156 static void |
157 purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self) | 157 purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self) |
158 { | 158 {} |
159 PurpleMediaBackendFs2Private *priv = | |
160 PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); | |
161 | |
162 priv->silence_threshold = purple_prefs_get_int( | |
163 "/purple/media/audio/silence_threshold") / 100.0; | |
164 } | |
165 | 159 |
166 static gboolean | 160 static gboolean |
167 event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad) | 161 event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad) |
168 { | 162 { |
169 if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM | 163 if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM |
815 | 809 |
816 name = gst_element_get_name(src); | 810 name = gst_element_get_name(src); |
817 | 811 |
818 if (!strncmp(name, "sendlevel_", 10)) { | 812 if (!strncmp(name, "sendlevel_", 10)) { |
819 session = get_session(self, name+10); | 813 session = get_session(self, name+10); |
820 percent = gst_msg_db_to_percent(msg, "decay"); | 814 if (priv->silence_threshold > 0) { |
821 g_object_set(session->srcvalve, | 815 percent = gst_msg_db_to_percent(msg, "decay"); |
822 "drop", (percent < priv->silence_threshold), NULL); | 816 g_object_set(session->srcvalve, |
817 "drop", (percent < priv->silence_threshold), NULL); | |
818 } | |
823 } | 819 } |
824 | 820 |
825 g_free(name); | 821 g_free(name); |
826 | 822 |
827 if (!g_signal_has_handler_pending(priv->media, level_id, 0, FALSE)) | 823 if (!g_signal_has_handler_pending(priv->media, level_id, 0, FALSE)) |
1252 | 1248 |
1253 if (priv->conference == NULL) { | 1249 if (priv->conference == NULL) { |
1254 purple_debug_error("backend-fs2", "Conference == NULL\n"); | 1250 purple_debug_error("backend-fs2", "Conference == NULL\n"); |
1255 return FALSE; | 1251 return FALSE; |
1256 } | 1252 } |
1253 | |
1254 if (purple_account_get_silence_suppression( | |
1255 purple_media_get_account(priv->media))) | |
1256 priv->silence_threshold = purple_prefs_get_int( | |
1257 "/purple/media/audio/silence_threshold") / 100.0; | |
1258 else | |
1259 priv->silence_threshold = 0; | |
1257 | 1260 |
1258 pipeline = purple_media_manager_get_pipeline( | 1261 pipeline = purple_media_manager_get_pipeline( |
1259 purple_media_get_manager(priv->media)); | 1262 purple_media_get_manager(priv->media)); |
1260 | 1263 |
1261 if (pipeline == NULL) { | 1264 if (pipeline == NULL) { |