Google is committed to advancing racial equity for Black communities. See how.

fuchsia.media.audio

PROTOCOLS

EffectsController

Defined in fuchsia.media.audio/effects_controller.fidl

UpdateEffect

Sends the config message to an audio effect named effect_name. If the server closes the EffectsController connection for any reason, that indicates that the effects have been reset and any state associated with previous UpdateEffect messages have been lost. Clients who wish to re-apply state should respond by reconnecting and resending any needed UpdateEffect messages. If a client closes the connection, no state will be lost but the client will also be unable to determine if and when any state associated with previous messages have been lost.

Returns success (empty response) if the message was accepted by an effect named effect_name.

Returns UpdateEffectError.INVALID_CONFIG if an effect with the name effect_name was found, but the config message was rejected.

Returns UpdateEffectError.NOT_FOUND if no effect with name effect_name could be located.

Request

NameType
effect_name string[128]
config string

Response

NameType
result EffectsController_UpdateEffect_Result

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.

OnGainMuteChanged

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

Response

NameType
gain_db float32
muted bool

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 zx/duration
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

VolumeControl

Defined in fuchsia.media.audio/volume_control.fidl

A protocol for controlling volume.

OnVolumeMuteChanged

Emitted when the volume or mute state of the audio element changes.

Response

NameType
new_volume float32
new_muted bool

SetMute

Sets whether the controlled element is muted. Mute is not the same as setting volume to 0.0; volume will persist for the duration of a mute. If volume was 0.5 before mute, volume will resume at 0.5 following unmute.

Request

NameType
mute bool

SetVolume

Sets the volume of the audio element to the given value in [0.0, 1.0]. If the value is provided is outside of [0.0, 1.0], the value is clamped before application.

Request

NameType
volume float32

STRUCTS

EffectsController_UpdateEffect_Response

Defined in fuchsia.media.audio/effects_controller.fidl

NameTypeDescriptionDefault

ENUMS

RampType

Type: uint16

Defined in fuchsia.media.audio/gain_control.fidl

Enumerates gain control ramp types.

NameValueDescription
SCALE_LINEAR 1

Amplitude scale changes at a fixed rate across the ramp duration.

UpdateEffectError

Type: uint32

Defined in fuchsia.media.audio/effects_controller.fidl

NameValueDescription
INVALID_CONFIG 1
NOT_FOUND 2

UNIONS

EffectsController_UpdateEffect_Result

Defined in fuchsia.media.audio/effects_controller.fidl

NameTypeDescription
response EffectsController_UpdateEffect_Response
err UpdateEffectError

CONSTANTS

NameValueTypeDescription
MAX_EFFECT_NAME_LENGTH 128 uint32
MAX_GAIN_DB 24 float32

Maximum permitted gain value.

MAX_VOLUME 1 float32

The volume value representing the maximum loudness.

MIN_VOLUME 0 float32

The volume value representing silence.

MUTED_GAIN_DB -160 float32

Gain value producing silence. Gain values less than this value are permitted, but produce the same effect as this value.