pub trait Sample: CpalSample {
// Required methods
fn lerp(first: Self, second: Self, numerator: u32, denominator: u32) -> Self;
fn amplify(self, value: f32) -> Self;
fn to_f32(self) -> f32;
fn saturating_add(self, other: Self) -> Self;
fn zero_value() -> Self;
}
Expand description
Represents a value of a single sample.
This trait is implemented by default on three types: i16
, u16
and f32
.
- For
i16
, silence corresponds to the value0
. The minimum and maximum amplitudes are represented byi16::min_value()
andi16::max_value()
respectively. - For
u16
, silence corresponds to the valueu16::max_value() / 2
. The minimum and maximum amplitudes are represented by0
andu16::max_value()
respectively. - For
f32
, silence corresponds to the value0.0
. The minimum and maximum amplitudes are represented by-1.0
and1.0
respectively.
You can implement this trait on your own type as well if you wish so.
Required Methods§
sourcefn lerp(first: Self, second: Self, numerator: u32, denominator: u32) -> Self
fn lerp(first: Self, second: Self, numerator: u32, denominator: u32) -> Self
Linear interpolation between two samples.
The result should be equal to
first * numerator / denominator + second * (1 - numerator / denominator)
.
sourcefn saturating_add(self, other: Self) -> Self
fn saturating_add(self, other: Self) -> Self
Calls saturating_add
on the sample.
sourcefn zero_value() -> Self
fn zero_value() -> Self
Returns the value corresponding to the absence of sound.
Object Safety§
This trait is not object safe.