pub struct AudioSystem {
pub config: AudioConfig,
pub sources: SourceManager,
pub microphone: Option<BinauralMicrophone>,
/* private fields */
}Expand description
Combined audio system manager.
Fields§
§config: AudioConfigAudio configuration
sources: SourceManagerSource manager
microphone: Option<BinauralMicrophone>Binaural microphone
Implementations§
Source§impl AudioSystem
impl AudioSystem
Sourcepub fn new(config: AudioConfig) -> Self
pub fn new(config: AudioConfig) -> Self
Create a new audio system.
Sourcepub fn init_microphone(&mut self, head: VirtualHead, simulation_dt: f32)
pub fn init_microphone(&mut self, head: VirtualHead, simulation_dt: f32)
Initialize the binaural microphone.
Sourcepub fn add_source(&mut self, source: AudioSource) -> u32
pub fn add_source(&mut self, source: AudioSource) -> u32
Add an audio source.
Sourcepub fn add_impulse(&mut self, position: Position3D, amplitude: f32) -> u32
pub fn add_impulse(&mut self, position: Position3D, amplitude: f32) -> u32
Create and add an impulse source.
Sourcepub fn add_tone(
&mut self,
position: Position3D,
frequency: f32,
amplitude: f32,
) -> u32
pub fn add_tone( &mut self, position: Position3D, frequency: f32, amplitude: f32, ) -> u32
Create and add a tone source.
Sourcepub fn start_recording(&mut self)
pub fn start_recording(&mut self)
Start recording.
Sourcepub fn stop_recording(&mut self) -> (Vec<f32>, Vec<f32>)
pub fn stop_recording(&mut self) -> (Vec<f32>, Vec<f32>)
Stop recording and return the recorded audio.
Sourcepub fn process_recording(&mut self)
pub fn process_recording(&mut self)
Process recording (call after microphone capture).
Sourcepub fn sample_rate(&self) -> u32
pub fn sample_rate(&self) -> u32
Get the recording sample rate.
Auto Trait Implementations§
impl Freeze for AudioSystem
impl RefUnwindSafe for AudioSystem
impl Send for AudioSystem
impl Sync for AudioSystem
impl Unpin for AudioSystem
impl UnwindSafe for AudioSystem
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more