pub struct GainControlProxy { /* private fields */ }
Implementations§
Source§impl GainControlProxy
impl GainControlProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.media.audio/GainControl.
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: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
Source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
Source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)