Struct veloren_voxygen::audio::AudioFrontend
source · pub struct AudioFrontend {Show 16 fields
pub stream: Option<OutputStream>,
audio_stream: Option<OutputStreamHandle>,
music_channels: Vec<MusicChannel>,
ambient_channels: Vec<AmbientChannel>,
sfx_channels: Vec<SfxChannel>,
ui_channels: Vec<UiChannel>,
sfx_volume: f32,
ambience_volume: f32,
music_volume: f32,
master_volume: f32,
music_spacing: f32,
listener: Listener,
pub subtitles_enabled: bool,
pub subtitles: VecDeque<Subtitle>,
pub combat_music_enabled: bool,
mtm: AssetHandle<MusicTransitionManifest>,
}
Expand description
Holds information about the system audio devices and internal channels used
for sfx and music playback. An instance of AudioFrontend
is used by
Voxygen’s GlobalState
to
provide access to devices and playback control in-game
Fields§
§stream: Option<OutputStream>
§audio_stream: Option<OutputStreamHandle>
§music_channels: Vec<MusicChannel>
§ambient_channels: Vec<AmbientChannel>
§sfx_channels: Vec<SfxChannel>
§ui_channels: Vec<UiChannel>
§sfx_volume: f32
§ambience_volume: f32
§music_volume: f32
§master_volume: f32
§music_spacing: f32
§listener: Listener
§subtitles_enabled: bool
§subtitles: VecDeque<Subtitle>
§combat_music_enabled: bool
§mtm: AssetHandle<MusicTransitionManifest>
Implementations§
source§impl AudioFrontend
impl AudioFrontend
sourcepub fn new(
num_sfx_channels: usize,
num_ui_channels: usize,
subtitles: bool,
combat_music_enabled: bool
) -> Self
pub fn new( num_sfx_channels: usize, num_ui_channels: usize, subtitles: bool, combat_music_enabled: bool ) -> Self
Construct with given device
sourcepub fn maintain(&mut self, dt: Duration)
pub fn maintain(&mut self, dt: Duration)
Drop any unused music channels, and update their faders
sourcefn get_sfx_channel(&mut self) -> Option<&mut SfxChannel>
fn get_sfx_channel(&mut self) -> Option<&mut SfxChannel>
Retrive an empty sfx channel from the list
fn get_ui_channel(&mut self) -> Option<&mut UiChannel>
fn play_music(&mut self, sound: &str, channel_tag: MusicChannelTag)
sourcefn get_music_channel(
&mut self,
next_channel_tag: MusicChannelTag
) -> Option<&mut MusicChannel>
fn get_music_channel( &mut self, next_channel_tag: MusicChannelTag ) -> Option<&mut MusicChannel>
Retrieve a music channel from the channel list. This inspects the
MusicChannelTag to determine whether we are transitioning between
music types and acts accordingly. For example transitioning between
TitleMusic
and Exploration
should fade out the title channel and
fade in a new Exploration
channel.
sourcefn get_sfx_file<'a>(
trigger_item: Option<(&'a SfxEvent, &'a SfxTriggerItem)>
) -> Option<(&'a str, f32, Option<&'a str>)>
fn get_sfx_file<'a>( trigger_item: Option<(&'a SfxEvent, &'a SfxTriggerItem)> ) -> Option<(&'a str, f32, Option<&'a str>)>
Find sound based on given trigger_item Randomizes if multiple sounds are found Errors if no sounds are found
sourcepub fn emit_sfx(
&mut self,
trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>,
position: Vec3<f32>,
volume: Option<f32>,
underwater: bool
)
pub fn emit_sfx( &mut self, trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, position: Vec3<f32>, volume: Option<f32>, underwater: bool )
Play an sfx file given the position, SfxEvent, and whether it is underwater or not
sourcepub fn emit_filtered_sfx(
&mut self,
trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>,
position: Vec3<f32>,
volume: Option<f32>,
freq: Option<u32>,
underwater: bool
)
pub fn emit_filtered_sfx( &mut self, trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, position: Vec3<f32>, volume: Option<f32>, freq: Option<u32>, underwater: bool )
Play a sfx file given its position, SfxEvent, and volume with a low-pass filter at the given frequency
sourcepub fn emit_ui_sfx(
&mut self,
trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>,
volume: Option<f32>
)
pub fn emit_ui_sfx( &mut self, trigger_item: Option<(&SfxEvent, &SfxTriggerItem)>, volume: Option<f32> )
Plays a sfx using a non-spatial sink at the given volume; doesn’t need a position Passing no volume will default to 1.0
pub fn emit_subtitle( &mut self, subtitle: Option<&str>, position: Option<Vec3<f32>>, duration: f32 )
sourcefn play_ambient(
&mut self,
channel_tag: AmbientChannelTag,
sound: &str,
volume: Option<f32>
)
fn play_ambient( &mut self, channel_tag: AmbientChannelTag, sound: &str, volume: Option<f32> )
Plays a file at a given volume in the channel with a given tag
sourcefn new_ambient_channel(&mut self, channel_tag: AmbientChannelTag)
fn new_ambient_channel(&mut self, channel_tag: AmbientChannelTag)
Adds a new ambient channel of the given tag at zero volume
sourcefn get_ambient_channel(
&mut self,
channel_tag: AmbientChannelTag
) -> Option<&mut AmbientChannel>
fn get_ambient_channel( &mut self, channel_tag: AmbientChannelTag ) -> Option<&mut AmbientChannel>
Retrieves the channel currently having the given tag If no channel with the given tag is found, returns None
sourcefn get_ambient_channel_index(
&self,
channel_tag: AmbientChannelTag
) -> Option<usize>
fn get_ambient_channel_index( &self, channel_tag: AmbientChannelTag ) -> Option<usize>
Retrieves the index of the channel having the given tag in the array of ambient channels This is used for times when borrowing becomes difficult If no channel with the given tag is found, returns None
pub fn set_listener_pos(&mut self, pos: Vec3<f32>, ori: Vec3<f32>)
pub fn get_listener(&self) -> &Listener
sourcepub fn play_title_music(&mut self)
pub fn play_title_music(&mut self)
Switches the playing music to the title music, which is pinned to a specific sound file (veloren_title_tune.ogg)
sourcepub fn get_sfx_volume(&self) -> f32
pub fn get_sfx_volume(&self) -> f32
Retrieves the current setting for sfx volume
sourcepub fn get_ambience_volume(&self) -> f32
pub fn get_ambience_volume(&self) -> f32
Retrieves the current setting for ambience volume
sourcepub fn get_music_volume(&self) -> f32
pub fn get_music_volume(&self) -> f32
Retrieves the current setting for music volume
pub fn sfx_enabled(&self) -> bool
pub fn ambience_enabled(&self) -> bool
pub fn music_enabled(&self) -> bool
pub fn set_sfx_volume(&mut self, sfx_volume: f32)
pub fn set_ambience_volume(&mut self, ambience_volume: f32)
pub fn set_music_volume(&mut self, music_volume: f32)
pub fn set_music_spacing(&mut self, multiplier: f32)
pub fn set_subtitles(&mut self, enabled: bool)
sourcepub fn set_master_volume(&mut self, master_volume: f32)
pub fn set_master_volume(&mut self, master_volume: f32)
Updates master volume in all channels
pub fn stop_all_ambience(&mut self)
pub fn stop_all_music(&mut self)
pub fn stop_all_sfx(&mut self)
Auto Trait Implementations§
impl !RefUnwindSafe for AudioFrontend
impl !Send for AudioFrontend
impl !Sync for AudioFrontend
impl Unpin for AudioFrontend
impl !UnwindSafe for AudioFrontend
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
§impl<T> Chain<T> for T
impl<T> Chain<T> for T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self
file descriptor.§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Pointee for T
impl<T> Pointee for T
source§impl<Context> SubContext<Context> for Context
impl<Context> SubContext<Context> for Context
fn sub_context(self) -> Context
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.