[pulseaudio-discuss] [PATCH v1 0/3] bluetooth: Headset port availability

David Henningsson david.henningsson at canonical.com
Mon Feb 4 23:44:12 PST 2013


On 02/04/2013 05:06 PM, Tanu Kaskinen wrote:
> On Mon, 2013-02-04 at 16:30 +0100, David Henningsson wrote:
>> On 02/04/2013 04:07 PM, Tanu Kaskinen wrote:
>>> On Mon, 2013-02-04 at 15:50 +0100, David Henningsson wrote:
>>>> If A2DP and HSP audio go through different sound cards, we have no
>>>> possibility to merge them right now.
>>>>
>>>> Not that I have ever seen such a setup. Can it happen on desktop/laptop
>>>> computers you buy in the store, or only on highly specialised embedded
>>>> environments (which are likely to have their own UI anyway)?
>>>
>>> I have no idea about desktop/laptop machines. I know that 100% of
>>> smartphones that I've worked with (i.e. 3 Nokia models) have used ALSA
>>> for HSP,
>>
>> ...and at the same time BlueZ for A2DP? Or everything through ALSA?
>
> At the same time BlueZ for A2DP.
>
>>> but I expect there to be phones that use the "normal"
>>> everything-through-BlueZ setup. I don't consider phone UIs any more
>>> specialized than desktop UIs: in both cases, one UI codebase should work
>>> with a wide variety of hardware. I don't think the Ubuntu Phone UI
>>> developers, for example, want to care about the Bluetooth hardware
>>> details.
>>
>> Okay, so how would PulseAudio autodetect that HSP and A2DP, even though
>> belonging to different cards, actually are connections to the same
>> physical headset?
>
> If the phone uses PulseAudio path configuration files for the ALSA
> configuration, the Bluetooth port could be flagged with a property. If
> the phone uses UCM, I think the UCM configuration should provide the
> information, and the port flagged accordingly. If an ALSA port is
> flagged that way, I guess alsa-card should not create a routing endpoint
> in that case. The endpoint would be created by module-bluetooth-device.

Routing endpoints aside, if it is a technical impossibility / major 
inconvenience to have a single port for a single physical entity, one 
could have a port property "master-port" which would link the ports 
together.

But how is exclusivity handled here? I mean, how would you encode the 
fact that A2DP should not be used at the same time as HSP, if they don't 
belong to the same card?

I mean, one of the basic properties of two different cards is that they 
are independent of each other, if this is not the case, should we 
consider merging the bluetooth and ALSA cards instead? (That is just 
brainstorming, not an actual proposal)

>
> module-bluetooth-device in turn knows whether to use the ALSA port for
> its routing endpoint based on the Routing property of MediaTransport1.
> If the routing is "PCM" (as opposed to the normal "HCI"), it should
> search for an ALSA port with the magic property, and if found, associate
> that port with the new routing endpoint.
>



-- 
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list