pub struct ProcInfo<'a> {
pub frames: usize,
pub in_silence_mask: SilenceMask,
pub out_silence_mask: SilenceMask,
pub clock_seconds: Range<ClockSeconds>,
pub clock_samples: ClockSamples,
pub transport_info: Option<TransportInfo<'a>>,
pub stream_status: StreamStatus,
pub declick_values: &'a DeclickValues,
}Expand description
Additional information for processing audio
Fields§
§frames: usizeThe number of samples (in a single channel of audio) in this processing block.
Not to be confused with video frames.
in_silence_mask: SilenceMaskAn optional optimization hint on which input channels contain
all zeros (silence). The first bit (0b1) is the first channel,
the second bit is the second channel, and so on.
out_silence_mask: SilenceMaskAn optional optimization hint on which output channels contain
all zeros (silence). The first bit (0b1) is the first channel,
the second bit is the second channel, and so on.
clock_seconds: Range<ClockSeconds>The current interval of time of the internal clock in units of seconds. The start of the range is the instant of time at the first sample in the block (inclusive), and the end of the range is the instant of time at the end of the block (exclusive).
This uses the clock from the OS’s audio API so it should be quite accurate, and it correctly accounts for any output underflows that may occur.
clock_samples: ClockSamplesThe total number of samples (in a single channel of audio) that have been processed since the start of the audio stream.
This value can be used for more accurate timing than
ProcInfo::clock_seconds, but note it does NOT account for any
output underflows that may occur.
transport_info: Option<TransportInfo<'a>>Information about the musical transport.
This will be None if no musical transport is currently active,
or if the current transport is currently paused.
stream_status: StreamStatusFlags indicating the current status of the audio stream
declick_values: &'a DeclickValuesA buffer of values that linearly ramp up/down between 0.0 and 1.0
which can be used to implement efficient declicking when
pausing/resuming/stopping.
Auto Trait Implementations§
impl<'a> Freeze for ProcInfo<'a>
impl<'a> RefUnwindSafe for ProcInfo<'a>
impl<'a> Send for ProcInfo<'a>
impl<'a> Sync for ProcInfo<'a>
impl<'a> Unpin for ProcInfo<'a>
impl<'a> UnwindSafe for ProcInfo<'a>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.