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
fn next_playback_buffer<'a, 'life0, 'async_trait>(
&'a mut self,
ex: &'life0 dyn AudioStreamsExecutor
) -> Pin<Box<dyn Future<Output = Result<AsyncPlaybackBuffer<'a>, BoxError>> + 'async_trait>>where
Self: 'async_trait,
'a: 'async_trait,
'life0: 'async_trait,
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