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

source

pub fn new( num_sfx_channels: usize, num_ui_channels: usize, subtitles: bool, combat_music_enabled: bool ) -> Self

Construct with given device

source

pub fn no_audio() -> Self

Construct in no-audio mode for debugging

source

pub fn maintain(&mut self, dt: Duration)

Drop any unused music channels, and update their faders

source

fn get_sfx_channel(&mut self) -> Option<&mut SfxChannel>

Retrive an empty sfx channel from the list

source

fn get_ui_channel(&mut self) -> Option<&mut UiChannel>

source

fn play_music(&mut self, sound: &str, channel_tag: MusicChannelTag)

source

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.

source

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

source

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

source

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

source

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

source

pub fn emit_subtitle( &mut self, subtitle: Option<&str>, position: Option<Vec3<f32>>, duration: f32 )

source

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

source

fn new_ambient_channel(&mut self, channel_tag: AmbientChannelTag)

Adds a new ambient channel of the given tag at zero volume

source

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

source

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

source

pub fn set_listener_pos(&mut self, pos: Vec3<f32>, ori: Vec3<f32>)

source

pub fn get_listener(&self) -> &Listener

source

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)

source

pub fn get_sfx_volume(&self) -> f32

Retrieves the current setting for sfx volume

source

pub fn get_ambience_volume(&self) -> f32

Retrieves the current setting for ambience volume

source

pub fn get_music_volume(&self) -> f32

Retrieves the current setting for music volume

source

pub fn sfx_enabled(&self) -> bool

source

pub fn ambience_enabled(&self) -> bool

source

pub fn music_enabled(&self) -> bool

source

pub fn set_sfx_volume(&mut self, sfx_volume: f32)

source

pub fn set_ambience_volume(&mut self, ambience_volume: f32)

source

pub fn set_music_volume(&mut self, music_volume: f32)

source

pub fn set_music_spacing(&mut self, multiplier: f32)

source

pub fn set_subtitles(&mut self, enabled: bool)

source

pub fn set_master_volume(&mut self, master_volume: f32)

Updates master volume in all channels

source

pub fn stop_all_ambience(&mut self)

source

pub fn stop_all_music(&mut self)

source

pub fn stop_all_sfx(&mut self)

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T, U> Cast<U> for T
where U: FromCast<T>,

§

fn cast(self) -> U

Numeric cast from self to T.
§

impl<T> Chain<T> for T

§

fn len(&self) -> usize

The number of items that this chain link consists of.
§

fn append_to(self, v: &mut Vec<T>)

Append the elements in this link to the chain.
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromCast<T> for T

§

fn from_cast(t: T) -> T

Numeric cast from T to Self.
§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

§

impl<T> GetSetFdFlags for T

§

fn get_fd_flags(&self) -> Result<FdFlags, Error>
where T: AsFilelike,

Query the “status” flags for the self file descriptor.
§

fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>
where T: AsFilelike,

Create a new SetFdFlags value for use with set_fd_flags. Read more
§

fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>
where T: AsFilelike,

Set the “status” flags for the self file descriptor. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows 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) -> R
where R: 'a,

Mutably borrows 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
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows 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
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows 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
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Pointer = u32

§

fn debug( pointer: <T as Pointee>::Pointer, f: &mut Formatter<'_> ) -> Result<(), Error>

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<Context> SubContext<Context> for Context

source§

fn sub_context(self) -> Context

§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .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
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .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
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

§

fn to_sample_(self) -> U

§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Any for T
where T: Any,

§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,