[pulseaudio-discuss] [RFC v2 3/6] bluetooth: Restrict loopback to hfgw and a2dp_source
Frédéric Dalleau
frederic.dalleau at linux.intel.com
Fri Jan 27 02:08:25 PST 2012
---
src/modules/bluetooth/module-bluetooth-policy.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/src/modules/bluetooth/module-bluetooth-policy.c b/src/modules/bluetooth/module-bluetooth-policy.c
index c9639f5..e542d97 100644
--- a/src/modules/bluetooth/module-bluetooth-policy.c
+++ b/src/modules/bluetooth/module-bluetooth-policy.c
@@ -82,6 +82,14 @@ static pa_hook_result_t sink_put_hook_callback(pa_core *c, pa_sink *sink, void*
return PA_HOOK_OK;
}
+ /* Restrict to A2DP sink role and HFP HF role */
+ if ((s = pa_proplist_gets(sink->proplist, "bluetooth.protocol"))) {
+ if (!pa_streq(s, "hfgw") && !pa_streq(s, "a2dp_source")) {
+ pa_log_debug("Profile %s cannot be selected for loopback", s);
+ return PA_HOOK_OK;
+ }
+ }
+
/* Prevent loopback default source over default sink */
defsink = pa_namereg_get_default_sink(c);
if (defsink == sink) {
@@ -143,6 +151,14 @@ static pa_hook_result_t source_put_hook_callback(pa_core *c, pa_source *source,
return PA_HOOK_OK;
}
+ /* Restrict to A2DP sink role and HFP HF role */
+ if ((s = pa_proplist_gets(source->proplist, "bluetooth.protocol"))) {
+ if (!pa_streq(s, "hfgw") && !pa_streq(s, "a2dp_source")) {
+ pa_log_debug("Profile %s cannot be selected for loopback", s);
+ return PA_HOOK_OK;
+ }
+ }
+
/* Prevent loopback default source over default sink */
defsource = pa_namereg_get_default_source(c);
if (defsource == source) {
--
1.7.5.4
More information about the pulseaudio-discuss
mailing list