bluetooth: Update source software volume on AVRCP SetAbsoluteVolume
The A2DP spec mandates that the audio rendering device - the device receiving audio, in our case a `pa_source` - is responsible for performing attenuation: AVRCP v1.6.2, §5.8: The SetAbsoluteVolume command is used to set an absolute volume to be used by the rendering device. BlueZ models this call as a change of the `Volume` property on the `org.bluez.MediaTransport1` interface. Supporting Absolute Volume is optional but BlueZ unconditionally reports feature category 2 in its profile, mandating support. Hence remote devices (ie. a phone) playing back audio to a machine running PulseAudio assume volume is to be changed through SetAbsoluteVolume, without performing any local attenuation. Future changes will implement this feature the other way around: setting an initial value for the `Volume` property as well as propagating `pa_source` volume changes back to the peer.
Showing with 45 additions and 0 deletions