aboutsummaryrefslogtreecommitdiffstats
path: root/src/empathy-audio-utils.c
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd@luon.net>2012-08-26 22:20:56 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-08-29 16:12:31 +0800
commit6e3ea627e70266d8c3739300e900a5b7bc0763bc (patch)
tree464aebbea115de0dc148ca834c9b3f2d97d344d8 /src/empathy-audio-utils.c
parentf7ab6457995133ccd3fd32ce028c6c8cb1e68322 (diff)
downloadgsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar.gz
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar.bz2
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar.lz
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar.xz
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.tar.zst
gsoc2013-empathy-6e3ea627e70266d8c3739300e900a5b7bc0763bc.zip
Remove libempathy-gtk dependency on gstreamer
libempathy-gtk uses gstreamer directly only for one utility function used by empathy-call. Split this one out into a call specific utility file.
Diffstat (limited to 'src/empathy-audio-utils.c')
-rw-r--r--src/empathy-audio-utils.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/empathy-audio-utils.c b/src/empathy-audio-utils.c
new file mode 100644
index 000000000..323ef8edf
--- /dev/null
+++ b/src/empathy-audio-utils.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2011 Collabora Ltd.
+ *
+ * The code contained in this file is free software; you can redistribute
+ * it and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either version
+ * 2.1 of the License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this code; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Authors: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
+ */
+
+#include "config.h"
+
+#include <pulse/pulseaudio.h>
+
+#include "empathy-audio-utils.h"
+
+#include <libempathy/empathy-gsettings.h>
+
+#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
+#include <libempathy/empathy-debug.h>
+
+void
+empathy_audio_set_stream_properties (GstElement *element,
+ gboolean echo_cancellation)
+{
+ GstStructure *props;
+ GSettings *gsettings_call;
+ gboolean echo_cancellation_setting;
+
+ gsettings_call = g_settings_new (EMPATHY_PREFS_CALL_SCHEMA);
+
+ echo_cancellation_setting = g_settings_get_boolean (gsettings_call,
+ EMPATHY_PREFS_CALL_ECHO_CANCELLATION);
+
+ DEBUG ("Echo cancellation: element allowed: %s, user enabled: %s",
+ echo_cancellation ? " yes" : "no",
+ echo_cancellation_setting ? " yes" : "no");
+
+
+ props = gst_structure_new ("props",
+ PA_PROP_MEDIA_ROLE, G_TYPE_STRING, "phone",
+ NULL);
+
+ if (echo_cancellation && echo_cancellation_setting)
+ {
+ gst_structure_set (props,
+ "filter.want", G_TYPE_STRING, "echo-cancel",
+ NULL);
+ }
+
+ g_object_set (element, "stream-properties", props, NULL);
+ gst_structure_free (props);
+
+ g_object_unref (gsettings_call);
+}