Struct audio_streams::PlaybackBuffer
source · pub struct PlaybackBuffer<'a> {
pub(crate) buffer: AudioBuffer<'a>,
pub(crate) drop: &'a mut dyn BufferCommit,
}
Expand description
PlaybackBuffer
is one buffer that holds buffer_size audio frames. It is used to temporarily
allow access to an audio buffer and notifes the owning stream of write completion when dropped.
Fields§
§buffer: AudioBuffer<'a>
§drop: &'a mut dyn BufferCommit
Implementations§
source§impl<'a> PlaybackBuffer<'a>
impl<'a> PlaybackBuffer<'a>
sourcepub fn new<F>(
frame_size: usize,
buffer: &'a mut [u8],
drop: &'a mut F
) -> Result<Self, PlaybackBufferError>where
F: BufferCommit,
pub fn new<F>(
frame_size: usize,
buffer: &'a mut [u8],
drop: &'a mut F
) -> Result<Self, PlaybackBufferError>where
F: BufferCommit,
Creates a new PlaybackBuffer
that holds a reference to the backing memory specified in
buffer
.
sourcepub fn frame_capacity(&self) -> usize
pub fn frame_capacity(&self) -> usize
Returns the number of audio frames that fit in the buffer.
sourcepub fn commit(&mut self)
pub fn commit(&mut self)
This triggers the commit of BufferCommit
. This should be called after the data is copied
to the buffer.
sourcepub fn latency_bytes(&self) -> u32
pub fn latency_bytes(&self) -> u32
It returns how many bytes need to be consumed before the current playback buffer will be played.
Trait Implementations§
source§impl<'a> Write for PlaybackBuffer<'a>
impl<'a> Write for PlaybackBuffer<'a>
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for PlaybackBuffer<'a>
impl<'a> !Send for PlaybackBuffer<'a>
impl<'a> !Sync for PlaybackBuffer<'a>
impl<'a> Unpin for PlaybackBuffer<'a>
impl<'a> !UnwindSafe for PlaybackBuffer<'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
Mutably borrows from an owned value. Read more