module-default-nodes: prioritize previous configured defaults

Merged P V requested to merge pvir/wireplumber:default-node-stack into master

The node priorities are difficult to configure for users, and are not necessarily meaningful for them.

When there is no configured default node, or the configured default node does not exist, prioritize previously configured default nodes over the automatic node priorities.

Keep track of a stack of previous configured nodes, and update the stack when the configured node changes.

Don't include profile name in node names for HFP and A2DP. Instead, append the id number from the spa.bluez5 backend.

This allows outputs directed to the Bluetooth device to remain there when switching profiles between A2DP and HFP. The backend takes care of choosing the id numbers appropriately.

See eg #308

I don't like the special handling for BT devices, but at the moment don't see a better way... It seems much better to instead have the BT node names be the same for A2DP and HFP.

Edited by P V

Merge request reports