class Gain

Defined at line 24 of file ../../src/media/audio/audio_core/mixer/gain.h

A class containing factors used for software scaling in the mixer pipeline.

Not thread safe.

Public Members

static const AScale kMuteScale

Public Methods

float CombineGains (float gain_db_a, float gain_db_b)

Defined at line 30 of file ../../src/media/audio/audio_core/mixer/gain.h

void Gain ()

Defined at line 42 of file ../../src/media/audio/audio_core/mixer/gain.h

void Gain (Limits limits)

Defined at line 44 of file ../../src/media/audio/audio_core/mixer/gain.h

float GetGainDb ()

Defined at line 58 of file ../../src/media/audio/audio_core/mixer/gain.h

float GetUnadjustedGainDb ()

Defined at line 62 of file ../../src/media/audio/audio_core/mixer/gain.h

float GetSourceGainDb ()

Returns the current gain from each control, including mute effects.

Defined at line 72 of file ../../src/media/audio/audio_core/mixer/gain.h

float GetDestGainDb ()

Defined at line 76 of file ../../src/media/audio/audio_core/mixer/gain.h

float GetGainAdjustmentDb ()

Defined at line 80 of file ../../src/media/audio/audio_core/mixer/gain.h

bool IsSilent ()

These functions determine which performance-optimized templatized functions we use for a Mix.

Thus they include knowledge about the foreseeable future (e.g. ramping).

IsSilent: Muted OR (current gain is silent AND not ramping toward >kMinGainDb).

IsUnity: Current gain == kUnityGainDb AND not ramping.

IsRamping: Remaining ramp duration > 0 AND not muted.

Defined at line 92 of file ../../src/media/audio/audio_core/mixer/gain.h

bool IsUnity ()

Defined at line 105 of file ../../src/media/audio/audio_core/mixer/gain.h

bool IsRamping ()

Defined at line 114 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetSourceGain (float gain_db)

Manipulates the Source control. This is the only control where Mute is currently needed/used.

Defined at line 120 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetSourceMute (bool mute)

Defined at line 121 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetSourceGainWithRamp (float gain_db, zx::duration duration, fuchsia::media::audio::RampType ramp_type)

Defined at line 123 of file ../../src/media/audio/audio_core/mixer/gain.h

void CompleteSourceRamp ()

Defined at line 129 of file ../../src/media/audio/audio_core/mixer/gain.h

AScale GetGainScale ()

Retrieves the overall gain-scale, combining the Source, Dest, and Adjustment controls.

Defined at line 218 of file ../../src/media/audio/audio_core/mixer/gain.cc

AScale GetUnadjustedGainScale ()

Like GetGainScale, but ignore the adjustment control.

Defined at line 261 of file ../../src/media/audio/audio_core/mixer/gain.cc

AScale CalculateScaleArray (AScale * scale_arr, int64_t num_frames, const TimelineRate & rate)

Calculates and return an array of gain-scale values for the next `num_frames`.

The calculation is performed in two steps: First, the Source and Dest controls are combined and

the maximum value is saved. Second, the Adjustment control is added. The return value is the

max value computed in the first type (the max value from the combination of Source and Dest).

Defined at line 133 of file ../../src/media/audio/audio_core/mixer/gain.cc

void SetDestGain (float gain_db)

Manipulates the Dest control.

Defined at line 137 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetDestGainWithRamp (float gain_db, zx::duration duration, fuchsia::media::audio::RampType ramp_type)

Defined at line 139 of file ../../src/media/audio/audio_core/mixer/gain.h

void CompleteDestRamp ()

Defined at line 145 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetGainAdjustment (float gain_db)

Manipulates the Adjustment control.

Defined at line 153 of file ../../src/media/audio/audio_core/mixer/gain.h

void SetGainAdjustmentWithRamp (float gain_db, zx::duration duration, fuchsia::media::audio::RampType ramp_type)

Defined at line 155 of file ../../src/media/audio/audio_core/mixer/gain.h

void CompleteAdjustmentRamp ()

Defined at line 161 of file ../../src/media/audio/audio_core/mixer/gain.h

void Advance (int64_t num_frames, const TimelineRate & rate)

Advances the state of all in-progress ramps by the specified number of frames.

Defined at line 164 of file ../../src/media/audio/audio_core/mixer/gain.h

Records