Volume control
Audio

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_t * | gavl_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...

## 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

  ctrl | A 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

  ctrl | A volume control
  format | The 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

  ctrl | A volume control
  volume | Volume 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

  ctrl | A volume control
  frame | An audio frame