template <>
class WireWeakOnewayClientImpl
Defined at line 1466 of file fidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/cpp/fidl/fuchsia.media.audio/cpp/wire_messaging.h
Public Methods
::fidl::OneWayStatus SetGain (float gain_db)
Sets the gain in decibels.
Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.
::fidl::OneWayStatus SetGainWithRamp (float gain_db, int64_t duration, ::fuchsia_media_audio::wire::RampType ramp_type)
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`).
Allocates 56 bytes of message buffer on the stack. No heap allocation necessary.
::fidl::OneWayStatus SetMute (bool muted)
Sets the mute value. Ramping and mute are fully independent, although
they both affect the scaling that is applied.
Allocates 40 bytes of message buffer on the stack. No heap allocation necessary.