Arduino A2DP
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
A2DPVolumeControl Class Referenceabstract

Abstract class for handling of the volume of the audio data. More...

#include <A2DPVolumeControl.h>

Inheritance diagram for A2DPVolumeControl:
A2DPDefaultVolumeControl A2DPLinearVolumeControl A2DPNoVolumeControl A2DPSimpleExponentialVolumeControl

Public Member Functions

 A2DPVolumeControl ()=default
 Default constructor.
 
int32_t get_volume_factor ()
 Gets the current volume factor. More...
 
int32_t get_volume_factor_max ()
 Gets the maximum volume factor value. More...
 
void set_enabled (bool enabled)
 Enables or disables volume control. More...
 
void set_mono_downmix (bool enabled)
 Enables or disables mono downmix. More...
 
virtual void set_volume (uint8_t volume)=0
 Sets the volume level (pure virtual function) More...
 
virtual void update_audio_data (Frame *data, uint16_t frameCount)
 Updates audio data with volume control and optional mono downmix. More...
 
virtual void update_audio_data (uint8_t *data, uint16_t byteCount)
 Updates audio data with volume control and optional mono downmix. More...
 

Protected Member Functions

int32_t clip (int32_t value)
 Clips audio sample value to prevent overflow. More...
 

Protected Attributes

bool is_volume_used = false
 Flag indicating if volume control is enabled.
 
bool mono_downmix = false
 Flag indicating if mono downmix is enabled.
 
int32_t volumeFactor = 1
 Current volume factor.
 
int32_t volumeFactorClippingLimit = 0xfff
 Volume factor clipping limit (4095)
 
int32_t volumeFactorMax = 0x1000
 Maximum volume factor (4096)
 

Detailed Description

Abstract class for handling of the volume of the audio data.

Author
Phil Schatzmann

Member Function Documentation

◆ clip()

int32_t A2DPVolumeControl::clip ( int32_t  value)
inlineprotected

Clips audio sample value to prevent overflow.

Parameters
valueInput audio sample value
Returns
Clipped value within valid 16-bit range (-32768 to 32767)

◆ get_volume_factor()

int32_t A2DPVolumeControl::get_volume_factor ( )
inline

Gets the current volume factor.

Returns
Volume factor in the range of 0 to 4096

◆ get_volume_factor_max()

int32_t A2DPVolumeControl::get_volume_factor_max ( )
inline

Gets the maximum volume factor value.

Returns
Maximum factor value (4096)

◆ set_enabled()

void A2DPVolumeControl::set_enabled ( bool  enabled)
inline

Enables or disables volume control.

Parameters
enabledTrue to enable volume control, false to disable

◆ set_mono_downmix()

void A2DPVolumeControl::set_mono_downmix ( bool  enabled)
inline

Enables or disables mono downmix.

Parameters
enabledTrue to enable mono downmix, false to disable

◆ set_volume()

virtual void A2DPVolumeControl::set_volume ( uint8_t  volume)
pure virtual

Sets the volume level (pure virtual function)

Parameters
volumeVolume level (0-127)

Implemented in A2DPNoVolumeControl, A2DPLinearVolumeControl, A2DPSimpleExponentialVolumeControl, and A2DPDefaultVolumeControl.

◆ update_audio_data() [1/2]

virtual void A2DPVolumeControl::update_audio_data ( Frame *  data,
uint16_t  frameCount 
)
inlinevirtual

Updates audio data with volume control and optional mono downmix.

Parameters
dataPointer to audio frame data
frameCountNumber of frames to process

Reimplemented in A2DPNoVolumeControl.

◆ update_audio_data() [2/2]

virtual void A2DPVolumeControl::update_audio_data ( uint8_t *  data,
uint16_t  byteCount 
)
inlinevirtual

Updates audio data with volume control and optional mono downmix.

Parameters
dataPointer to raw audio data (uint8_t)
byteCountNumber of bytes to process

The documentation for this class was generated from the following file: