pub struct Writer<'s, 'd, W: Word>(/* private fields */);Expand description
I2S driver writer. Useful for moving write functionality across tasks.
Implementations§
Source§impl<'s, 'd, W: Word> Writer<'s, 'd, W>
impl<'s, 'd, W: Word> Writer<'s, 'd, W>
Sourcepub async fn write(&mut self, data: &[W]) -> Result<(), Error>
pub async fn write(&mut self, data: &[W]) -> Result<(), Error>
Write data to the I2S ringbuffer. This appends the data to the buffer and returns immediately. The data will be transmitted in the background. If thfre’s no space in the buffer, this waits until there is.
Sourcepub fn reset(&mut self)
pub fn reset(&mut self)
Reset the ring buffer to its initial state. Can be used to recover from overrun. The ringbuffer will always auto-reset on Overrun in any case.
NOTE: This only clears the DMA buffer and is not synchronized to WS/LR clock, so the order of channels may or may not be swapped after this. A full restart is required to ensure buffer contents and I2S transmissions are in sync.
Auto Trait Implementations§
impl<'s, 'd, W> Freeze for Writer<'s, 'd, W>
impl<'s, 'd, W> RefUnwindSafe for Writer<'s, 'd, W>where
W: RefUnwindSafe,
impl<'s, 'd, W> Send for Writer<'s, 'd, W>where
W: Send,
impl<'s, 'd, W> Sync for Writer<'s, 'd, W>where
W: Sync,
impl<'s, 'd, W> Unpin for Writer<'s, 'd, W>
impl<'s, 'd, W> !UnwindSafe for Writer<'s, 'd, W>
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