Skip to content
  • Marijn Suijten's avatar
    bluetooth: Update source software volume on AVRCP SetAbsoluteVolume · 4e8c7fe4
    Marijn Suijten authored
    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.
    4e8c7fe4