pub struct QoaDecoder<R>{ /* private fields */ }Expand description
Decoder for the QOA format.
Implementations§
Source§impl<R> QoaDecoder<R>
impl<R> QoaDecoder<R>
Sourcepub fn new(data: R) -> Result<QoaDecoder<R>, DecodeError>
pub fn new(data: R) -> Result<QoaDecoder<R>, DecodeError>
Attempts to decode the data as QOA audio.
Sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Return the wrapped Reader
Trait Implementations§
Source§impl<R> Sound for QoaDecoder<R>
impl<R> Sound for QoaDecoder<R>
Source§fn channel_count(&self) -> u16
fn channel_count(&self) -> u16
Returns the number of channels.
Source§fn sample_rate(&self) -> u32
fn sample_rate(&self) -> u32
Returns the number of samples per second for each channel for this sound
(e.g. 48,000).
Source§fn next_sample(&mut self) -> Result<NextSample, Error>
fn next_sample(&mut self) -> Result<NextSample, Error>
Retrieve the next sample or notification if something has changed.
The first sample is for the first channel and the second is the for
second and so on until channel_count and then wraps back to the first
channel. If any NextSample variant besides
Sample is returned then
the following NextSample::Sample is for the first channel. If a Sound
has returned Paused it is expected that the consumer will call
next_sample again in the future. If a Sound has returned Finished it
is not expected for the consumer to call next_sample again but if called
Finished will normally be returned again. After Finished has been
returned, channel_count() and sample_rate() may return different values
without MetadataChanged being returned. Read moreSource§fn on_start_of_batch(&mut self)
fn on_start_of_batch(&mut self)
Called whenever a new batch of audio samples is requested by the
backend. Read more
Source§fn next_frame(&mut self) -> Result<Vec<i16>, Result<NextSample, Error>>
fn next_frame(&mut self) -> Result<Vec<i16>, Result<NextSample, Error>>
Returns the next sample for all channels. Read more
Source§fn append_next_frame_to(
&mut self,
samples: &mut Vec<i16>,
) -> Result<(), Result<NextSample, Error>>
fn append_next_frame_to( &mut self, samples: &mut Vec<i16>, ) -> Result<(), Result<NextSample, Error>>
Same as
next_frame but samples are appended into an existing Vec. Read moreSource§fn into_memory_sound(self) -> Result<MemorySound, Error>where
Self: Sized,
fn into_memory_sound(self) -> Result<MemorySound, Error>where
Self: Sized,
Read the entire sound into memory. MemorySound can be cloned for
efficient reuse. See MemorySound::from_sound.
Source§fn loop_from_memory(self) -> Result<MemorySound, Error>where
Self: Sized,
fn loop_from_memory(self) -> Result<MemorySound, Error>where
Self: Sized,
Read the entire sound into memory and loop indefinitely. Read more
Source§fn controllable(self) -> (Controllable<Self>, Controller<Self>)where
Self: Sized,
fn controllable(self) -> (Controllable<Self>, Controller<Self>)where
Self: Sized,
Allow this sound to be controlled after it has started playing with a
Controller. Read moreSource§fn with_async_completion_notifier(
self,
) -> (AsyncCompletionNotifier<Self>, Receiver<()>)where
Self: Sized,
fn with_async_completion_notifier(
self,
) -> (AsyncCompletionNotifier<Self>, Receiver<()>)where
Self: Sized,
Get notified via a tokio::sync::oneshot::Receiver when this sound
has Finished.
Source§fn with_completion_notifier(self) -> (CompletionNotifier<Self>, Receiver<()>)where
Self: Sized,
fn with_completion_notifier(self) -> (CompletionNotifier<Self>, Receiver<()>)where
Self: Sized,
Get notified via a std::sync::mpsc::Receiver when this sound
has Finished.
Source§fn with_adjustable_volume(self) -> AdjustableVolume<Self>where
Self: Sized,
fn with_adjustable_volume(self) -> AdjustableVolume<Self>where
Self: Sized,
Allow the volume of the sound to be adjustable with
set_volume.Source§fn with_adjustable_volume_of(
self,
volume_adjustment: f32,
) -> AdjustableVolume<Self>where
Self: Sized,
fn with_adjustable_volume_of(
self,
volume_adjustment: f32,
) -> AdjustableVolume<Self>where
Self: Sized,
Allow the volume of the sound to be adjustable with
set_volume and set
the initial volume adjustment.Source§fn with_adjustable_speed(self) -> AdjustableSpeed<Self>where
Self: Sized,
fn with_adjustable_speed(self) -> AdjustableSpeed<Self>where
Self: Sized,
Allow the speed of the sound to be adjustable with
set_speed. Read moreSource§fn with_adjustable_speed_of(
self,
speed_adjustment: f32,
) -> AdjustableSpeed<Self>where
Self: Sized,
fn with_adjustable_speed_of(
self,
speed_adjustment: f32,
) -> AdjustableSpeed<Self>where
Self: Sized,
Allow the speed of the sound to be adjustable with
set_speed and set
the initial speed adjustment. Read moreSource§fn pausable(self) -> Pausable<Self>where
Self: Sized,
fn pausable(self) -> Pausable<Self>where
Self: Sized,
Allow for the sound to be pausable with
set_paused. Starts unpaused.Source§fn paused(self) -> Pausable<Self>where
Self: Sized,
fn paused(self) -> Pausable<Self>where
Self: Sized,
Allow for the sound to be pausable with
set_paused. Starts paused.Source§fn stoppable(self) -> Stoppable<Self>where
Self: Sized,
fn stoppable(self) -> Stoppable<Self>where
Self: Sized,
Allow for the sound to be stoppable with
set_stopped.
A stopped sound returns Finished.Source§fn finish_after(self, duration: Duration) -> FinishAfter<Self>where
Self: Sized,
fn finish_after(self, duration: Duration) -> FinishAfter<Self>where
Self: Sized,
Play the first
duration of the sound, then finish even if samples
remain. Read moreAuto Trait Implementations§
impl<R> Freeze for QoaDecoder<R>where
R: Freeze,
impl<R> RefUnwindSafe for QoaDecoder<R>where
R: RefUnwindSafe,
impl<R> Send for QoaDecoder<R>
impl<R> Sync for QoaDecoder<R>where
R: Sync,
impl<R> Unpin for QoaDecoder<R>where
R: Unpin,
impl<R> UnsafeUnpin for QoaDecoder<R>where
R: UnsafeUnpin,
impl<R> UnwindSafe for QoaDecoder<R>where
R: UnwindSafe,
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