pub struct VolumeController { /* private fields */ }Expand description
Volume controller with anti-zipper smoothing
FIX for Defect 36: Smoothing coefficient is now sample-rate aware. The smoothing time constant is ~20ms regardless of sample rate.
Implementations§
Source§impl VolumeController
impl VolumeController
Sourcepub fn with_sample_rate(sample_rate: u32) -> Self
pub fn with_sample_rate(sample_rate: u32) -> Self
Create a new VolumeController with specified sample rate
FIX for Defect 36: Calculate smoothing coefficient based on sample rate to maintain consistent ~20ms smoothing time.
Sourcepub fn set_sample_rate(&mut self, sample_rate: u32)
pub fn set_sample_rate(&mut self, sample_rate: u32)
Update sample rate (recalculates smoothing coefficient)
pub fn set_target(&mut self, volume: f64)
pub fn next_volume(&mut self) -> f64
pub fn process(&mut self, buffer: &mut [f64], channels: usize)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VolumeController
impl RefUnwindSafe for VolumeController
impl Send for VolumeController
impl Sync for VolumeController
impl Unpin for VolumeController
impl UnsafeUnpin for VolumeController
impl UnwindSafe for VolumeController
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more