Struct AdvancedSettings

Source
pub struct AdvancedSettings {
Show 20 fields pub max_mpeg_codecs: c_int, pub max_adpcm_codecs: c_int, pub max_xma_codecs: c_int, pub max_vorbis_codecs: c_int, pub max_at9_codecs: c_int, pub max_fadpcm_codecs: c_int, pub max_opus_codecs: c_int, pub asio_channel_list: Option<Vec<Utf8CString>>, pub asio_speaker_list: Option<Vec<Speaker>>, pub vol0_virtual_vol: c_float, pub default_decode_buffer_size: c_uint, pub profile_port: c_ushort, pub geometry_max_fade_time: c_uint, pub distance_filter_center_freq: c_float, pub reverb_3d_instance: c_int, pub dsp_buffer_pool_size: c_int, pub resampler_method: Resampler, pub random_seed: c_uint, pub max_convolution_threads: c_int, pub max_spatial_objects: c_int,
}
Expand description

Advanced configuration settings.

Structure to allow configuration of lesser used system level settings. These tweaks generally allow the user to set resource limits and customize settings to better fit their application.

Fields§

§max_mpeg_codecs: c_int

Maximum MPEG Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_adpcm_codecs: c_int

Maximum IMA-ADPCM Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_xma_codecs: c_int

Maximum XMA Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_vorbis_codecs: c_int

Maximum Vorbis Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_at9_codecs: c_int

Maximum AT9 Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_fadpcm_codecs: c_int

Maximum FADPCM Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§max_opus_codecs: c_int

Maximum Opus Sounds created as FMOD_CREATECOMPRESSEDSAMPLE.

§asio_channel_list: Option<Vec<Utf8CString>>

Read only list of strings representing ASIO channel names (UTF-8 string).

§asio_speaker_list: Option<Vec<Speaker>>

List of speakers that represent each ASIO channel used for remapping.

Use FMOD_SPEAKER_NONE to indicate no output for a given speaker.

§vol0_virtual_vol: c_float

For use with FMOD_INIT_VOL0_BECOMES_VIRTUAL,

Channels with audibility below this will become virtual.

See the Virtual Voices guide for more information.

§default_decode_buffer_size: c_uint

For use with Streams, the default size of the double buffer.

§profile_port: c_ushort

For use with FMOD_INIT_PROFILE_ENABLE, specify the port to listen on for connections by FMOD Studio or FMOD Profiler.

§geometry_max_fade_time: c_uint

For use with Geometry, the maximum time it takes for a Channel to fade to the new volume level when its occlusion changes.

§distance_filter_center_freq: c_float

For use with FMOD_INIT_CHANNEL_DISTANCEFILTER, the default center frequency for the distance filter.

§reverb_3d_instance: c_int

For use with Reverb3D, selects which global reverb instance to use.

§dsp_buffer_pool_size: c_int

Number of intermediate mixing buffers in the DSP buffer pool. Each buffer in bytes is dsp_buffer_pool_size (See System::get_dsp_buffer_size) * sizeof(float) * output mode speaker count.

ie 7.1 @ 1024 DSP block size = 1024 * 4 * 8 = 32KB.

§resampler_method: Resampler

Resampling method used by Channels.

§random_seed: c_uint

Seed value to initialize the internal random number generator.

§max_convolution_threads: c_int

Maximum number of CPU threads to use for FMOD_DSP_TYPE_CONVOLUTIONREVERB effect.

1 = effect is entirely processed inside the FMOD_THREAD_TYPE_MIXER thread.

2 and 3 offloads different parts of the convolution processing into different threads (FMOD_THREAD_TYPE_CONVOLUTION1 and FMOD_THREAD_TYPE_CONVOLUTION2) to increase throughput.

§max_spatial_objects: c_int

Maximum Spatial Objects that can be reserved per FMOD system.

FMOD_OUTPUTTYPE_AUDIO3D is a special case where multiple FMOD systems are not allowed.

See the Object based approach section of the Spatial Audio white paper.

  • A value of -1 means no Spatial Objects will be reserved.
  • A value of 0 means all available Spatial Objects will be reserved.
  • Any other value means it will reserve that many Spatial Objects.

Implementations§

Source§

impl AdvancedSettings

Source

pub unsafe fn from_ffi(value: FMOD_ADVANCEDSETTINGS) -> Self

Due to how FMOD_ADVANCEDSETTINGS interacts with FMOD_System_GetAdvancedSettings this won’t read ASIOSpeakerList. Usually ASIOSpeakerList won’t be filled out. If you’re 100% certain that’s not the case, you will have to convert it yourself.

let slice = unsafe { std::slice::from_raw_parts(value.ASIOSpeakerList, value.ASIONumChannels) };
let speakers: Result<Speaker, _> = slice.iter().copied().map(Speaker::try_from).collect();
let speakers = speakers.expect("invalid speaker value");
§Safety

ASIOChannelList must be valid for reads up to ASIONumChannels. Every pointer inside ASIOChannelList must be a null-terminated and must be valid for reads of bytes up to and including the nul terminator.

See Utf8CStr::from_ptr_unchecked for more information.

§Panics

This function will panic if resamplerMethod is not a valid user resampler.

Trait Implementations§

Source§

impl Debug for AdvancedSettings

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AdvancedSettings

Source§

fn default() -> AdvancedSettings

Returns the “default value” for a type. Read more
Source§

impl From<&AdvancedSettings> for FMOD_ADVANCEDSETTINGS

Source§

fn from(value: &AdvancedSettings) -> Self

Converts to this type from the input type.

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

Source§

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

Source§

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>,

Source§

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.