pub struct GainControlProxy { /* private fields */ }Implementations§
Source§impl GainControlProxy
impl GainControlProxy
Sourcepub fn take_event_stream(&self) -> GainControlEventStream
pub fn take_event_stream(&self) -> GainControlEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
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 Clone for GainControlProxy
impl Clone for GainControlProxy
Source§fn clone(&self) -> GainControlProxy
fn clone(&self) -> GainControlProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GainControlProxy
impl Debug for GainControlProxy
Source§impl Proxy for GainControlProxy
impl Proxy for GainControlProxy
Source§type Protocol = GainControlMarker
type Protocol = GainControlMarker
Proxy controls.Source§fn from_channel(inner: Channel) -> Self
fn from_channel(inner: Channel) -> Self
Source§fn into_channel(self) -> Result<Channel, Self>
fn into_channel(self) -> Result<Channel, Self>
Source§fn as_channel(&self) -> &Channel
fn as_channel(&self) -> &Channel
Source§fn domain(&self) -> Arc<Client>
fn domain(&self) -> Arc<Client>
Source§fn on_closed(&self) -> OnFDomainSignals
fn on_closed(&self) -> OnFDomainSignals
PEER_CLOSED signal.Auto Trait Implementations§
impl Freeze for GainControlProxy
impl !RefUnwindSafe for GainControlProxy
impl Send for GainControlProxy
impl Sync for GainControlProxy
impl Unpin for GainControlProxy
impl !UnwindSafe for GainControlProxy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]