Skip to content

bluez5: use separate routes for HFP and A2DP

P V requested to merge pvir/pipewire:hfp-routes into master

The A2DP and HFP profiles may have different volume curves, so trying to convert volumes between the two can produce undesirable volume spikes. For example, when one of them is using hardware volume and the other software.

Fix by separating HFP and A2DP routes.


The HFP/HSP HW volume on the device is not necessarily what we think it is.

Sync the device volume to our value at connect time.


When emitting node, get initial volumes from transport hardware volume, if available.

The session manager usually overrides these immediately with saved values, but it's better to show the HW volume when the node first appears.


User changing volume via headset buttons should be treated on the same level as changing from desktop UI. Also initial headset volume should be considered saved (even though session managers currently ignore the initial route values on route restore).

Mark route as saved on volume events.

Merge request reports