roar_vs_volume_mono(3) Get or set volume for audio stream

Other Alias

roar_vs_volume_get, roar_vs_volume_stereo


#include <roaraudio.h>

int roar_vs_volume_get (roar_vs_t * vss, float * l, float * r, int * error);

int roar_vs_volume_mono (roar_vs_t * vss, float c, int * error);

int roar_vs_volume_stereo (roar_vs_t * vss, float l, float r, int * error);


Those functions are used to get or set volume for the given stream.

roar_vs_volume_get() gets the volume for the given stream in stereo form as a left and a right component (L/R). If you need the mono volume just devide the sum of both by two. See examples below.

roar_vs_volume_mono() sets the mono volume for the stream. Balance information is not kept.

roar_vs_volume_stereo() sets the stereo volume for the stream as left and right component (L/R).


The VS object for which volume is get or set.

l, r, c
The volume for left, right or center (mono) channel. Value is a float in range zero to one. Zero means this channel is fully muted. One means the channel is passed without altering the amplitude.

Small numerical errors are detected and corrected. Bigger errors will result in a out of range error.

Note that to mute the stream you MUST NOT use volume setting but roar_vs_mute(3).

This is a pointer to a integer used to store the error value in case of error. This can be NULL if not used but it is very recommended to use this error value to report good error messages to the user.


On success these calls return 0. On error, -1 is returned.


Getting mono volume:

 float l, r, c;
 int err;

 if ( roar_vs_volume_get(vss, &l, &r, &err) == -1 ) {
  /* handle error */
 c = (l + r)/2.;