fuchsia.media.audio

PROTOCOLS

GainControl

Defined in fuchsia.media.audio/gain_control.fidl

Enables control and monitoring of audio gain. This interface is typically a tear-off of other interfaces. For example, fuchsia.media.audio.Renderer has a BindGainControl method that binds to a gain control that controls gain for the renderer.

SetGain

Sets the gain in decibels.

Request

NameType
gain_db float32

SetGainWithRamp

Smoothly changes gain from its current value to specified value, over the specified duration (in milliseconds). If 'duration_ns' is 0, gain changes immediately. Otherwise, gain changes only while the stream is running.

Any active or pending ramp is cancelled by subsequent call to SetGain.

There can be at most 1 active ramp at any time. Any active or pending ramp is replaced by a later call to SetGainWithRamp (even if duration is 0). In this case gain would ramps directly from its most recent (mid-ramp) value to the newly-specified one, over the new duration, using the new easing.

Usage example (using time in seconds): Time 0 SetGainWithRamp(MUTED_GAIN_DB, 0, SCALE_LINEAR) // Ramp 1 SetGainWithRamp(0.0f, ZX_SEC(4), SCALE_LINEAR) // Ramp 2 Time 3 PlayNoReply(kNoTimestamp, any_media_time) Time 4 PauseNoReply() Time 7 PlayNoReply(kNoTimestamp, any_media_time) Time 8 SetGainWithRamp(MUTED_GAIN_DB, ZX_SEC(1), SCALE_LINEAR) // Ramp 3

Time 0: Ramp 1 completes immediately, changing the gain to MUTED_GAIN_DB. Ramp 2 is pending, since we are not in playback. Time 3, Ramp 2 begins ramping from MUTED_GAIN_DB to 0 dB (scale 0.0=>1.0). Time 4: Ramp 2 pauses (3s remain). Per SCALE_LINEAR, scale is approx. 0.25. Time 7: Ramp 2 resumes from most recent value toward the target. Time 8: Ramp 3 replaces Ramp 2 and starts from current scale (approx 0.5). Time 9: Ramp 3 completes; current scale value is now 0.0 (MUTED_GAIN_DB).

Request

NameType
gain_db float32
duration int64
rampType RampType

SetMute

Sets the mute value. Ramping and mute are fully independent, although they both affect the scaling that is applied.

Request

NameType
muted bool

OnGainMuteChanged

Notifies the client of changes in the current gain/mute values.

Response

NameType
gain_db float32
muted bool

ENUMS

RampType

Type: uint16

Defined in fuchsia.media.audio/gain_control.fidl

Enumerates gain control ramp types.

NameValueDescription
SCALE_LINEAR 1

CONSTANTS

NameValueType
MUTED_GAIN_DB -160 float32
MAX_GAIN_DB 24 float32