[pulseaudio-discuss] [PATCH] alsa-ucm: setting default active port based on jacks state

Felipe Tonello eu at felipetonello.com
Tue Aug 27 10:06:23 PDT 2013


Hi David,

On Tue, Aug 27, 2013 at 12:27 AM, David Henningsson
<david.henningsson at canonical.com> wrote:
> On 08/26/2013 08:15 PM, Felipe F. Tonello wrote:
>> From: "Felipe F. Tonello" <eu at felipetonello.com>
>>
>> This fixes a bug when switching profiles under ALSA UCM. If a jack, hence a
>> port, was previsouly active, when PA performed a profile switch, the jack
>> would continue to be available but not active.
>>
>> This patche ensures that it activates a port if a jack is previously connected.
>
> Thanks,
> but I'm not sure this is the right way to do it.
>
> It feels like setting the active port is more like something for a
> policy module (e g module-switch-on-port-available), rather than being
> hardcoded in the module itself.

With today's implementation it doesn't work, since if you switch
profiles the jack won't change its state, so
module-switch-on-port-available will not notice that.

What it could be done is to ensure when you create a sink/source, to
report jack state, but this is a local function in alsa-module-card.
It would need more hack to make it work.

Also, this is not hardcode the port, since the sink/source it self
does that, it checks if someone else set active_port before, otherwise
sets itself.

IHMO this patch is less intrusive.

>
> Also, what if two jacks are both available at the time of the profile
> switch?

Like I said on the second message, I re-implemented it sorting by priority.

PS: One comment about module-switch-on-port-available is that it needs
to be loaded before module-alsa-card(also udev detect, if using it) in
order to switch to the port if a jack was connected before PA.

Felipe Tonello


More information about the pulseaudio-discuss mailing list