pub struct GainControlSynchronousProxy { /* private fields */ }
Implementations§
Source§impl GainControlSynchronousProxy
impl GainControlSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<GainControlEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<GainControlEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn set_gain_with_ramp(
&self,
gain_db: f32,
duration: i64,
ramp_type: RampType,
) -> Result<(), Error>
pub fn set_gain_with_ramp( &self, gain_db: f32, duration: i64, ramp_type: RampType, ) -> Result<(), Error>
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
).
Trait Implementations§
Source§impl Debug for GainControlSynchronousProxy
impl Debug for GainControlSynchronousProxy
Source§impl SynchronousProxy for GainControlSynchronousProxy
impl SynchronousProxy for GainControlSynchronousProxy
Source§type Proxy = GainControlProxy
type Proxy = GainControlProxy
Source§type Protocol = GainControlMarker
type Protocol = GainControlMarker
Proxy
controls.