gavl
Typedefs | Functions
Volume control

Simple volume control. More...

Typedefs

typedef struct gavl_volume_control_s gavl_volume_control_t
 Opaque structure for a volume control. More...
 

Functions

GAVL_PUBLIC gavl_volume_control_tgavl_volume_control_create ()
 Create volume control. More...
 
GAVL_PUBLIC void gavl_volume_control_destroy (gavl_volume_control_t *ctrl)
 Destroys a volume control and frees all associated memory. More...
 
GAVL_PUBLIC void gavl_volume_control_set_format (gavl_volume_control_t *ctrl, const gavl_audio_format_t *format)
 Set format for a volume control. More...
 
GAVL_PUBLIC void gavl_volume_control_set_volume (gavl_volume_control_t *ctrl, float volume)
 Set volume for a volume control. More...
 
GAVL_PUBLIC void gavl_volume_control_apply (gavl_volume_control_t *ctrl, gavl_audio_frame_t *frame)
 Apply a volume control for an audio frame. More...
 
GAVL_PUBLIC int gavl_volume_to_int (float volume, float one, int steps)
 Convert an audio volume (in dB) to an integer. More...
 
GAVL_PUBLIC float gavl_volume_to_float (int volume, float one, int steps)
 Convert an integer audio volume to a float (in dB) More...
 

Detailed Description

Simple volume control.

This is a very simple software volume control.

Typedef Documentation

◆ gavl_volume_control_t

typedef struct gavl_volume_control_s gavl_volume_control_t

Opaque structure for a volume control.

You don't want to know what's inside.

Function Documentation

◆ gavl_volume_control_create()

GAVL_PUBLIC gavl_volume_control_t* gavl_volume_control_create ( )

Create volume control.

Returns
A newly allocated volume control

◆ gavl_volume_control_destroy()

GAVL_PUBLIC void gavl_volume_control_destroy ( gavl_volume_control_t ctrl)

Destroys a volume control and frees all associated memory.

Parameters
ctrlA volume control

◆ gavl_volume_control_set_format()

GAVL_PUBLIC void gavl_volume_control_set_format ( gavl_volume_control_t ctrl,
const gavl_audio_format_t format 
)

Set format for a volume control.

Parameters
ctrlA volume control
formatThe format subsequent frames will be passed with This function can be called multiple times with one instance

◆ gavl_volume_control_set_volume()

GAVL_PUBLIC void gavl_volume_control_set_volume ( gavl_volume_control_t ctrl,
float  volume 
)

Set volume for a volume control.

Parameters
ctrlA volume control
volumeVolume in dB (must be <= 0.0 to prevent overflows)

◆ gavl_volume_control_apply()

GAVL_PUBLIC void gavl_volume_control_apply ( gavl_volume_control_t ctrl,
gavl_audio_frame_t frame 
)

Apply a volume control for an audio frame.

Parameters
ctrlA volume control
frameAn audio frame

◆ gavl_volume_to_int()

GAVL_PUBLIC int gavl_volume_to_int ( float  volume,
float  one,
int  steps 
)

Convert an audio volume (in dB) to an integer.

Parameters
volumedB value
oneThe dB value corresponding to an integer value of 1
stepsThe number of steps
Returns
Volume as integer

◆ gavl_volume_to_float()

GAVL_PUBLIC float gavl_volume_to_float ( int  volume,
float  one,
int  steps 
)

Convert an integer audio volume to a float (in dB)

Parameters
volumeInteger value
oneThe dB value corresponding to an integer value of 1
stepsThe number of steps
Returns
Volume in dB