UPnP Services Used:
Rendering Control Service (RCS)
Dynamic configurations of renderer attributes are done, in an UPnP architecture, by using some rendering control actions. In particular, for audio-only streams, the number of actions interested in an application is restricted to a few elements (all optionals). For every 'getter', there is also the related 'setter'. In an audio device, like a wireless speaker, the only parameter that a user may want to control is essentially the volume level, or the total presence/absence of sound. Note that, with respect than AVTS, now all actions refer to a given object using two variables: one is again the InstanceID number, the other (and new) is the channel type. A channel is, in RCS world, a string that identifies the speaker spatial position (front-rear, left-right, top-bottom, ecc.); by default, if there's no other channels, the value is 'Master' (no spatial information)*.
Action Name | Parameters / Return Type |
---|---|
GetMute | retrieve current channel and current stream speaker mute status in a boolean value ('true' means 'audio off') |
SetMute | update current channel and current stream speaker mute status (the Mute state variable) |
GetVolume | retrieve current channel and current stream volume level in an unsigned (integer) value |
SetVolume | update current channel and current stream speaker volume level; allowed range is '0' to the maximum value supported by renderer device (minimum step size is '1') |
[*] For example, on a Raspberry Pi system like the one hosting the media renderer for this project, the channel used is 'PCM' (stereo left and right speaker channels)