Struct rfmod::CreateSoundexInfo [−][src]
pub struct CreateSoundexInfo {}Show fields
pub length: u32, pub file_offset: u32, pub num_channels: i32, pub default_frequency: i32, pub format: SoundFormat, pub decode_buffer_size: u32, pub initial_subsound: i32, pub num_subsounds: i32, pub inclusion_list: Vec<i32>, pub pcm_read_callback: SoundPcmReadCallback, pub pcm_set_pos_callback: SoundPcmSetPosCallback, pub non_block_callback: SoundNonBlockCallback, pub dls_name: String, pub encryption_key: String, pub max_polyphony: i32, pub suggested_sound_type: SoundType, pub speaker_map: SpeakerMapType, pub initial_sound_group: SoundGroup, pub initial_seek_position: u32, pub initial_seek_pos_type: TimeUnit, pub ignore_set_file_system: bool, pub cdda_force_aspi: i32, pub audio_queue_policy: u32, pub min_midi_granularity: u32, pub non_block_thread_id: i32, // some fields omitted
Expand description
Use this structure with Sys::create_sound
when more
control is needed over loading. The possible reasons to use this with
Sys::create_sound
are:
- Loading a file from memory.
- Loading a file from within another larger (possibly wad/pak) file, by giving the loader an offset and length.
- To create a user created / non file based sound.
- To specify a starting subsound to seek to within a multi-sample sounds (ie FSB/DLS/SF2) when created as a stream.
- To specify which subsounds to load for multi-sample sounds (ie FSB/DLS/SF2) so that memory is saved and only a subset is actually loaded/read from disk.
- To specify ‘piggyback’ read and seek callbacks for capture of sound data as fmod reads and decodes it. Useful for ripping decoded PCM data from sounds as they are loaded / played.
- To specify a MIDI DLS/SF2 sample set file to load when opening a MIDI file.
See below on what members to fill for each of the above types of sound you want to create.
Fields
length: u32
[w] Optional. Specify 0 to ignore. Size in bytes of file to load, or sound to create (in this case only if FMOD_OPENUSER is used). Required if loading from memory. If 0 is specified, then it will use the size of the file (unless loading from memory then an error will be returned).
file_offset: u32
[w] Optional. Specify 0 to ignore. Offset from start of the file to start loading from. This is useful for loading files from inside big data files.
num_channels: i32
[w] Optional. Specify 0 to ignore. Number of channels in a sound mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used.
default_frequency: i32
[w] Optional. Specify 0 to ignore. Default frequency of sound in a sound mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the frequency determined by the file format.
format: SoundFormat
[w] Optional. Specify 0 or ::SoundFormatNone to ignore. Format of the sound mandatory if FMOD_OPENUSER or FMOD_OPENRAW is used. Other formats use the format determined by the file format.
decode_buffer_size: u32
[w] Optional. Specify 0 to ignore. For streams. This determines the size of the double buffer (in PCM samples) that a stream uses. Use this for user created streams if you want to determine the size of the callback buffer passed to you. Specify 0 to use FMOD’s default size which is currently equivalent to 400ms of the sound format created/loaded.
initial_subsound: i32
[w] Optional. Specify 0 to ignore. In a multi-sample file format such as .FSB/.DLS/.SF2, specify the initial subsound to seek to, only if FMOD_CREATESTREAM is used.
num_subsounds: i32
[w] Optional. Specify 0 to ignore or have no subsounds. In a sound created with
FMOD_OPENUSER, specify the number of subsounds that are accessable with
Sound::get_sub_sound
. If not created
with FMOD_OPENUSER, this will limit the number of subsounds loaded within a multi-subsound
file. If using FSB, then if FMOD_CREATESOUNDEXINFO::inclusionlist is used, this will shuffle
subsounds down so that there are not any gaps. It will mean that the indices of the sounds
will be different.
inclusion_list: Vec<i32>
[w] Optional. Specify 0 to ignore. In a multi-sample format such as .FSB/.DLS/.SF2 it may be desirable to specify only a subset of sounds to be loaded out of the whole file. This is an array of subsound indices to load into memory when created.
pcm_read_callback: SoundPcmReadCallback
[w] Optional. Specify 0 to ignore. Callback to ‘piggyback’ on FMOD’s read functions and accept or even write PCM data while FMOD is opening the sound. Used for user sounds created with FMOD_OPENUSER or for capturing decoded data as FMOD reads it.
pcm_set_pos_callback: SoundPcmSetPosCallback
[w] Optional. Specify 0 to ignore. Callback for when the user calls a seeking function such
as Channel::set_time
or
Channel::set_position
within a
multi-sample sound, and for when it is opened.
non_block_callback: SoundNonBlockCallback
[w] Optional. Specify 0 to ignore. Callback for successful completion, or error while loading a sound that used the FMOD_NONBLOCKING flag. Also called duing seeking, when setPosition is called or a stream is restarted.
dls_name: String
[w] Optional. Specify 0 to ignore. Filename for a DLS or SF2 sample set when loading a MIDI file. If not specified, on Windows it will attempt to open /windows/system32/drivers/gm.dls or /windows/system32/drivers/etc/gm.dls, on Mac it will attempt to load /System/Library/Components/CoreAudio.component/Contents/Resources/gs_instruments.dls, otherwise the MIDI will fail to open. Current DLS support is for level 1 of the specification.
encryption_key: String
[w] Optional. Specify 0 to ignore. Key for encrypted FSB file. Without this key an encrypted FSB file will not load.
max_polyphony: i32
[w] Optional. Specify 0 to ignore. For sequenced formats with dynamic channel allocation such as .MID and .IT, this specifies the maximum voice count allowed while playing. .IT defaults to 64. .MID defaults to 32.
suggested_sound_type: SoundType
[w] Optional. Specify 0 or SoundTypeUnknown to ignore. Instead of scanning all codec types, use this to speed up loading by making it jump straight to this codec.
speaker_map: SpeakerMapType
[w] Optional. Specify 0 to ignore. Use this to differ the way fmod maps multichannel sounds to speakers. See SpeakerMapType for more.
initial_sound_group: SoundGroup
[w] Optional. Specify 0 to ignore. Specify a sound group if required, to put sound in as it is created.
initial_seek_position: u32
[w] Optional. Specify 0 to ignore. For streams. Specify an initial position to seek the stream to.
initial_seek_pos_type: TimeUnit
[w] Optional. Specify 0 to ignore. For streams. Specify the time unit for the position set in initialseekposition.
ignore_set_file_system: bool
[w] Optional. Specify true to ignore. Set to false to use fmod’s built in file system. Ignores setFileSystem callbacks and also FMOD_CREATESOUNEXINFO file callbacks. Useful for specific cases where you don’t want to use your own file system but want to use fmod’s file system (ie net streaming).
cdda_force_aspi: i32
[w] Optional. Specify 0 to ignore. For CDDA sounds only - if non-zero use ASPI instead of NTSCSI to access the specified CD/DVD device.
audio_queue_policy: u32
[w] Optional. Specify 0 or FMOD_AUDIOQUEUE_CODECPOLICY_DEFAULT to ignore. Policy used to determine whether hardware or software is used for decoding, see FMOD_AUDIOQUEUE_CODECPOLICY for options (iOS >= 3.0 required, otherwise only hardware is available)
min_midi_granularity: u32
[w] Optional. Specify 0 to ignore. Allows you to set a minimum desired MIDI mixer granularity. Values smaller than 512 give greater than default accuracy at the cost of more CPU and vice versa. Specify 0 for default (512 samples).
non_block_thread_id: i32
[w] Optional. Specify 0 to ignore. Specifies a thread index to execute non blocking load on. Allows for up to 5 threads to be used for loading at once. This is to avoid one load blocking another. Maximum value = 4.
Trait Implementations
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for CreateSoundexInfo
impl !Send for CreateSoundexInfo
impl !Sync for CreateSoundexInfo
impl Unpin for CreateSoundexInfo
impl UnwindSafe for CreateSoundexInfo