class SetGainWithRamp

Defined at line 120 of file fidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/cpp/fidl/fuchsia.media.audio/cpp/markers.h

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`).

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal