Struct audio_util::file_streams::FileStream
source · 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: AudioMemoryMapping
A MemoryMapping that will hold the copy of the playback buffer.
offset: Arc<AtomicUsize>
Number of bytes that has been written.
frame_size: usize
Number of bytes in a single audio frame.
buffer_mem_length: usize
Length of the current playback buffer in bytes.
interval_ms: Duration
Duration of an audio in milliseconds for the current buffer_size
.
next_frame: Duration
Time marker of correct time to return next buffer.
start_time: Option<Instant>
Timestamp that records when the stream starts.
buffer_drop: FileStreamBufferCommit
Type 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 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