pub struct FileStream {
memory_mapping: AudioMemoryMapping,
offset: Arc<AtomicUsize>,
frame_size: usize,
buffer_mem_length: usize,
interval_ms: Duration,
next_frame: Duration,
start_time: Option<Instant>,
buffer_drop: FileStreamBufferCommit,
}Expand description
An Audio Stream that can be used to write playback buffer to a file.
FileStream doesn’t directly open and write to file. It receives
an mmap of a file instead.
Note that FileStream also needs the mmap-ed file has allocated some spaces
to be written. If the playback buffer exceeds the allocated spaces,
it will invoke panic!
Fields§
§memory_mapping: AudioMemoryMappingA MemoryMapping that will hold the copy of the playback buffer.
offset: Arc<AtomicUsize>Number of bytes that has been written.
frame_size: usizeNumber of bytes in a single audio frame.
buffer_mem_length: usizeLength of the current playback buffer in bytes.
interval_ms: DurationDuration of an audio in milliseconds for the current buffer_size.
next_frame: DurationTime marker of correct time to return next buffer.
start_time: Option<Instant>Timestamp that records when the stream starts.
buffer_drop: FileStreamBufferCommitType that will be called before the buffer is dropped.
Implementations§
Source§impl FileStream
impl FileStream
fn new( memory_mapping: AudioMemoryMapping, offset: Arc<AtomicUsize>, frame_size: usize, buffer_mem_length: usize, interval_ms: Duration, ) -> Self
Trait Implementations§
Source§impl AsyncPlaybackBufferStream for FileStream
impl AsyncPlaybackBufferStream for FileStream
Auto Trait Implementations§
impl Freeze for FileStream
impl RefUnwindSafe for FileStream
impl Send for FileStream
impl Sync for FileStream
impl Unpin for FileStream
impl UnwindSafe for FileStream
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