init
|
@ -0,0 +1,804 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | Channel</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | Channel</h1>
|
||||
<p>A source of <a href="glossary.html#signal">audio signal</a> that connects to the <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> mixing hierarchy.</p>
|
||||
<p>Create with <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a> or <a class="apilink" href="core-api-system.html#system_playdsp">System::playDSP</a>.</p>
|
||||
<p><strong>Playback control:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setfrequency" title="Sets the frequency or playback rate.">Channel::setFrequency</a> Sets the frequency or playback rate.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getfrequency" title="Retrieves the playback frequency or playback rate.">Channel::getFrequency</a> Retrieves the playback frequency or playback rate.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setpriority" title="Sets the priority used for virtual voice ordering.">Channel::setPriority</a> Sets the priority used for virtual voice ordering.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getpriority" title="Retrieves the priority used for virtual voice ordering.">Channel::getPriority</a> Retrieves the priority used for virtual voice ordering.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setposition" title="Sets the current playback position.">Channel::setPosition</a> Sets the current playback position.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getposition" title="Retrieves the current playback position.">Channel::getPosition</a> Retrieves the current playback position.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setchannelgroup" title="Sets the ChannelGroup this object outputs to.">Channel::setChannelGroup</a> Sets the ChannelGroup this object outputs to.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getchannelgroup" title="Retrieves the ChannelGroup this object outputs to.">Channel::getChannelGroup</a> Retrieves the ChannelGroup this object outputs to.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setloopcount" title="Sets the number of times to loop before stopping.">Channel::setLoopCount</a> Sets the number of times to loop before stopping.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getloopcount" title="Retrieves the number of times to loop before stopping.">Channel::getLoopCount</a> Retrieves the number of times to loop before stopping.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_setlooppoints" title="Sets the loop start and end points.">Channel::setLoopPoints</a> Sets the loop start and end points.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getlooppoints" title="Retrieves the loop start and end points.">Channel::getLoopPoints</a> Retrieves the loop start and end points.</span></li>
|
||||
</ul>
|
||||
<p><strong>Information:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_isvirtual" title="Retrieves whether the Channel is being emulated by the virtual voice system.">Channel::isVirtual</a> Retrieves whether the Channel is being emulated by the virtual voice system.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getcurrentsound" title="Retrieves the currently playing Sound.">Channel::getCurrentSound</a> Retrieves the currently playing Sound.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channel.html#channel_getindex" title="Retrieves the index of this object in the System Channel pool.">Channel::getIndex</a> Retrieves the index of this object in the System Channel pool.</span></li>
|
||||
</ul>
|
||||
<p>The following APIs are inherited from <a class="apilink" href="core-api-channelcontrol.html">ChannelControl</a>:</p>
|
||||
<p><strong>Playback:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_isplaying" title="Retrieves the playing state.">ChannelControl::isPlaying</a> Retrieves the playing state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_stop" title="Stops the Channel (or all Channels in nested ChannelGroups) from playing.">ChannelControl::stop</a> Stops the Channel (or all Channels in nested ChannelGroups) from playing.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpaused" title="Sets the paused state.">ChannelControl::setPaused</a> Sets the paused state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getpaused" title="Retrieves the paused state.">ChannelControl::getPaused</a> Retrieves the paused state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmode" title="Sets the playback mode that controls how this object behaves.">ChannelControl::setMode</a> Sets the playback mode that controls how this object behaves.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmode" title="Retrieves the playback mode bits that control how this object behaves.">ChannelControl::getMode</a> Retrieves the playback mode bits that control how this object behaves.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpitch" title="Sets the relative pitch / playback rate.">ChannelControl::setPitch</a> Sets the relative pitch / playback rate.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getpitch" title="Retrieves the relative pitch / playback rate.">ChannelControl::getPitch</a> Retrieves the relative pitch / playback rate.</span></li>
|
||||
</ul>
|
||||
<p><strong>Volume levels:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getaudibility" title="Gets the calculated audibility based on all attenuation factors which contribute to the final output volume.">ChannelControl::getAudibility</a> Gets the calculated audibility based on all attenuation factors which contribute to the final output volume.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setvolume" title="Sets the volume level.">ChannelControl::setVolume</a> Sets the volume level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getvolume" title="Retrieves the volume level.">ChannelControl::getVolume</a> Retrieves the volume level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setvolumeramp" title="Sets whether volume changes are ramped or instantaneous.">ChannelControl::setVolumeRamp</a> Sets whether volume changes are ramped or instantaneous.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getvolumeramp" title="Retrieves whether volume changes are ramped or instantaneous.">ChannelControl::getVolumeRamp</a> Retrieves whether volume changes are ramped or instantaneous.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmute" title="Sets the mute state.">ChannelControl::setMute</a> Sets the mute state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmute" title="Retrieves the mute state.">ChannelControl::getMute</a> Retrieves the mute state.</span></li>
|
||||
</ul>
|
||||
<p><strong>Spatialization:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dattributes" title="Sets the 3D position and velocity used to apply panning, attenuation and doppler.">ChannelControl::set3DAttributes</a> Sets the 3D position and velocity used to apply panning, attenuation and doppler.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dattributes" title="Retrieves the 3D position and velocity used to apply panning, attenuation and doppler.">ChannelControl::get3DAttributes</a> Retrieves the 3D position and velocity used to apply panning, attenuation and doppler.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dconeorientation" title="Sets the orientation of a 3D cone shape, used for simulated occlusion.">ChannelControl::set3DConeOrientation</a> Sets the orientation of a 3D cone shape, used for simulated occlusion.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dconeorientation" title="Retrieves the orientation of a 3D cone shape, used for simulated occlusion.">ChannelControl::get3DConeOrientation</a> Retrieves the orientation of a 3D cone shape, used for simulated occlusion.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dconesettings" title="Sets the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.">ChannelControl::set3DConeSettings</a> Sets the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dconesettings" title="Retrieves the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.">ChannelControl::get3DConeSettings</a> Retrieves the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dcustomrolloff" title="Sets a custom roll-off shape for 3D distance attenuation.">ChannelControl::set3DCustomRolloff</a> Sets a custom roll-off shape for 3D distance attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dcustomrolloff" title="Retrieves the current custom roll-off shape for 3D distance attenuation.">ChannelControl::get3DCustomRolloff</a> Retrieves the current custom roll-off shape for 3D distance attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3ddistancefilter" title="Sets an override value for the 3D distance filter.">ChannelControl::set3DDistanceFilter</a> Sets an override value for the 3D distance filter.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3ddistancefilter" title="Retrieves the override values for the 3D distance filter.">ChannelControl::get3DDistanceFilter</a> Retrieves the override values for the 3D distance filter.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3ddopplerlevel" title="Sets the amount by which doppler is scaled.">ChannelControl::set3DDopplerLevel</a> Sets the amount by which doppler is scaled.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3ddopplerlevel" title="Retrieves the amount by which doppler is scaled.">ChannelControl::get3DDopplerLevel</a> Retrieves the amount by which doppler is scaled.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dlevel" title="Sets the blend between 3D panning and 2D panning.">ChannelControl::set3DLevel</a> Sets the blend between 3D panning and 2D panning.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dlevel" title="Retrieves the blend between 3D panning and 2D panning.">ChannelControl::get3DLevel</a> Retrieves the blend between 3D panning and 2D panning.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dminmaxdistance" title="Sets the minimum and maximum distances used to calculate the 3D roll-off attenuation.">ChannelControl::set3DMinMaxDistance</a> Sets the minimum and maximum distances used to calculate the 3D roll-off attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dminmaxdistance" title="Retrieves the minimum and maximum distances used to calculate the 3D roll-off attenuation.">ChannelControl::get3DMinMaxDistance</a> Retrieves the minimum and maximum distances used to calculate the 3D roll-off attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3docclusion" title="Sets the 3D attenuation factors for the direct and reverb paths.">ChannelControl::set3DOcclusion</a> Sets the 3D attenuation factors for the direct and reverb paths.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3docclusion" title="Retrieves the 3D attenuation factors for the direct and reverb paths.">ChannelControl::get3DOcclusion</a> Retrieves the 3D attenuation factors for the direct and reverb paths.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dspread" title="Sets the spread of a 3D sound in speaker space.">ChannelControl::set3DSpread</a> Sets the spread of a 3D sound in speaker space.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dspread" title="Retrieves the spread of a 3D sound in speaker space.">ChannelControl::get3DSpread</a> Retrieves the spread of a 3D sound in speaker space.</span></li>
|
||||
</ul>
|
||||
<p><strong>Panning and level adjustment:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpan" title="Sets the left/right pan level.">ChannelControl::setPan</a> Sets the left/right pan level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixlevelsinput" title="Sets the incoming volume level for each channel of a multi-channel signal.">ChannelControl::setMixLevelsInput</a> Sets the incoming volume level for each channel of a multi-channel <a href="glossary.html#signal">signal</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixlevelsoutput" title="Sets the outgoing volume levels for each speaker.">ChannelControl::setMixLevelsOutput</a> Sets the outgoing volume levels for each speaker.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixmatrix" title="Sets a two-dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">ChannelControl::setMixMatrix</a> Sets a two-dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmixmatrix" title="Retrieves a 2 dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">ChannelControl::getMixMatrix</a> Retrieves a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
</ul>
|
||||
<p><strong>Filtering:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setreverbproperties" title="Sets the wet / send level for a particular reverb instance.">ChannelControl::setReverbProperties</a> Sets the wet / send level for a particular reverb instance.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getreverbproperties" title="Retrieves the wet / send level for a particular reverb instance.">ChannelControl::getReverbProperties</a> Retrieves the wet / send level for a particular reverb instance.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setlowpassgain" title="Sets the gain of the dry signal when built in lowpass / distance filtering is applied.">ChannelControl::setLowPassGain</a> Sets the gain of the dry <a href="glossary.html#signal">signal</a> when built in lowpass / distance filtering is applied.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getlowpassgain" title="Retrieves the gain of the dry signal when built in lowpass / distance filtering is applied.">ChannelControl::getLowPassGain</a> Retrieves the gain of the dry <a href="glossary.html#signal">signal</a> when built in lowpass / distance filtering is applied.</span></li>
|
||||
</ul>
|
||||
<p><strong>DSP chain configuration:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_adddsp" title="Adds a DSP unit to the specified index in the DSP chain.">ChannelControl::addDSP</a> Adds a <a href="glossary.html#dsp">DSP unit</a> to the specified index in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_removedsp" title="Removes the specified DSP unit from the DSP chain.">ChannelControl::removeDSP</a> Removes the specified <a href="glossary.html#dsp">DSP unit</a> from the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getnumdsps" title="Retrieves the number of DSP units in the DSP chain.">ChannelControl::getNumDSPs</a> Retrieves the number of <a href="glossary.html#dsp">DSP units</a> in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdsp" title="Retrieves the DSP unit at the specified index in the DSP chain.">ChannelControl::getDSP</a> Retrieves the <a href="glossary.html#dsp">DSP unit</a> at the specified index in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setdspindex" title="Sets the index in the DSP chain of the specified DSP.">ChannelControl::setDSPIndex</a> Sets the index in the <a href="glossary.html#dsp-chain">DSP chain</a> of the specified <a href="glossary.html#dsp">DSP</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdspindex" title="Retrieves the index of a DSP inside the Channel or ChannelGroup's DSP chain.">ChannelControl::getDSPIndex</a> Retrieves the index of a <a href="glossary.html#dsp">DSP</a> inside the <a href="core-api-channel.html">Channel</a> or <a href="core-api-channelgroup.html">ChannelGroup</a>'s <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
</ul>
|
||||
<p><strong>Sample accurate scheduling:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdspclock" title="Retrieves the DSP clock values at this point in time.">ChannelControl::getDSPClock</a> Retrieves the <a href="glossary.html#dsp-clock">DSP clock</a> values at this point in time.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setdelay" title="Sets a sample accurate start (and/or stop) time relative to the parent ChannelGroup DSP clock.">ChannelControl::setDelay</a> Sets a sample accurate start (and/or stop) time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdelay" title="Retrieves a sample accurate start (and/or stop) time relative to the parent ChannelGroup DSP clock.">ChannelControl::getDelay</a> Retrieves a sample accurate start (and/or stop) time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_addfadepoint" title="Adds a sample accurate fade point at a time relative to the parent ChannelGroup DSP clock.">ChannelControl::addFadePoint</a> Adds a sample accurate fade point at a time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setfadepointramp" title="Adds a volume ramp at the specified time in the future using fade points.">ChannelControl::setFadePointRamp</a> Adds a volume ramp at the specified time in the future using fade points.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_removefadepoints" title="Removes all fade points between the two specified clock values (inclusive).">ChannelControl::removeFadePoints</a> Removes all fade points between the two specified clock values (inclusive).</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getfadepoints" title="Retrieves information about stored fade points.">ChannelControl::getFadePoints</a> Retrieves information about stored fade points.</span></li>
|
||||
</ul>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setcallback" title="Sets the callback for ChannelControl level notifications.">ChannelControl::setCallback</a> Sets the callback for ChannelControl level notifications.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setuserdata" title="Sets a user value associated with this object.">ChannelControl::setUserData</a> Sets a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getuserdata" title="Retrieves a user value associated with this object.">ChannelControl::getUserData</a> Retrieves a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getsystemobject" title="Retrieves the System that created this object.">ChannelControl::getSystemObject</a> Retrieves the System that created this object.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="channel_getchannelgroup"><a href="#channel_getchannelgroup">Channel::getChannelGroup</a></h2>
|
||||
<p>Retrieves the ChannelGroup this object outputs to.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getChannelGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="o">**</span><span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetChannelGroup</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">**</span><span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getChannelGroup</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">ChannelGroup</span> <span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getChannelGroup</span><span class="p">(</span>
|
||||
<span class="nx">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>channelgroup <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Output group. (<a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_setchannelgroup">Channel::setChannelGroup</a></p>
|
||||
<h2 api="function" id="channel_getcurrentsound"><a href="#channel_getcurrentsound">Channel::getCurrentSound</a></h2>
|
||||
<p>Retrieves the currently playing Sound.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getCurrentSound</span><span class="p">(</span>
|
||||
<span class="n">Sound</span> <span class="o">**</span><span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetCurrentSound</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUND</span> <span class="o">**</span><span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getCurrentSound</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">Sound</span> <span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getCurrentSound</span><span class="p">(</span>
|
||||
<span class="nx">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>sound <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Currently playing sound. (<a class="apilink" href="core-api-sound.html">Sound</a>)</dd>
|
||||
</dl>
|
||||
<p>May return NULL or equivalent if no <a class="apilink" href="core-api-sound.html">Sound</a> is playing.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a></p>
|
||||
<h2 api="function" id="channel_getfrequency"><a href="#channel_getfrequency">Channel::getFrequency</a></h2>
|
||||
<p>Retrieves the playback frequency or playback rate.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getFrequency</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetFrequency</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getFrequency</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">float</span> <span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getFrequency</span><span class="p">(</span>
|
||||
<span class="nx">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>frequency <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Playback frequency.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Hertz</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_setfrequency">Channel::setFrequency</a></p>
|
||||
<h2 api="function" id="channel_getindex"><a href="#channel_getindex">Channel::getIndex</a></h2>
|
||||
<p>Retrieves the index of this object in the System Channel pool.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getIndex</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">index</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetIndex</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">index</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getIndex</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">index</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getIndex</span><span class="p">(</span>
|
||||
<span class="nx">index</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>index <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Index within the <a class="apilink" href="core-api-system.html">System</a> <a class="apilink" href="core-api-channel.html">Channel</a> pool.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, 'maxchannels' value from <a class="apilink" href="core-api-system.html#system_init">System::init</a> - 1]</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_getchannel">System::getChannel</a></p>
|
||||
<h2 api="function" id="channel_getloopcount"><a href="#channel_getloopcount">Channel::getLoopCount</a></h2>
|
||||
<p>Retrieves the number of times to loop before stopping.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getLoopCount</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetLoopCount</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getLoopCount</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getLoopCount</span><span class="p">(</span>
|
||||
<span class="nx">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>loopcount <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Times to loop before stopping where 0 represents "oneshot", 1 represents "loop once then stop" and -1 represents "loop forever".</dd>
|
||||
</dl>
|
||||
<p>This is the <em>current</em> loop countdown value that will decrement as it plays until reaching 0. Reset with <a class="apilink" href="core-api-channel.html#channel_setloopcount">Channel::setLoopCount</a>.</p>
|
||||
<h2 api="function" id="channel_getlooppoints"><a href="#channel_getlooppoints">Channel::getLoopPoints</a></h2>
|
||||
<p>Retrieves the loop start and end points.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getLoopPoints</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetLoopPoints</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getLoopPoints</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">uint</span> <span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="kt">uint</span> <span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getLoopPoints</span><span class="p">(</span>
|
||||
<span class="nx">loopstart</span><span class="p">,</span>
|
||||
<span class="nx">loopstarttype</span><span class="p">,</span>
|
||||
<span class="nx">loopend</span><span class="p">,</span>
|
||||
<span class="nx">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>loopstart <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>
|
||||
<p>Loop start point.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a> - 1]. </li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>loopstarttype</dt>
|
||||
<dd>Time units for <code>loopstart</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
<dt>loopend <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>
|
||||
<p>Loop end point.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a> - 1]. </li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>loopendtype</dt>
|
||||
<dd>Time units for <code>loopend</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
</dl>
|
||||
<p>Valid <a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a> types are <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a>. Any other time units return <a class="apilink" href="core-api-common.html#fmod_err_format">FMOD_ERR_FORMAT</a>.<br />
|
||||
If <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a> or <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a> are used, the value is internally converted from <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, so the retrieved value may not exactly match the set value.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_setlooppoints">Channel::setLoopPoints</a></p>
|
||||
<h2 api="function" id="channel_getposition"><a href="#channel_getposition">Channel::getPosition</a></h2>
|
||||
<p>Retrieves the current playback position.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getPosition</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetPosition</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getPosition</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">uint</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getPosition</span><span class="p">(</span>
|
||||
<span class="nx">position</span><span class="p">,</span>
|
||||
<span class="nx">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>position <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Playback position.</dd>
|
||||
<dt>postype</dt>
|
||||
<dd>Time units for <code>position</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
</dl>
|
||||
<p>Certain <a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a> types are always available: <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a> and <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a>. The others are format specific such as <a class="apilink" href="core-api-common.html#fmod_timeunit_modorder">FMOD_TIMEUNIT_MODORDER</a> / <a class="apilink" href="core-api-common.html#fmod_timeunit_modrow">FMOD_TIMEUNIT_MODROW</a> / <a class="apilink" href="core-api-common.html#fmod_timeunit_modpattern">FMOD_TIMEUNIT_MODPATTERN</a> which is specific to files of type MOD / S3M / XM / IT.</p>
|
||||
<p>If <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a> or <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a> are used, the value is internally converted from <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, so the retrieved value may not exactly match the set value.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_setposition">Channel::setPosition</a></p>
|
||||
<h2 api="function" id="channel_getpriority"><a href="#channel_getpriority">Channel::getPriority</a></h2>
|
||||
<p>Retrieves the priority used for virtual voice ordering.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">getPriority</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_GetPriority</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">getPriority</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">getPriority</span><span class="p">(</span>
|
||||
<span class="nx">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>priority <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Priority where 0 represents most important and 256 represents least important.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, 256]</li>
|
||||
<li><span class="label">Default:</span> 128</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Priority is used as a coarse grain control for the virtual voice system, lower priority <a class="apilink" href="core-api-channel.html">Channel</a>s will always be stolen before higher ones. For <a class="apilink" href="core-api-channel.html">Channel</a>s of equal priority, those with the quietest <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getaudibility">ChannelControl::getAudibility</a> value will be stolen first.</p>
|
||||
<p>See the <a href="white-papers-virtual-voices.html">Virtual Voices</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_setpriority">Channel::setPriority</a></p>
|
||||
<h2 api="function" id="channel_isvirtual"><a href="#channel_isvirtual">Channel::isVirtual</a></h2>
|
||||
<p>Retrieves whether the Channel is being emulated by the virtual voice system.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">isVirtual</span><span class="p">(</span>
|
||||
<span class="kt">bool</span> <span class="o">*</span><span class="n">isvirtual</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_IsVirtual</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="n">FMOD_BOOL</span> <span class="o">*</span><span class="n">isvirtual</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">isVirtual</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">bool</span> <span class="n">isvirtual</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">isVirtual</span><span class="p">(</span>
|
||||
<span class="nx">isvirtual</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>isvirtual <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Virtual state. True = silent / emulated. False = audible / real.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Boolean</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-virtual-voices.html">Virtual Voices</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getaudibility">ChannelControl::getAudibility</a></p>
|
||||
<h2 api="function" id="channel_setchannelgroup"><a href="#channel_setchannelgroup">Channel::setChannelGroup</a></h2>
|
||||
<p>Sets the ChannelGroup this object outputs to.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setChannelGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="o">*</span><span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetChannelGroup</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setChannelGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="n">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setChannelGroup</span><span class="p">(</span>
|
||||
<span class="nx">channelgroup</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>channelgroup</dt>
|
||||
<dd>Output group. (<a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>)</dd>
|
||||
</dl>
|
||||
<p>A <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> may contain many <a class="apilink" href="core-api-channel.html">Channel</a>s.</p>
|
||||
<p><a class="apilink" href="core-api-channel.html">Channel</a>s may only output to a single <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>. This operation will remove it from the previous group first.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_getchannelgroup">Channel::getChannelGroup</a></p>
|
||||
<h2 api="function" id="channel_setfrequency"><a href="#channel_setfrequency">Channel::setFrequency</a></h2>
|
||||
<p>Sets the frequency or playback rate.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setFrequency</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetFrequency</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setFrequency</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setFrequency</span><span class="p">(</span>
|
||||
<span class="nx">frequency</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>frequency</dt>
|
||||
<dd>
|
||||
<p>Playback rate.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Hertz</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Default frequency is determined by the audio format of the <a class="apilink" href="core-api-sound.html">Sound</a> or <a class="apilink" href="core-api-dsp.html">DSP</a>.</p>
|
||||
<p>Sounds opened as <a class="apilink" href="core-api-common.html#fmod_createsample">FMOD_CREATESAMPLE</a> (not <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a> or <a class="apilink" href="core-api-common.html#fmod_createcompressedsample">FMOD_CREATECOMPRESSEDSAMPLE</a>) can be played backwards by giving a negative frequency.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_getfrequency">Channel::getFrequency</a>, <a class="apilink" href="core-api-sound.html#sound_setdefaults">Sound::setDefaults</a></p>
|
||||
<h2 api="function" id="channel_setloopcount"><a href="#channel_setloopcount">Channel::setLoopCount</a></h2>
|
||||
<p>Sets the number of times to loop before stopping.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setLoopCount</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetLoopCount</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setLoopCount</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setLoopCount</span><span class="p">(</span>
|
||||
<span class="nx">loopcount</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>loopcount</dt>
|
||||
<dd>Times to loop before stopping where 0 represents "oneshot", 1 represents "loop once then stop" and -1 represents "loop forever".</dd>
|
||||
</dl>
|
||||
<p>The 'mode' of the <a class="apilink" href="core-api-sound.html">Sound</a> or <a class="apilink" href="core-api-channel.html">Channel</a> must be <a class="apilink" href="core-api-common.html#fmod_loop_normal">FMOD_LOOP_NORMAL</a> or <a class="apilink" href="core-api-common.html#fmod_loop_bidi">FMOD_LOOP_BIDI</a> for this function to work.</p>
|
||||
<p><strong>See Also:</strong> <a href="glossary.html#streaming-issues">Streaming Issues</a>, <a class="apilink" href="core-api-channel.html#channel_getloopcount">Channel::getLoopCount</a>, <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmode">ChannelControl::setMode</a>, <a class="apilink" href="core-api-sound.html#sound_setmode">Sound::setMode</a>, <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a></p>
|
||||
<h2 api="function" id="channel_setlooppoints"><a href="#channel_setlooppoints">Channel::setLoopPoints</a></h2>
|
||||
<p>Sets the loop start and end points.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setLoopPoints</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetLoopPoints</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setLoopPoints</span><span class="p">(</span>
|
||||
<span class="kt">uint</span> <span class="n">loopstart</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">loopstarttype</span><span class="p">,</span>
|
||||
<span class="kt">uint</span> <span class="n">loopend</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setLoopPoints</span><span class="p">(</span>
|
||||
<span class="nx">loopstart</span><span class="p">,</span>
|
||||
<span class="nx">loopstarttype</span><span class="p">,</span>
|
||||
<span class="nx">loopend</span><span class="p">,</span>
|
||||
<span class="nx">loopendtype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>loopstart</dt>
|
||||
<dd>
|
||||
<p>Loop start point.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a> - 1].</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>loopstarttype</dt>
|
||||
<dd>Time units for <code>loopstart</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
<dt>loopend</dt>
|
||||
<dd>
|
||||
<p>Loop end point.</p>
|
||||
<ul>
|
||||
<li>Range; [<code>loopstart</code> + 1, <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a> - 1].</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>loopendtype</dt>
|
||||
<dd>Time units for <code>loopend</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
</dl>
|
||||
<p>Loop points may only be set on a <a class="apilink" href="core-api-channel.html">Channel</a> playing a <a class="apilink" href="core-api-sound.html">Sound</a>, not a <a class="apilink" href="core-api-channel.html">Channel</a> playing a <a class="apilink" href="core-api-dsp.html">DSP</a> (See <a class="apilink" href="core-api-system.html#system_playdsp">System::playDSP</a>).</p>
|
||||
<p>Valid <a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a> types are <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a>. Any other time units return <a class="apilink" href="core-api-common.html#fmod_err_format">FMOD_ERR_FORMAT</a>.<br />
|
||||
If <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a> or <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a>, the value is internally converted to <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>.</p>
|
||||
<p>The <a class="apilink" href="core-api-channel.html">Channel</a>'s mode must be set to <a class="apilink" href="core-api-common.html#fmod_loop_normal">FMOD_LOOP_NORMAL</a> or <a class="apilink" href="core-api-common.html#fmod_loop_bidi">FMOD_LOOP_BIDI</a> for loop points to affect playback.</p>
|
||||
<p><strong>See Also:</strong> <a href="glossary.html#streaming-issues">Streaming Issues</a>, <a class="apilink" href="core-api-channel.html#channel_getlooppoints">Channel::getLoopPoints</a>, <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmode">ChannelControl::setMode</a></p>
|
||||
<h2 api="function" id="channel_setposition"><a href="#channel_setposition">Channel::setPosition</a></h2>
|
||||
<p>Sets the current playback position.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setPosition</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetPosition</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">FMOD_TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setPosition</span><span class="p">(</span>
|
||||
<span class="kt">uint</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="n">TIMEUNIT</span> <span class="n">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setPosition</span><span class="p">(</span>
|
||||
<span class="nx">position</span><span class="p">,</span>
|
||||
<span class="nx">postype</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>position</dt>
|
||||
<dd>Playback position.</dd>
|
||||
<dt>postype</dt>
|
||||
<dd>Time units for <code>position</code>. (<a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>)</dd>
|
||||
</dl>
|
||||
<p>Certain <a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a> types are always available: <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>, <a class="apilink" href="core-api-common.html#fmod_timeunit_pcmbytes">FMOD_TIMEUNIT_PCMBYTES</a> and <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a>. The others are format specific such as <a class="apilink" href="core-api-common.html#fmod_timeunit_modorder">FMOD_TIMEUNIT_MODORDER</a> / <a class="apilink" href="core-api-common.html#fmod_timeunit_modrow">FMOD_TIMEUNIT_MODROW</a> / <a class="apilink" href="core-api-common.html#fmod_timeunit_modpattern">FMOD_TIMEUNIT_MODPATTERN</a> which is specific to files of type MOD / S3M / XM / IT.</p>
|
||||
<p>If playing a <a class="apilink" href="core-api-sound.html">Sound</a> created with <a class="apilink" href="core-api-system.html#system_createstream">System::createStream</a> or <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a> changing the position may cause a slow reflush operation while the file seek and decode occurs. You can avoid this by creating the stream with <a class="apilink" href="core-api-common.html#fmod_nonblocking">FMOD_NONBLOCKING</a>. This will cause the stream to go into <a class="apilink" href="core-api-sound.html#fmod_openstate_setposition">FMOD_OPENSTATE_SETPOSITION</a> state (see <a class="apilink" href="core-api-sound.html#sound_getopenstate">Sound::getOpenState</a>) and Sound commands will return <a class="apilink" href="core-api-common.html#fmod_err_notready">FMOD_ERR_NOTREADY</a>. <a class="apilink" href="core-api-channel.html#channel_getposition">Channel::getPosition</a> will also not update until this non-blocking set position operation has completed.</p>
|
||||
<p>Using a VBR source that does not have an associated seek table or seek information (such as MP3 or MOD/S3M/XM/IT) may cause inaccurate seeking if you specify <a class="apilink" href="core-api-common.html#fmod_timeunit_ms">FMOD_TIMEUNIT_MS</a> or <a class="apilink" href="core-api-common.html#fmod_timeunit_pcm">FMOD_TIMEUNIT_PCM</a>. If you want FMOD to create a PCM vs bytes seek table so that seeking is accurate, you will have to specify <a class="apilink" href="core-api-common.html#fmod_accuratetime">FMOD_ACCURATETIME</a> when loading or opening the sound. This means there is a slight delay as FMOD scans the whole file when loading the sound to create this table.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_getposition">Channel::getPosition</a></p>
|
||||
<h2 api="function" id="channel_setpriority"><a href="#channel_setpriority">Channel::setPriority</a></h2>
|
||||
<p>Sets the priority used for virtual voice ordering.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Channel</span><span class="o">::</span><span class="n">setPriority</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Channel_SetPriority</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">*</span><span class="n">channel</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Channel</span><span class="p">.</span><span class="n">setPriority</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Channel</span><span class="p">.</span><span class="nx">setPriority</span><span class="p">(</span>
|
||||
<span class="nx">priority</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>priority</dt>
|
||||
<dd>
|
||||
<p>Priority where 0 represents most important and 256 represents least important.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, 256]</li>
|
||||
<li><span class="label">Default:</span> 128</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Priority is used as a coarse grain control for the virtual voice system, lower priority <a class="apilink" href="core-api-channel.html">Channel</a>s will always be stolen before higher ones. For <a class="apilink" href="core-api-channel.html">Channel</a>s of equal priority, those with the quietest <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getaudibility">ChannelControl::getAudibility</a> value will be stolen first.</p>
|
||||
<p>See the <a href="white-papers-virtual-voices.html">Virtual Voices</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channel.html#channel_getpriority">Channel::getPriority</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,466 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | ChannelGroup</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | ChannelGroup</h1>
|
||||
<p>A submix in the mixing hierarchy akin to a bus that can contain both <a class="apilink" href="core-api-channel.html">Channel</a> and <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> objects.</p>
|
||||
<p>Create with <a class="apilink" href="core-api-system.html#system_createchannelgroup">System::createChannelGroup</a>.</p>
|
||||
<p><strong>Channel management:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumchannels" title="Retrieves the number of Channels that feed into to this group.">ChannelGroup::getNumChannels</a> Retrieves the number of Channels that feed into to this group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getchannel" title="Retrieves the Channel at the specified index in the list of Channel inputs.">ChannelGroup::getChannel</a> Retrieves the Channel at the specified index in the list of Channel inputs.</span></li>
|
||||
</ul>
|
||||
<p><strong>ChannelGroup management:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_addgroup" title="Adds a ChannelGroup as an input to this group.">ChannelGroup::addGroup</a> Adds a ChannelGroup as an input to this group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumgroups" title="Retrieves the number of ChannelGroups that feed into to this group.">ChannelGroup::getNumGroups</a> Retrieves the number of ChannelGroups that feed into to this group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getgroup" title="Retrieves the ChannelGroup at the specified index in the list of group inputs.">ChannelGroup::getGroup</a> Retrieves the ChannelGroup at the specified index in the list of group inputs.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getparentgroup" title="Retrieves the ChannelGroup this object outputs to.">ChannelGroup::getParentGroup</a> Retrieves the ChannelGroup this object outputs to.</span></li>
|
||||
</ul>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_getname" title="Retrieves the name set when the group was created.">ChannelGroup::getName</a> Retrieves the name set when the group was created.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelgroup.html#channelgroup_release" title="Frees the memory for the group.">ChannelGroup::release</a> Frees the memory for the group.</span></li>
|
||||
</ul>
|
||||
<p>The following APIs are inherited from <a class="apilink" href="core-api-channelcontrol.html">ChannelControl</a>:</p>
|
||||
<p><strong>Playback:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_isplaying" title="Retrieves the playing state.">ChannelControl::isPlaying</a> Retrieves the playing state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_stop" title="Stops the Channel (or all Channels in nested ChannelGroups) from playing.">ChannelControl::stop</a> Stops the Channel (or all Channels in nested ChannelGroups) from playing.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpaused" title="Sets the paused state.">ChannelControl::setPaused</a> Sets the paused state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getpaused" title="Retrieves the paused state.">ChannelControl::getPaused</a> Retrieves the paused state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmode" title="Sets the playback mode that controls how this object behaves.">ChannelControl::setMode</a> Sets the playback mode that controls how this object behaves.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmode" title="Retrieves the playback mode bits that control how this object behaves.">ChannelControl::getMode</a> Retrieves the playback mode bits that control how this object behaves.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpitch" title="Sets the relative pitch / playback rate.">ChannelControl::setPitch</a> Sets the relative pitch / playback rate.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getpitch" title="Retrieves the relative pitch / playback rate.">ChannelControl::getPitch</a> Retrieves the relative pitch / playback rate.</span></li>
|
||||
</ul>
|
||||
<p><strong>Volume levels:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getaudibility" title="Gets the calculated audibility based on all attenuation factors which contribute to the final output volume.">ChannelControl::getAudibility</a> Gets the calculated audibility based on all attenuation factors which contribute to the final output volume.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setvolume" title="Sets the volume level.">ChannelControl::setVolume</a> Sets the volume level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getvolume" title="Retrieves the volume level.">ChannelControl::getVolume</a> Retrieves the volume level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setvolumeramp" title="Sets whether volume changes are ramped or instantaneous.">ChannelControl::setVolumeRamp</a> Sets whether volume changes are ramped or instantaneous.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getvolumeramp" title="Retrieves whether volume changes are ramped or instantaneous.">ChannelControl::getVolumeRamp</a> Retrieves whether volume changes are ramped or instantaneous.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmute" title="Sets the mute state.">ChannelControl::setMute</a> Sets the mute state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmute" title="Retrieves the mute state.">ChannelControl::getMute</a> Retrieves the mute state.</span></li>
|
||||
</ul>
|
||||
<p><strong>Spatialization:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dattributes" title="Sets the 3D position and velocity used to apply panning, attenuation and doppler.">ChannelControl::set3DAttributes</a> Sets the 3D position and velocity used to apply panning, attenuation and doppler.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dattributes" title="Retrieves the 3D position and velocity used to apply panning, attenuation and doppler.">ChannelControl::get3DAttributes</a> Retrieves the 3D position and velocity used to apply panning, attenuation and doppler.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dconeorientation" title="Sets the orientation of a 3D cone shape, used for simulated occlusion.">ChannelControl::set3DConeOrientation</a> Sets the orientation of a 3D cone shape, used for simulated occlusion.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dconeorientation" title="Retrieves the orientation of a 3D cone shape, used for simulated occlusion.">ChannelControl::get3DConeOrientation</a> Retrieves the orientation of a 3D cone shape, used for simulated occlusion.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dconesettings" title="Sets the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.">ChannelControl::set3DConeSettings</a> Sets the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dconesettings" title="Retrieves the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.">ChannelControl::get3DConeSettings</a> Retrieves the angles and attenuation levels of a 3D cone shape, for simulated occlusion which is based on direction.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dcustomrolloff" title="Sets a custom roll-off shape for 3D distance attenuation.">ChannelControl::set3DCustomRolloff</a> Sets a custom roll-off shape for 3D distance attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dcustomrolloff" title="Retrieves the current custom roll-off shape for 3D distance attenuation.">ChannelControl::get3DCustomRolloff</a> Retrieves the current custom roll-off shape for 3D distance attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3ddistancefilter" title="Sets an override value for the 3D distance filter.">ChannelControl::set3DDistanceFilter</a> Sets an override value for the 3D distance filter.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3ddistancefilter" title="Retrieves the override values for the 3D distance filter.">ChannelControl::get3DDistanceFilter</a> Retrieves the override values for the 3D distance filter.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3ddopplerlevel" title="Sets the amount by which doppler is scaled.">ChannelControl::set3DDopplerLevel</a> Sets the amount by which doppler is scaled.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3ddopplerlevel" title="Retrieves the amount by which doppler is scaled.">ChannelControl::get3DDopplerLevel</a> Retrieves the amount by which doppler is scaled.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dlevel" title="Sets the blend between 3D panning and 2D panning.">ChannelControl::set3DLevel</a> Sets the blend between 3D panning and 2D panning.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dlevel" title="Retrieves the blend between 3D panning and 2D panning.">ChannelControl::get3DLevel</a> Retrieves the blend between 3D panning and 2D panning.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dminmaxdistance" title="Sets the minimum and maximum distances used to calculate the 3D roll-off attenuation.">ChannelControl::set3DMinMaxDistance</a> Sets the minimum and maximum distances used to calculate the 3D roll-off attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dminmaxdistance" title="Retrieves the minimum and maximum distances used to calculate the 3D roll-off attenuation.">ChannelControl::get3DMinMaxDistance</a> Retrieves the minimum and maximum distances used to calculate the 3D roll-off attenuation.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3docclusion" title="Sets the 3D attenuation factors for the direct and reverb paths.">ChannelControl::set3DOcclusion</a> Sets the 3D attenuation factors for the direct and reverb paths.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3docclusion" title="Retrieves the 3D attenuation factors for the direct and reverb paths.">ChannelControl::get3DOcclusion</a> Retrieves the 3D attenuation factors for the direct and reverb paths.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dspread" title="Sets the spread of a 3D sound in speaker space.">ChannelControl::set3DSpread</a> Sets the spread of a 3D sound in speaker space.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_get3dspread" title="Retrieves the spread of a 3D sound in speaker space.">ChannelControl::get3DSpread</a> Retrieves the spread of a 3D sound in speaker space.</span></li>
|
||||
</ul>
|
||||
<p><strong>Panning and level adjustment:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpan" title="Sets the left/right pan level.">ChannelControl::setPan</a> Sets the left/right pan level.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixlevelsinput" title="Sets the incoming volume level for each channel of a multi-channel signal.">ChannelControl::setMixLevelsInput</a> Sets the incoming volume level for each channel of a multi-channel <a href="glossary.html#signal">signal</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixlevelsoutput" title="Sets the outgoing volume levels for each speaker.">ChannelControl::setMixLevelsOutput</a> Sets the outgoing volume levels for each speaker.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixmatrix" title="Sets a two-dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">ChannelControl::setMixMatrix</a> Sets a two-dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getmixmatrix" title="Retrieves a 2 dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">ChannelControl::getMixMatrix</a> Retrieves a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
</ul>
|
||||
<p><strong>Filtering:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setreverbproperties" title="Sets the wet / send level for a particular reverb instance.">ChannelControl::setReverbProperties</a> Sets the wet / send level for a particular reverb instance.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getreverbproperties" title="Retrieves the wet / send level for a particular reverb instance.">ChannelControl::getReverbProperties</a> Retrieves the wet / send level for a particular reverb instance.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setlowpassgain" title="Sets the gain of the dry signal when built in lowpass / distance filtering is applied.">ChannelControl::setLowPassGain</a> Sets the gain of the dry <a href="glossary.html#signal">signal</a> when built in lowpass / distance filtering is applied.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getlowpassgain" title="Retrieves the gain of the dry signal when built in lowpass / distance filtering is applied.">ChannelControl::getLowPassGain</a> Retrieves the gain of the dry <a href="glossary.html#signal">signal</a> when built in lowpass / distance filtering is applied.</span></li>
|
||||
</ul>
|
||||
<p><strong>DSP chain configuration:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_adddsp" title="Adds a DSP unit to the specified index in the DSP chain.">ChannelControl::addDSP</a> Adds a <a href="glossary.html#dsp">DSP unit</a> to the specified index in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_removedsp" title="Removes the specified DSP unit from the DSP chain.">ChannelControl::removeDSP</a> Removes the specified <a href="glossary.html#dsp">DSP unit</a> from the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getnumdsps" title="Retrieves the number of DSP units in the DSP chain.">ChannelControl::getNumDSPs</a> Retrieves the number of <a href="glossary.html#dsp">DSP units</a> in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdsp" title="Retrieves the DSP unit at the specified index in the DSP chain.">ChannelControl::getDSP</a> Retrieves the <a href="glossary.html#dsp">DSP unit</a> at the specified index in the <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setdspindex" title="Sets the index in the DSP chain of the specified DSP.">ChannelControl::setDSPIndex</a> Sets the index in the <a href="glossary.html#dsp-chain">DSP chain</a> of the specified <a href="glossary.html#dsp">DSP</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdspindex" title="Retrieves the index of a DSP inside the Channel or ChannelGroup's DSP chain.">ChannelControl::getDSPIndex</a> Retrieves the index of a <a href="glossary.html#dsp">DSP</a> inside the <a href="core-api-channel.html">Channel</a> or <a href="core-api-channelgroup.html">ChannelGroup</a>'s <a href="glossary.html#dsp-chain">DSP chain</a>.</span></li>
|
||||
</ul>
|
||||
<p><strong>Sample accurate scheduling:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdspclock" title="Retrieves the DSP clock values at this point in time.">ChannelControl::getDSPClock</a> Retrieves the <a href="glossary.html#dsp-clock">DSP clock</a> values at this point in time.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setdelay" title="Sets a sample accurate start (and/or stop) time relative to the parent ChannelGroup DSP clock.">ChannelControl::setDelay</a> Sets a sample accurate start (and/or stop) time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getdelay" title="Retrieves a sample accurate start (and/or stop) time relative to the parent ChannelGroup DSP clock.">ChannelControl::getDelay</a> Retrieves a sample accurate start (and/or stop) time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_addfadepoint" title="Adds a sample accurate fade point at a time relative to the parent ChannelGroup DSP clock.">ChannelControl::addFadePoint</a> Adds a sample accurate fade point at a time relative to the parent ChannelGroup <a href="glossary.html#dsp-clock">DSP clock</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setfadepointramp" title="Adds a volume ramp at the specified time in the future using fade points.">ChannelControl::setFadePointRamp</a> Adds a volume ramp at the specified time in the future using fade points.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_removefadepoints" title="Removes all fade points between the two specified clock values (inclusive).">ChannelControl::removeFadePoints</a> Removes all fade points between the two specified clock values (inclusive).</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getfadepoints" title="Retrieves information about stored fade points.">ChannelControl::getFadePoints</a> Retrieves information about stored fade points.</span></li>
|
||||
</ul>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setcallback" title="Sets the callback for ChannelControl level notifications.">ChannelControl::setCallback</a> Sets the callback for ChannelControl level notifications.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setuserdata" title="Sets a user value associated with this object.">ChannelControl::setUserData</a> Sets a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getuserdata" title="Retrieves a user value associated with this object.">ChannelControl::getUserData</a> Retrieves a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-channelcontrol.html#channelcontrol_getsystemobject" title="Retrieves the System that created this object.">ChannelControl::getSystemObject</a> Retrieves the System that created this object.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="channelgroup_addgroup"><a href="#channelgroup_addgroup">ChannelGroup::addGroup</a></h2>
|
||||
<p>Adds a ChannelGroup as an input to this group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">addGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="o">*</span><span class="n">group</span><span class="p">,</span>
|
||||
<span class="kt">bool</span> <span class="n">propagatedspclock</span> <span class="o">=</span> <span class="nb">true</span><span class="p">,</span>
|
||||
<span class="n">DSPConnection</span> <span class="o">**</span><span class="n">connection</span> <span class="o">=</span> <span class="k">nullptr</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_AddGroup</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">group</span><span class="p">,</span>
|
||||
<span class="n">FMOD_BOOL</span> <span class="n">propagatedspclock</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">**</span><span class="n">connection</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">addGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="k">group</span><span class="p">,</span>
|
||||
<span class="kt">bool</span> <span class="n">propagatedspclock</span> <span class="p">=</span> <span class="k">true</span>
|
||||
<span class="p">);</span>
|
||||
<span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">addGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="k">group</span><span class="p">,</span>
|
||||
<span class="kt">bool</span> <span class="n">propagatedspclock</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="n">DSPConnection</span> <span class="n">connection</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">addGroup</span><span class="p">(</span>
|
||||
<span class="nx">group</span><span class="p">,</span>
|
||||
<span class="nx">propagatedspclock</span><span class="p">,</span>
|
||||
<span class="nx">connection</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>group</dt>
|
||||
<dd>Group to add. (<a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>)</dd>
|
||||
<dt>propagatedspclock</dt>
|
||||
<dd>
|
||||
<p>Recursively propagate this object's clock values to <code>group</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Boolean</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>connection <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Connection between the head <a class="apilink" href="core-api-dsp.html">DSP</a> of <code>group</code> and the tail <a class="apilink" href="core-api-dsp.html">DSP</a> of this object. (<a class="apilink" href="core-api-dspconnection.html">DSPConnection</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumgroups">ChannelGroup::getNumGroups</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getgroup">ChannelGroup::getGroup</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getparentgroup">ChannelGroup::getParentGroup</a></p>
|
||||
<h2 api="function" id="channelgroup_getchannel"><a href="#channelgroup_getchannel">ChannelGroup::getChannel</a></h2>
|
||||
<p>Retrieves the Channel at the specified index in the list of Channel inputs.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getChannel</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">Channel</span> <span class="o">**</span><span class="n">channel</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetChannel</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNEL</span> <span class="o">**</span><span class="n">channel</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getChannel</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="n">Channel</span> <span class="n">channel</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getChannel</span><span class="p">(</span>
|
||||
<span class="nx">index</span><span class="p">,</span>
|
||||
<span class="nx">channel</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>index</dt>
|
||||
<dd>
|
||||
<p>Offset into the list of <a class="apilink" href="core-api-channel.html">Channel</a> inputs.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumchannels">ChannelGroup::getNumChannels</a>)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>channel <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Channel at the specified index. (<a class="apilink" href="core-api-channel.html">Channel</a>)</dd>
|
||||
</dl>
|
||||
<h2 api="function" id="channelgroup_getgroup"><a href="#channelgroup_getgroup">ChannelGroup::getGroup</a></h2>
|
||||
<p>Retrieves the ChannelGroup at the specified index in the list of group inputs.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getGroup</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">ChannelGroup</span> <span class="o">**</span><span class="n">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetGroup</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">**</span><span class="n">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getGroup</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="n">ChannelGroup</span> <span class="k">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getGroup</span><span class="p">(</span>
|
||||
<span class="nx">index</span><span class="p">,</span>
|
||||
<span class="nx">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>index</dt>
|
||||
<dd>
|
||||
<p>Offset into the list of group inputs.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumgroups">ChannelGroup::getNumGroups</a>)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>group <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Group at the specified index. (<a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelgroup.html#channelgroup_addgroup">ChannelGroup::addGroup</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getparentgroup">ChannelGroup::getParentGroup</a></p>
|
||||
<h2 api="function" id="channelgroup_getname"><a href="#channelgroup_getname">ChannelGroup::getName</a></h2>
|
||||
<p>Retrieves the name set when the group was created.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getName</span><span class="p">(</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetName</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getName</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getName</span><span class="p">(</span>
|
||||
<span class="nx">name</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>name <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Name of the group. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
|
||||
<dt>namelen</dt>
|
||||
<dd>
|
||||
<p>Length of <code>name</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Bytes</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_getmasterchannelgroup">System::getMasterChannelGroup</a>, <a class="apilink" href="core-api-system.html#system_createchannelgroup">System::createChannelGroup</a></p>
|
||||
<h2 api="function" id="channelgroup_getnumchannels"><a href="#channelgroup_getnumchannels">ChannelGroup::getNumChannels</a></h2>
|
||||
<p>Retrieves the number of Channels that feed into to this group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getNumChannels</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numchannels</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetNumChannels</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numchannels</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getNumChannels</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">numchannels</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getNumChannels</span><span class="p">(</span>
|
||||
<span class="nx">numchannels</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>numchannels <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Number of <a class="apilink" href="core-api-channel.html">Channel</a>s.</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelgroup.html#channelgroup_getchannel">ChannelGroup::getChannel</a></p>
|
||||
<h2 api="function" id="channelgroup_getnumgroups"><a href="#channelgroup_getnumgroups">ChannelGroup::getNumGroups</a></h2>
|
||||
<p>Retrieves the number of ChannelGroups that feed into to this group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getNumGroups</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numgroups</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetNumGroups</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numgroups</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getNumGroups</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">numgroups</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getNumGroups</span><span class="p">(</span>
|
||||
<span class="nx">numgroups</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>numgroups <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Number of <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>s.</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelgroup.html#channelgroup_addgroup">ChannelGroup::addGroup</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getgroup">ChannelGroup::getGroup</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getparentgroup">ChannelGroup::getParentGroup</a></p>
|
||||
<h2 api="function" id="channelgroup_getparentgroup"><a href="#channelgroup_getparentgroup">ChannelGroup::getParentGroup</a></h2>
|
||||
<p>Retrieves the ChannelGroup this object outputs to.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">getParentGroup</span><span class="p">(</span>
|
||||
<span class="n">ChannelGroup</span> <span class="o">**</span><span class="n">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_GetParentGroup</span><span class="p">(</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">,</span>
|
||||
<span class="n">FMOD_CHANNELGROUP</span> <span class="o">**</span><span class="n">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">getParentGroup</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">ChannelGroup</span> <span class="k">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">getParentGroup</span><span class="p">(</span>
|
||||
<span class="nx">group</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>group <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Output group. (<a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-channelgroup.html#channelgroup_addgroup">ChannelGroup::addGroup</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getnumgroups">ChannelGroup::getNumGroups</a>, <a class="apilink" href="core-api-channelgroup.html#channelgroup_getgroup">ChannelGroup::getGroup</a></p>
|
||||
<h2 api="function" id="channelgroup_release"><a href="#channelgroup_release">ChannelGroup::release</a></h2>
|
||||
<p>Frees the memory for the group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">ChannelGroup</span><span class="o">::</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_ChannelGroup_Release</span><span class="p">(</span><span class="n">FMOD_CHANNELGROUP</span> <span class="o">*</span><span class="n">channelgroup</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">ChannelGroup</span><span class="p">.</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">ChannelGroup</span><span class="p">.</span><span class="nx">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Any <a class="apilink" href="core-api-channel.html">Channel</a>s or <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>s feeding into this group are moved to the master <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createchannelgroup">System::createChannelGroup</a>, <a class="apilink" href="core-api-system.html#system_getmasterchannelgroup">System::getMasterChannelGroup</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,535 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | DSPConnection</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | DSPConnection</h1>
|
||||
<p>An interface that manages <a href="glossary.html#dsp">Digital Signal Processor (DSP)</a> connections</p>
|
||||
<p><strong>Mix Properties:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_setmix" title="Sets the connection's volume scale.">DSPConnection::setMix</a> Sets the connection's volume scale.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_getmix" title="Retrieves the connection's volume scale.">DSPConnection::getMix</a> Retrieves the connection's volume scale.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_setmixmatrix" title="Sets a 2 dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">DSPConnection::setMixMatrix</a> Sets a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_getmixmatrix" title="Retrieves a 2 dimensional pan matrix that maps the signal from input channels (columns) to output speakers (rows).">DSPConnection::getMixMatrix</a> Retrieves a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</span></li>
|
||||
</ul>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_getinput" title="Retrieves the connection's input DSP unit.">DSPConnection::getInput</a> Retrieves the connection's input <a href="glossary.html#dsp">DSP unit</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_getoutput" title="Retrieves the connection's output DSP unit.">DSPConnection::getOutput</a> Retrieves the connection's output <a href="glossary.html#dsp">DSP unit</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_gettype" title="Retrieves the type of the connection between two DSP units.">DSPConnection::getType</a> Retrieves the type of the connection between two <a href="glossary.html#dsp">DSP units</a>.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_setuserdata" title="Sets a user value associated with this object.">DSPConnection::setUserData</a> Sets a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#dspconnection_getuserdata" title="Retrieves a user value associated with this object.">DSPConnection::getUserData</a> Retrieves a user value associated with this object.</span></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-dspconnection.html#fmod_dspconnection_type" title="List of connection types between two DSP units.">FMOD_DSPCONNECTION_TYPE</a> List of connection types between two <a href="glossary.html#dsp">DSP units</a>.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="dspconnection_getinput"><a href="#dspconnection_getinput">DSPConnection::getInput</a></h2>
|
||||
<p>Retrieves the connection's input <a href="glossary.html#dsp">DSP unit</a>.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getInput</span><span class="p">(</span>
|
||||
<span class="n">DSP</span> <span class="o">**</span><span class="n">input</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetInput</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSP</span> <span class="o">**</span><span class="n">input</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getInput</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">DSP</span> <span class="n">input</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getInput</span><span class="p">(</span>
|
||||
<span class="nx">input</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>input <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Input DSP unit. (<a class="apilink" href="core-api-dsp.html">DSP</a>)</dd>
|
||||
</dl>
|
||||
<p>If this function is called very soon after <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a>, the connection might not be ready because the DSP system is still queued to be connected and may need to wait several milliseconds for the next mix to occur. When this occurs, the function returns <a class="apilink" href="core-api-common.html#fmod_err_notready">FMOD_ERR_NOTREADY</a> and <code>input</code> is null.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_getoutput">DSPConnection::getOutput</a>, <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a></p>
|
||||
<h2 api="function" id="dspconnection_getmix"><a href="#dspconnection_getmix">DSPConnection::getMix</a></h2>
|
||||
<p>Retrieves the connection's volume scale.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getMix</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetMix</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getMix</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getMix</span><span class="p">(</span>
|
||||
<span class="nx">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>volume <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Volume scale applied to the input before being passed to the output. 0 = silent, 1 = full. Negative level inverts the <a href="glossary.html#signal">signal</a>. Values larger than 1 amplify the signal.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> (-inf, inf)</li>
|
||||
<li><span class="label">Default:</span> 1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_setmix">DSPConnection::setMix</a></p>
|
||||
<h2 api="function" id="dspconnection_getmixmatrix"><a href="#dspconnection_getmixmatrix">DSPConnection::getMixMatrix</a></h2>
|
||||
<p>Retrieves a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getMixMatrix</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetMixMatrix</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getMixMatrix</span><span class="p">(</span>
|
||||
<span class="kt">float</span><span class="p">[]</span> <span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span> <span class="p">=</span> <span class="m">0</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getMixMatrix</span><span class="p">(</span>
|
||||
<span class="nx">matrix</span><span class="p">,</span>
|
||||
<span class="nx">outchannels</span><span class="p">,</span>
|
||||
<span class="nx">inchannels</span><span class="p">,</span>
|
||||
<span class="nx">inchannel_hop</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>matrix <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>
|
||||
<p>Two dimensional array of volume levels in row-major order. Each row represents an output speaker, each column represents an input channel. Passing null or equivalent as the matrix allows querying of <code>outchannels</code> and <code>inchannels</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> (-inf, inf)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>outchannels <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Number of valid output channels (rows) in <code>matrix</code>. Optional only when <code>matrix</code> is null or equivalent.</dd>
|
||||
<dt>inchannels <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Number of valid input channels (columns) in <code>matrix</code>. Optional only when <code>matrix</code> is null or equivalent.</dd>
|
||||
<dt>inchannel_hop <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Width (total number of columns) in destination <code>matrix</code>. Can be larger than <code>inchannels</code> to represent a smaller valid region inside a larger matrix.</dd>
|
||||
</dl>
|
||||
<p>A matrix element is referenced from the incoming matrix data as <code>outchannel * inchannel_hop + inchannel</code>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_setmixmatrix">DSPConnection::setMixMatrix</a></p>
|
||||
<h2 api="function" id="dspconnection_getoutput"><a href="#dspconnection_getoutput">DSPConnection::getOutput</a></h2>
|
||||
<p>Retrieves the connection's output <a href="glossary.html#dsp">DSP unit</a>.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getOutput</span><span class="p">(</span>
|
||||
<span class="n">DSP</span> <span class="o">**</span><span class="n">output</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetOutput</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSP</span> <span class="o">**</span><span class="n">output</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getOutput</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">DSP</span> <span class="n">output</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getOutput</span><span class="p">(</span>
|
||||
<span class="nx">output</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>output <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Output DSP unit. (<a class="apilink" href="core-api-dsp.html">DSP</a>)</dd>
|
||||
</dl>
|
||||
<p>If this function is called very soon after <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a>, the connection might not be ready because the DSP system is still queued to be connected and may need to wait several milliseconds for the next mix to occur. When this occurs, the function returns <a class="apilink" href="core-api-common.html#fmod_err_notready">FMOD_ERR_NOTREADY</a> and <code>output</code> is null.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_getinput">DSPConnection::getInput</a>, <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a></p>
|
||||
<h2 api="function" id="dspconnection_gettype"><a href="#dspconnection_gettype">DSPConnection::getType</a></h2>
|
||||
<p>Retrieves the type of the connection between two <a href="glossary.html#dsp">DSP units</a>.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getType</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE</span> <span class="o">*</span><span class="n">type</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetType</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE</span> <span class="o">*</span><span class="n">type</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getType</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">DSPCONNECTION_TYPE</span> <span class="n">type</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getType</span><span class="p">(</span>
|
||||
<span class="nx">type</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>type <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Type of connection. (<a class="apilink" href="core-api-dspconnection.html#fmod_dspconnection_type">FMOD_DSPCONNECTION_TYPE</a>)</dd>
|
||||
</dl>
|
||||
<h2 api="function" id="dspconnection_getuserdata"><a href="#dspconnection_getuserdata">DSPConnection::getUserData</a></h2>
|
||||
<p>Retrieves a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_GetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">getUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>User data set by calling <a class="apilink" href="core-api-dspconnection.html#dspconnection_setuserdata">DSPConnection::setUserData</a>.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be retrieved from this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<h2 api="function" id="dspconnection_setmix"><a href="#dspconnection_setmix">DSPConnection::setMix</a></h2>
|
||||
<p>Sets the connection's volume scale.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">setMix</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_SetMix</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">setMix</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">setMix</span><span class="p">(</span>
|
||||
<span class="nx">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>volume</dt>
|
||||
<dd>
|
||||
<p>Volume scale applied to the input before being passed to the output. 0 = silent, 1 = full. Negative level inverts the <a href="glossary.html#signal">signal</a>. Values larger than 1 amplify the signal.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> (-inf, inf)</li>
|
||||
<li><span class="label">Default:</span> 1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_getmix">DSPConnection::getMix</a>, <a class="apilink" href="core-api-dspconnection.html#dspconnection_setmixmatrix">DSPConnection::setMixMatrix</a>, <a class="apilink" href="core-api-dspconnection.html#dspconnection_getmixmatrix">DSPConnection::getMixMatrix</a></p>
|
||||
<h2 api="function" id="dspconnection_setmixmatrix"><a href="#dspconnection_setmixmatrix">DSPConnection::setMixMatrix</a></h2>
|
||||
<p>Sets a 2 dimensional pan matrix that maps the <a href="glossary.html#signal">signal</a> from input channels (columns) to output speakers (rows).</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">setMixMatrix</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_SetMixMatrix</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">setMixMatrix</span><span class="p">(</span>
|
||||
<span class="kt">float</span><span class="p">[]</span> <span class="n">matrix</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">outchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannels</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">inchannel_hop</span> <span class="p">=</span> <span class="m">0</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">setMixMatrix</span><span class="p">(</span>
|
||||
<span class="nx">matrix</span><span class="p">,</span>
|
||||
<span class="nx">outchannels</span><span class="p">,</span>
|
||||
<span class="nx">inchannels</span><span class="p">,</span>
|
||||
<span class="nx">inchannel_hop</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>matrix <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>
|
||||
<p>Two dimensional array of volume levels in row-major order. Each row represents an output speaker, each column represents an input channel. Null or equivalent sets a 'default' matrix.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> (-inf, inf)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>outchannels</dt>
|
||||
<dd>
|
||||
<p>Number of output channels (rows) in <code>matrix</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-common.html#fmod_max_channel_width">FMOD_MAX_CHANNEL_WIDTH</a>]</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>inchannels</dt>
|
||||
<dd>
|
||||
<p>Number of input channels (columns) in <code>matrix</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [0, <a class="apilink" href="core-api-common.html#fmod_max_channel_width">FMOD_MAX_CHANNEL_WIDTH</a>]</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>inchannel_hop <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Width (total number of columns) in source <code>matrix</code>. Can be larger than <code>inchannels</code> to represent a smaller valid region inside a larger matrix.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>Range: [0, <a class="apilink" href="core-api-common.html#fmod_max_channel_width">FMOD_MAX_CHANNEL_WIDTH</a>]</li>
|
||||
<li>Default: <code>inchannels</code></li>
|
||||
</ul>
|
||||
<p>A matrix element is referenced from the incoming matrix data as <code>outchannel * inchannel_hop + inchannel</code>.</p>
|
||||
<p>If null or equivalent is passed in via <code>matrix</code> a default upmix, downmix, or unit matrix will take its place. A unit matrix allows a signal to pass through unchanged.</p>
|
||||
<p>Example 5.1 unit matrix:</p>
|
||||
<pre><code>1 0 0 0 0 0
|
||||
0 1 0 0 0 0
|
||||
0 0 1 0 0 0
|
||||
0 0 0 1 0 0
|
||||
0 0 0 0 1 0
|
||||
0 0 0 0 0 1
|
||||
</code></pre>
|
||||
<p>Matrix element values can be below 0 to invert a signal and above 1 to amplify the signal. Note that increasing the signal level too far may cause audible distortion.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_getmixmatrix">DSPConnection::getMixMatrix</a></p>
|
||||
<h2 api="function" id="dspconnection_setuserdata"><a href="#dspconnection_setuserdata">DSPConnection::setUserData</a></h2>
|
||||
<p>Sets a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">DSPConnection</span><span class="o">::</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_DSPConnection_SetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_DSPCONNECTION</span> <span class="o">*</span><span class="n">dspconnection</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">DSPConnection</span><span class="p">.</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">DSPConnection</span><span class="p">.</span><span class="nx">setUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata</dt>
|
||||
<dd>Value stored on this object.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be attached to this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dspconnection.html#dspconnection_getuserdata">DSPConnection::getUserData</a></p>
|
||||
<h2 api="enum" id="fmod_dspconnection_type"><a href="#fmod_dspconnection_type">FMOD_DSPCONNECTION_TYPE</a></h2>
|
||||
<p>List of connection types between two <a href="glossary.html#dsp">DSP units</a>.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FMOD_DSPCONNECTION_TYPE</span> <span class="p">{</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE_STANDARD</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE_SIDECHAIN</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE_SEND</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE_SEND_SIDECHAIN</span><span class="p">,</span>
|
||||
<span class="n">FMOD_DSPCONNECTION_TYPE_MAX</span>
|
||||
<span class="p">}</span> <span class="n">FMOD_DSPCONNECTION_TYPE</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">DSPCONNECTION_TYPE</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">STANDARD</span><span class="p">,</span>
|
||||
<span class="n">SIDECHAIN</span><span class="p">,</span>
|
||||
<span class="n">SEND</span><span class="p">,</span>
|
||||
<span class="n">SEND_SIDECHAIN</span><span class="p">,</span>
|
||||
<span class="n">MAX</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD</span><span class="p">.</span><span class="nx">DSPCONNECTION_TYPE_STANDARD</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">DSPCONNECTION_TYPE_SIDECHAIN</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">DSPCONNECTION_TYPE_SEND</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">DSPCONNECTION_TYPE_SEND_SIDECHAIN</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">DSPCONNECTION_TYPE_MAX</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fmod_dspconnection_type_standard">FMOD_DSPCONNECTION_TYPE_STANDARD</dt>
|
||||
<dd>Default connection type. Audio is mixed from the input to the output DSP's audible buffer. </dd>
|
||||
<dt id="fmod_dspconnection_type_sidechain">FMOD_DSPCONNECTION_TYPE_SIDECHAIN</dt>
|
||||
<dd>Sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer.</dd>
|
||||
<dt id="fmod_dspconnection_type_send">FMOD_DSPCONNECTION_TYPE_SEND</dt>
|
||||
<dd>Send connection type. Audio is mixed from the input to the output DSP's audible buffer, but the input is not executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. </dd>
|
||||
<dt id="fmod_dspconnection_type_send_sidechain">FMOD_DSPCONNECTION_TYPE_SEND_SIDECHAIN</dt>
|
||||
<dd>Send sidechain connection type. Audio is mixed from the input to the output DSP's sidechain buffer, but the input is not executed, only copied from. A standard connection or sidechain needs to make an input execute to generate data. </dd>
|
||||
<dt id="fmod_dspconnection_type_max">FMOD_DSPCONNECTION_TYPE_MAX</dt>
|
||||
<dd>Maximum number of DSP connection types supported. </dd>
|
||||
</dl>
|
||||
<p>FMOD_DSP_CONNECTION_TYPE_STANDARD</p>
|
||||
<hr />
|
||||
<p>Default <a class="apilink" href="core-api-dspconnection.html">DSPConnection</a> type. Audio is mixed from the input to the output DSP's audible buffer, meaning it will be part of the audible <a href="glossary.html#signal">signal</a>. A standard connection executes its input DSP if it has not been executed before.</p>
|
||||
<p>FMOD_DSP_CONNECTION_TYPE_SIDECHAIN</p>
|
||||
<hr />
|
||||
<p>Sidechain <a class="apilink" href="core-api-dspconnection.html">DSPConnection</a> type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it will not be part of the audible signal. A sidechain connection executes its input DSP if it has not been executed before.</p>
|
||||
<p>This separate sidechain buffer exists so that the DSP can privately access it for analysis purposes. For example, a <a href="effects-reference.html#compressor">compressor DSP</a> could analyze the signal and use the result of that analysis to control its own compression level and gain parameters.</p>
|
||||
<p>When a sidechain is connected to a DSP, the sidechain buffer is a member of the <a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state">FMOD_DSP_STATE</a> struct, which is itself passed in as a parameter of the read callback. This data simplifies the development of effects that make use of sidechaining.</p>
|
||||
<p><a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state_sidechaindata">FMOD_DSP_STATE::sidechaindata</a> and <a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state_sidechainchannels">FMOD_DSP_STATE::sidechainchannels</a> will hold the mixed result of any sidechain data flowing into it.</p>
|
||||
<p>FMOD_DSP_CONNECTION_TYPE_SEND</p>
|
||||
<hr />
|
||||
<p>Send <a class="apilink" href="core-api-dspconnection.html">DSPConnection</a> type. Audio is mixed from the input to the output DSP's audible buffer, meaning it becomes part of the audible signal. A send connection will not execute its input <a class="apilink" href="core-api-dsp.html">DSP</a> if it has not been executed before.</p>
|
||||
<p>A send connection only reads what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'return').</p>
|
||||
<p>FMOD_DSP_CONNECTION_TYPE_SEND_SIDECHAIN</p>
|
||||
<hr />
|
||||
<p>Send sidechain <a class="apilink" href="core-api-dspconnection.html">DSPConnection</a> type. Audio is mixed from the input to the output DSP's sidechain buffer, meaning it does not become part of the audible signal. A send sidechain connection does not execute its input DSP if it has not been executed before.</p>
|
||||
<p>A send sidechain connection only reads what exists at the input's buffer at the time of executing the output DSP unit (which can be considered the 'sidechain return').</p>
|
||||
<p>When a sidechain is connected to a DSP, the sidechain data is stored in the <a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state">FMOD_DSP_STATE</a> struct that is a function parameter of the read callback. This data simplifies the development of effects that make use of sidechaining.</p>
|
||||
<p><a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state_sidechaindata">FMOD_DSP_STATE::sidechaindata</a> and <a class="apilink" href="plugin-api-dsp.html#fmod_dsp_state_sidechainchannels">FMOD_DSP_STATE::sidechainchannels</a> hold the mixed result of any sidechain data flowing into them.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-dsp.html#dsp_addinput">DSP::addInput</a>, <a class="apilink" href="core-api-dspconnection.html#dspconnection_gettype">DSPConnection::getType</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,95 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | Android Specific</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | Android Specific</h1>
|
||||
<p>APIs and types for Android platform, see fmod_android.h</p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-platform-android.html#fmod_android_jni_init" title="Call to initialize FMOD from a native activity.">FMOD_Android_JNI_Init</a> Call to initialize FMOD from a native activity.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-platform-android.html#fmod_android_jni_close" title="Call to uninitialize FMOD from a native activity.">FMOD_Android_JNI_Close</a> Call to uninitialize FMOD from a native activity.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="fmod_android_jni_close"><a href="#fmod_android_jni_close">FMOD_Android_JNI_Close</a></h2>
|
||||
<p>Call to uninitialize FMOD from a native activity.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Android_JNI_Close</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">Android</span><span class="p">.</span><span class="n">JNI_Close</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="admonition language-javascript">
|
||||
<p>Not supported for JavaScript.</p>
|
||||
</div>
|
||||
<p>When using a native activity, you will need to call this function after calling <a class="apilink" href="core-api-system.html#system_release">System::release</a>.</p>
|
||||
<p><strong>See Also:</strong> <a href="platforms-android.html#java">Java</a></p>
|
||||
<h2 api="function" id="fmod_android_jni_init"><a href="#fmod_android_jni_init">FMOD_Android_JNI_Init</a></h2>
|
||||
<p>Call to initialize FMOD from a native activity.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Android_JNI_Init</span><span class="p">(</span>
|
||||
<span class="n">JavaVM</span> <span class="o">*</span><span class="n">vm</span><span class="p">,</span>
|
||||
<span class="n">jobject</span> <span class="n">javaActivity</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">Android</span><span class="p">.</span><span class="n">JNI_Init</span><span class="p">(</span>
|
||||
<span class="n">IntPtr</span> <span class="n">vm</span><span class="p">,</span>
|
||||
<span class="n">IntPtr</span> <span class="n">javaActivity</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="admonition language-javascript">
|
||||
<p>Not supported for JavaScript.</p>
|
||||
</div>
|
||||
<dl>
|
||||
<dt>vm</dt>
|
||||
<dd>Pointer to the <code>ANativeActivity::vm</code> JavaVM.</dd>
|
||||
<dt>javaActivity</dt>
|
||||
<dd>Pointer to your <code>ANativeActivity::clazz</code> jobject.</dd>
|
||||
</dl>
|
||||
<p>When using a native activity, you will need to call this function before making calls into the FMOD API.<br />
|
||||
The vm must be attached to the current thread before being passed to this function. For example:</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">mApp</span><span class="o">-></span><span class="n">activity</span><span class="o">-></span><span class="n">vm</span><span class="o">-></span><span class="n">AttachCurrentThread</span><span class="p">(</span><span class="o">&</span><span class="n">mJniEnv</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
|
||||
<span class="n">FMOD_Android_JNI_Init</span><span class="p">(</span><span class="n">mApp</span><span class="o">-></span><span class="n">activity</span><span class="o">-></span><span class="n">vm</span><span class="p">,</span> <span class="n">mApp</span><span class="o">-></span><span class="n">activity</span><span class="o">-></span><span class="n">clazz</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<p><strong>See Also:</strong> <a href="platforms-android.html#java">Java</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,68 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | iOS Specific</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | iOS Specific</h1>
|
||||
<p>APIs and types for iOS platform, see fmod_ios.h</p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-platform-ios.html#fmod_audioqueue_codecpolicy" title="Control whether the sound will use a the dedicated hardware decoder or a software codec.">FMOD_AUDIOQUEUE_CODECPOLICY</a> Control whether the sound will use a the dedicated hardware decoder or a software codec.</span></li>
|
||||
</ul>
|
||||
<h2 api="enum" id="fmod_audioqueue_codecpolicy"><a href="#fmod_audioqueue_codecpolicy">FMOD_AUDIOQUEUE_CODECPOLICY</a></h2>
|
||||
<p>Control whether the sound will use a the dedicated hardware decoder or a software codec.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FMOD_AUDIOQUEUE_CODECPOLICY</span> <span class="p">{</span>
|
||||
<span class="n">FMOD_AUDIOQUEUE_CODECPOLICY_DEFAULT</span><span class="p">,</span>
|
||||
<span class="n">FMOD_AUDIOQUEUE_CODECPOLICY_SOFTWAREONLY</span><span class="p">,</span>
|
||||
<span class="n">FMOD_AUDIOQUEUE_CODECPOLICY_HARDWAREONLY</span>
|
||||
<span class="p">}</span> <span class="n">FMOD_AUDIOQUEUE_CODECPOLICY</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="admonition language-csharp">
|
||||
<p>Not supported for C#.</p>
|
||||
</div>
|
||||
<div class="admonition language-javascript">
|
||||
<p>Not supported for JavaScript.</p>
|
||||
</div>
|
||||
<dl>
|
||||
<dt id="fmod_audioqueue_codecpolicy_default">FMOD_AUDIOQUEUE_CODECPOLICY_DEFAULT</dt>
|
||||
<dd>Try hardware first, if it's in use or prohibited by audio session, try software.</dd>
|
||||
<dt id="fmod_audioqueue_codecpolicy_softwareonly">FMOD_AUDIOQUEUE_CODECPOLICY_SOFTWAREONLY</dt>
|
||||
<dd>kAudioQueueHardwareCodecPolicy_UseSoftwareOnly ~ try software, if not available fail.</dd>
|
||||
<dt id="fmod_audioqueue_codecpolicy_hardwareonly">FMOD_AUDIOQUEUE_CODECPOLICY_HARDWAREONLY</dt>
|
||||
<dd>kAudioQueueHardwareCodecPolicy_UseHardwareOnly ~ try hardware, if not available fail.</dd>
|
||||
</dl>
|
||||
<p>Every devices has a single hardware decoder and unlimited software decoders.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#fmod_createsoundexinfo">FMOD_CREATESOUNDEXINFO</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,422 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | Reverb3D</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | Reverb3D</h1>
|
||||
<p>An interface that manages virtual 3D reverb spheres. See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_set3dattributes" title="Sets the 3D attributes of a reverb sphere.">Reverb3D::set3DAttributes</a> Sets the 3D attributes of a reverb sphere.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_get3dattributes" title="Retrieves the 3D attributes of a reverb sphere.">Reverb3D::get3DAttributes</a> Retrieves the 3D attributes of a reverb sphere.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_setproperties" title="Sets the environmental properties of a reverb sphere.">Reverb3D::setProperties</a> Sets the environmental properties of a reverb sphere.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_getproperties" title="Retrieves the environmental properties of a reverb sphere.">Reverb3D::getProperties</a> Retrieves the environmental properties of a reverb sphere.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_setactive" title="Sets the active state.">Reverb3D::setActive</a> Sets the active state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_getactive" title="Retrieves the active state.">Reverb3D::getActive</a> Retrieves the active state.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_setuserdata" title="Sets a user value associated with this object.">Reverb3D::setUserData</a> Sets a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_getuserdata" title="Retrieves a user value associated with this object.">Reverb3D::getUserData</a> Retrieves a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-reverb3d.html#reverb3d_release" title="Releases the memory for a reverb object and makes it inactive.">Reverb3D::release</a> Releases the memory for a reverb object and makes it inactive.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="reverb3d_get3dattributes"><a href="#reverb3d_get3dattributes">Reverb3D::get3DAttributes</a></h2>
|
||||
<p>Retrieves the 3D attributes of a reverb sphere.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">get3DAttributes</span><span class="p">(</span>
|
||||
<span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_Get3DAttributes</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">get3DAttributes</span><span class="p">(</span>
|
||||
<span class="k">ref</span> <span class="n">VECTOR</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="k">ref</span> <span class="kt">float</span> <span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="k">ref</span> <span class="kt">float</span> <span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">get3DAttributes</span><span class="p">(</span>
|
||||
<span class="nx">position</span><span class="p">,</span>
|
||||
<span class="nx">mindistance</span><span class="p">,</span>
|
||||
<span class="nx">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>position <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Position in 3D space represnting the center of the reverb. (<a class="apilink" href="core-api-common.html#fmod_vector">FMOD_VECTOR</a>)</dd>
|
||||
<dt>mindistance <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Distance from the centerpoint within which the reverb will have full effect.</dd>
|
||||
<dt>maxdistance <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Distance from the centerpoint beyond which the reverb will have no effect.</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_set3dattributes">Reverb3D::set3DAttributes</a></p>
|
||||
<h2 api="function" id="reverb3d_getactive"><a href="#reverb3d_getactive">Reverb3D::getActive</a></h2>
|
||||
<p>Retrieves the active state.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">getActive</span><span class="p">(</span>
|
||||
<span class="kt">bool</span> <span class="o">*</span><span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_GetActive</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="n">FMOD_BOOL</span> <span class="o">*</span><span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">getActive</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">bool</span> <span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">getActive</span><span class="p">(</span>
|
||||
<span class="nx">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>active <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Active state of the reverb sphere.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Boolean</li>
|
||||
<li><span class="label">Default:</span> True</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_setactive">Reverb3D::setActive</a></p>
|
||||
<h2 api="function" id="reverb3d_getproperties"><a href="#reverb3d_getproperties">Reverb3D::getProperties</a></h2>
|
||||
<p>Retrieves the environmental properties of a reverb sphere.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">getProperties</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB_PROPERTIES</span> <span class="o">*</span><span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_GetProperties</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="n">FMOD_REVERB_PROPERTIES</span> <span class="o">*</span><span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">getProperties</span><span class="p">(</span>
|
||||
<span class="k">ref</span> <span class="n">REVERB_PROPERTIES</span> <span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">getProperties</span><span class="p">(</span>
|
||||
<span class="nx">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>properties <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Reverb properties. (<a class="apilink" href="core-api-system.html#fmod_reverb_properties">FMOD_REVERB_PROPERTIES</a>)</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_setproperties">Reverb3D::setProperties</a></p>
|
||||
<h2 api="function" id="reverb3d_getuserdata"><a href="#reverb3d_getuserdata">Reverb3D::getUserData</a></h2>
|
||||
<p>Retrieves a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_GetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">getUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>User data set by calling <a class="apilink" href="core-api-reverb3d.html#reverb3d_setuserdata">Reverb3D::setUserData</a>.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be retrieved from this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<p><strong>See Also:</strong> <a href="white-papers-3d-reverb.html">3D Reverb</a></p>
|
||||
<h2 api="function" id="reverb3d_release"><a href="#reverb3d_release">Reverb3D::release</a></h2>
|
||||
<p>Releases the memory for a reverb object and makes it inactive.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_Release</span><span class="p">(</span><span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>If you release all Reverb3D objects and have not added a new Reverb3D object, <a class="apilink" href="core-api-system.html#system_setreverbproperties">System::setReverbProperties</a> should be called to reset the reverb properties.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createreverb3d">System::createReverb3D</a></p>
|
||||
<h2 api="function" id="reverb3d_set3dattributes"><a href="#reverb3d_set3dattributes">Reverb3D::set3DAttributes</a></h2>
|
||||
<p>Sets the 3D attributes of a reverb sphere.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">set3DAttributes</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_Set3DAttributes</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="n">FMOD_VECTOR</span> <span class="o">*</span><span class="n">position</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">set3DAttributes</span><span class="p">(</span>
|
||||
<span class="k">ref</span> <span class="n">VECTOR</span> <span class="n">position</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">mindistance</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">set3DAttributes</span><span class="p">(</span>
|
||||
<span class="nx">position</span><span class="p">,</span>
|
||||
<span class="nx">mindistance</span><span class="p">,</span>
|
||||
<span class="nx">maxdistance</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>position <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>
|
||||
<p>Position in 3D space represnting the center of the reverb. (<a class="apilink" href="core-api-common.html#fmod_vector">FMOD_VECTOR</a>)</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> <a href="glossary.html#distance-units">Distance units</a></li>
|
||||
<li><span class="label">Default:</span> (0, 0, 0)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>mindistance</dt>
|
||||
<dd>
|
||||
<p>Distance from the centerpoint within which the reverb will have full effect.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> <a href="glossary.html#distance-units">Distance units</a></li>
|
||||
<li><span class="label">Default:</span> 0</li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt>maxdistance</dt>
|
||||
<dd>
|
||||
<p>Distance from the centerpoint beyond which the reverb will have no effect.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> <a href="glossary.html#distance-units">Distance units</a></li>
|
||||
<li><span class="label">Default:</span> 0</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p>When the position of the listener is less than maxdistance away from the position of one or more reverb objects, the listener's 3D reverb properties are a weighted combination of those reverb objects. Otherwise, the <a href="effects-reference.html#sfx-reverb">reverb DSP</a> will use the global reverb settings.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_get3dattributes">Reverb3D::get3DAttributes</a></p>
|
||||
<h2 api="function" id="reverb3d_setactive"><a href="#reverb3d_setactive">Reverb3D::setActive</a></h2>
|
||||
<p>Sets the active state.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">setActive</span><span class="p">(</span>
|
||||
<span class="kt">bool</span> <span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_SetActive</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="n">FMOD_BOOL</span> <span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">setActive</span><span class="p">(</span>
|
||||
<span class="kt">bool</span> <span class="n">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">setActive</span><span class="p">(</span>
|
||||
<span class="nx">active</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>active</dt>
|
||||
<dd>
|
||||
<p>Active state of the reverb sphere.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Boolean</li>
|
||||
<li><span class="label">Default:</span> True</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_getactive">Reverb3D::getActive</a></p>
|
||||
<h2 api="function" id="reverb3d_setproperties"><a href="#reverb3d_setproperties">Reverb3D::setProperties</a></h2>
|
||||
<p>Sets the environmental properties of a reverb sphere.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">setProperties</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="n">FMOD_REVERB_PROPERTIES</span> <span class="o">*</span><span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_SetProperties</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="n">FMOD_REVERB_PROPERTIES</span> <span class="o">*</span><span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">setProperties</span><span class="p">(</span>
|
||||
<span class="k">ref</span> <span class="n">REVERB_PROPERTIES</span> <span class="n">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">setProperties</span><span class="p">(</span>
|
||||
<span class="nx">properties</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>properties</dt>
|
||||
<dd>Reverb properties. (<a class="apilink" href="core-api-system.html#fmod_reverb_properties">FMOD_REVERB_PROPERTIES</a>)</dd>
|
||||
</dl>
|
||||
<p>See the <a href="white-papers-3d-reverb.html">3D Reverb</a> guide for more information.</p>
|
||||
<p>Reverb presets are available, see <a class="apilink" href="core-api-system.html#fmod_reverb_presets">FMOD_REVERB_PRESETS</a>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_getproperties">Reverb3D::getProperties</a></p>
|
||||
<h2 api="function" id="reverb3d_setuserdata"><a href="#reverb3d_setuserdata">Reverb3D::setUserData</a></h2>
|
||||
<p>Sets a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">Reverb3D</span><span class="o">::</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_Reverb3D_SetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_REVERB3D</span> <span class="o">*</span><span class="n">reverb3d</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">Reverb3D</span><span class="p">.</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">Reverb3D</span><span class="p">.</span><span class="nx">setUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata</dt>
|
||||
<dd>Value stored on this object.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be attached to this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-reverb3d.html#reverb3d_getuserdata">Reverb3D::getUserData</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,774 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference | SoundGroup</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-inactive-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li class="manual-current-chapter manual-active-chapter"><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference | SoundGroup</h1>
|
||||
<p>An interface that manages Sound Groups</p>
|
||||
<p><strong>Group Functions:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible" title="Sets the maximum number of playbacks to be audible at once in a sound group.">SoundGroup::setMaxAudible</a> Sets the maximum number of playbacks to be audible at once in a sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudible" title="Retrieves the maximum number of playbacks to be audible at once in a sound group.">SoundGroup::getMaxAudible</a> Retrieves the maximum number of playbacks to be audible at once in a sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudiblebehavior" title="This function changes the way the sound playback behaves when too many sounds are playing in a soundgroup.">SoundGroup::setMaxAudibleBehavior</a> This function changes the way the sound playback behaves when too many sounds are playing in a soundgroup.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudiblebehavior" title="Retrieves the current max audible behavior.">SoundGroup::getMaxAudibleBehavior</a> Retrieves the current max audible behavior.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setmutefadespeed" title="Sets a mute fade time.">SoundGroup::setMuteFadeSpeed</a> Sets a mute fade time.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getmutefadespeed" title="Retrieves the current mute fade time.">SoundGroup::getMuteFadeSpeed</a> Retrieves the current mute fade time.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setvolume" title="Sets the volume of the sound group.">SoundGroup::setVolume</a> Sets the volume of the sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getvolume" title="Retrieves the volume of the sound group.">SoundGroup::getVolume</a> Retrieves the volume of the sound group.</span></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior" title="Values specifying behavior when a sound group's max audible value is exceeded.">FMOD_SOUNDGROUP_BEHAVIOR</a> Values specifying behavior when a sound group's max audible value is exceeded.</span></li>
|
||||
</ul>
|
||||
<p><strong>Sound Functions:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible" title="Sets the maximum number of playbacks to be audible at once in a sound group.">SoundGroup::setMaxAudible</a> Sets the maximum number of playbacks to be audible at once in a sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudible" title="Retrieves the maximum number of playbacks to be audible at once in a sound group.">SoundGroup::getMaxAudible</a> Retrieves the maximum number of playbacks to be audible at once in a sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getnumsounds" title="Retrieves the current number of sounds in this sound group.">SoundGroup::getNumSounds</a> Retrieves the current number of sounds in this sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getsound" title="Retrieves a sound.">SoundGroup::getSound</a> Retrieves a sound.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getnumplaying" title="Retrieves the number of currently playing Channels for the SoundGroup.">SoundGroup::getNumPlaying</a> Retrieves the number of currently playing Channels for the SoundGroup.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_stop" title="Stops all sounds within this soundgroup.">SoundGroup::stop</a> Stops all sounds within this soundgroup.</span></li>
|
||||
</ul>
|
||||
<p><strong>General:</strong></p>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getname" title="Retrieves the name of the sound group.">SoundGroup::getName</a> Retrieves the name of the sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_release" title="Releases a soundgroup object and returns all sounds back to the master sound group.">SoundGroup::release</a> Releases a soundgroup object and returns all sounds back to the master sound group.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_setuserdata" title="Sets a user value associated with this object.">SoundGroup::setUserData</a> Sets a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getuserdata" title="Retrieves a user value associated with this object.">SoundGroup::getUserData</a> Retrieves a user value associated with this object.</span></li>
|
||||
<li><span><a class="apilink" href="core-api-soundgroup.html#soundgroup_getsystemobject" title="Retrieves the parent System object.">SoundGroup::getSystemObject</a> Retrieves the parent System object.</span></li>
|
||||
</ul>
|
||||
<h2 api="enum" id="fmod_soundgroup_behavior"><a href="#fmod_soundgroup_behavior">FMOD_SOUNDGROUP_BEHAVIOR</a></h2>
|
||||
<p>Values specifying behavior when a sound group's max audible value is exceeded.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c-cpp"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span> <span class="p">{</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR_FAIL</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR_MUTE</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR_MAX</span>
|
||||
<span class="p">}</span> <span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="k">enum</span> <span class="n">SOUNDGROUP_BEHAVIOR</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">BEHAVIOR_FAIL</span><span class="p">,</span>
|
||||
<span class="n">BEHAVIOR_MUTE</span><span class="p">,</span>
|
||||
<span class="n">BEHAVIOR_STEALLOWEST</span><span class="p">,</span>
|
||||
<span class="n">MAX</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">FMOD</span><span class="p">.</span><span class="nx">SOUNDGROUP_BEHAVIOR_FAIL</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">SOUNDGROUP_BEHAVIOR_MUTE</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">SOUNDGROUP_BEHAVIOR_STEALLOWEST</span>
|
||||
<span class="nx">FMOD</span><span class="p">.</span><span class="nx">SOUNDGROUP_BEHAVIOR_MAX</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fmod_soundgroup_behavior_fail">FMOD_SOUNDGROUP_BEHAVIOR_FAIL</dt>
|
||||
<dd>Excess sounds will fail when calling <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a>.</dd>
|
||||
<dt id="fmod_soundgroup_behavior_mute">FMOD_SOUNDGROUP_BEHAVIOR_MUTE</dt>
|
||||
<dd>Excess sounds will begin mute and will become audible when sufficient sounds are stopped.</dd>
|
||||
<dt id="fmod_soundgroup_behavior_steallowest">FMOD_SOUNDGROUP_BEHAVIOR_STEALLOWEST</dt>
|
||||
<dd>Excess sounds will steal from the quietest <a class="apilink" href="core-api-sound.html">Sound</a> playing in the group.</dd>
|
||||
<dt id="fmod_soundgroup_behavior_max">FMOD_SOUNDGROUP_BEHAVIOR_MAX</dt>
|
||||
<dd>Maximum number of <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a> behaviors. </dd>
|
||||
</dl>
|
||||
<p>When using <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior_mute">FMOD_SOUNDGROUP_BEHAVIOR_MUTE</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmutefadespeed">SoundGroup::setMuteFadeSpeed</a> can be used to stop a sudden transition.<br />
|
||||
Instead, the time specified will be used to cross fade between the sounds that go silent and the ones that become audible.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudiblebehavior">SoundGroup::setMaxAudibleBehavior</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudiblebehavior">SoundGroup::getMaxAudibleBehavior</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible">SoundGroup::setMaxAudible</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudible">SoundGroup::getMaxAudible</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmutefadespeed">SoundGroup::setMuteFadeSpeed</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmutefadespeed">SoundGroup::getMuteFadeSpeed</a></p>
|
||||
<h2 api="function" id="soundgroup_getmaxaudible"><a href="#soundgroup_getmaxaudible">SoundGroup::getMaxAudible</a></h2>
|
||||
<p>Retrieves the maximum number of playbacks to be audible at once in a sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getMaxAudible</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetMaxAudible</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getMaxAudible</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getMaxAudible</span><span class="p">(</span>
|
||||
<span class="nx">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>maxaudible <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Maximum number of playbacks to be audible at once.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [-1, inf)</li>
|
||||
<li><span class="label">Default:</span> -1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible">SoundGroup::setMaxAudible</a></p>
|
||||
<h2 api="function" id="soundgroup_getmaxaudiblebehavior"><a href="#soundgroup_getmaxaudiblebehavior">SoundGroup::getMaxAudibleBehavior</a></h2>
|
||||
<p>Retrieves the current max audible behavior.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span> <span class="o">*</span><span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span> <span class="o">*</span><span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">SOUNDGROUP_BEHAVIOR</span> <span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="nx">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>behavior <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p><a class="apilink" href="core-api-soundgroup.html">SoundGroup</a> max playbacks behavior. (<a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior">FMOD_SOUNDGROUP_BEHAVIOR</a>)</p>
|
||||
<ul>
|
||||
<li><span class="label">Default:</span> <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior_fail">FMOD_SOUNDGROUP_BEHAVIOR_FAIL</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudiblebehavior">SoundGroup::setMaxAudibleBehavior</a></p>
|
||||
<h2 api="function" id="soundgroup_getmutefadespeed"><a href="#soundgroup_getmutefadespeed">SoundGroup::getMuteFadeSpeed</a></h2>
|
||||
<p>Retrieves the current mute fade time.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">float</span> <span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="nx">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>speed <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Fade time. 0 = no fading.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Seconds</li>
|
||||
<li><span class="label">Range:</span> [0, inf)</li>
|
||||
<li><span class="label">Default:</span> 0</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmutefadespeed">SoundGroup::setMuteFadeSpeed</a></p>
|
||||
<h2 api="function" id="soundgroup_getname"><a href="#soundgroup_getname">SoundGroup::getName</a></h2>
|
||||
<p>Retrieves the name of the sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getName</span><span class="p">(</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetName</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getName</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">string</span> <span class="n">name</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">namelen</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getName</span><span class="p">(</span>
|
||||
<span class="nx">name</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>name <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Name of the <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
|
||||
<dt>namelen</dt>
|
||||
<dd>
|
||||
<p>Length of <code>name</code>.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Bytes</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createsoundgroup">System::createSoundGroup</a></p>
|
||||
<h2 api="function" id="soundgroup_getnumplaying"><a href="#soundgroup_getnumplaying">SoundGroup::getNumPlaying</a></h2>
|
||||
<p>Retrieves the number of currently playing Channels for the SoundGroup.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getNumPlaying</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numplaying</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetNumPlaying</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numplaying</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getNumPlaying</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">numplaying</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getNumPlaying</span><span class="p">(</span>
|
||||
<span class="nx">numplaying</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>numplaying <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Number of actively playing <a class="apilink" href="core-api-channel.html">Channel</a>s from sounds in this <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>.</dd>
|
||||
</dl>
|
||||
<p>This routine returns the number of <a class="apilink" href="core-api-channel.html">Channel</a>s playing. If the <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a> only has one <a class="apilink" href="core-api-sound.html">Sound</a>, and that <a class="apilink" href="core-api-sound.html">Sound</a> is playing twice, the figure returned will be two.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createsoundgroup">System::createSoundGroup</a>, <a class="apilink" href="core-api-system.html#system_getmastersoundgroup">System::getMasterSoundGroup</a></p>
|
||||
<h2 api="function" id="soundgroup_getnumsounds"><a href="#soundgroup_getnumsounds">SoundGroup::getNumSounds</a></h2>
|
||||
<p>Retrieves the current number of sounds in this sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getNumSounds</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numsounds</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetNumSounds</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="o">*</span><span class="n">numsounds</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getNumSounds</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">int</span> <span class="n">numsounds</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getNumSounds</span><span class="p">(</span>
|
||||
<span class="nx">numsounds</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>numsounds <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Number of <a class="apilink" href="core-api-sound.html">Sound</a>s in this <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>.</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getsound">SoundGroup::getSound</a></p>
|
||||
<h2 api="function" id="soundgroup_getsound"><a href="#soundgroup_getsound">SoundGroup::getSound</a></h2>
|
||||
<p>Retrieves a sound.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getSound</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">Sound</span> <span class="o">**</span><span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetSound</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUND</span> <span class="o">**</span><span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getSound</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">index</span><span class="p">,</span>
|
||||
<span class="k">out</span> <span class="n">Sound</span> <span class="n">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getSound</span><span class="p">(</span>
|
||||
<span class="nx">index</span><span class="p">,</span>
|
||||
<span class="nx">sound</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>index</dt>
|
||||
<dd>Index of the sound.</dd>
|
||||
<dt>sound <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Sound object. (<a class="apilink" href="core-api-sound.html">Sound</a>)</dd>
|
||||
</dl>
|
||||
<p>Use <a class="apilink" href="core-api-soundgroup.html#soundgroup_getnumsounds">SoundGroup::getNumSounds</a> in conjunction with this function to enumerate all sounds in a <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a></p>
|
||||
<h2 api="function" id="soundgroup_getsystemobject"><a href="#soundgroup_getsystemobject">SoundGroup::getSystemObject</a></h2>
|
||||
<p>Retrieves the parent System object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getSystemObject</span><span class="p">(</span>
|
||||
<span class="n">System</span> <span class="o">**</span><span class="n">system</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetSystemObject</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SYSTEM</span> <span class="o">**</span><span class="n">system</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getSystemObject</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">System</span> <span class="n">system</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getSystemObject</span><span class="p">(</span>
|
||||
<span class="nx">system</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>system <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>System object. (<a class="apilink" href="core-api-system.html">System</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createsoundgroup">System::createSoundGroup</a>, <a class="apilink" href="core-api-system.html#system_getmastersoundgroup">System::getMasterSoundGroup</a></p>
|
||||
<h2 api="function" id="soundgroup_getuserdata"><a href="#soundgroup_getuserdata">SoundGroup::getUserData</a></h2>
|
||||
<p>Retrieves a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">**</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getUserData</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>User data set by calling <a class="apilink" href="core-api-soundgroup.html#soundgroup_setuserdata">SoundGroup::setUserData</a>.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be retrieved from this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<h2 api="function" id="soundgroup_getvolume"><a href="#soundgroup_getvolume">SoundGroup::getVolume</a></h2>
|
||||
<p>Retrieves the volume of the sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">getVolume</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_GetVolume</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="o">*</span><span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">getVolume</span><span class="p">(</span>
|
||||
<span class="k">out</span> <span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">getVolume</span><span class="p">(</span>
|
||||
<span class="nx">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>volume <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>
|
||||
<p>Volume level.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> [0, 1]</li>
|
||||
<li><span class="label">Default:</span> 1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_setvolume">SoundGroup::setVolume</a></p>
|
||||
<h2 api="function" id="soundgroup_release"><a href="#soundgroup_release">SoundGroup::release</a></h2>
|
||||
<p>Releases a soundgroup object and returns all sounds back to the master sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_Release</span><span class="p">(</span><span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>You cannot release the master <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_createsoundgroup">System::createSoundGroup</a>, <a class="apilink" href="core-api-system.html#system_getmastersoundgroup">System::getMasterSoundGroup</a></p>
|
||||
<h2 api="function" id="soundgroup_setmaxaudible"><a href="#soundgroup_setmaxaudible">SoundGroup::setMaxAudible</a></h2>
|
||||
<p>Sets the maximum number of playbacks to be audible at once in a sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">setMaxAudible</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_SetMaxAudible</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">int</span> <span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">setMaxAudible</span><span class="p">(</span>
|
||||
<span class="kt">int</span> <span class="n">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">setMaxAudible</span><span class="p">(</span>
|
||||
<span class="nx">maxaudible</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>maxaudible</dt>
|
||||
<dd>
|
||||
<p>Maximum number of playbacks to be audible at once. -1 denotes unlimited.</p>
|
||||
<ul>
|
||||
<li><span class="label">Range:</span> [-1, inf)</li>
|
||||
<li><span class="label">Default:</span> -1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>If playing instances of sounds in this group equal or exceed number specified here, attepts to play more of the sounds with be met with <a class="apilink" href="core-api-common.html#fmod_err_maxaudible">FMOD_ERR_MAXAUDIBLE</a> by default. <br />
|
||||
Use <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudiblebehavior">SoundGroup::setMaxAudibleBehavior</a> to change the way the sound playback behaves when too many sounds are playing. Muting, failing and stealing behaviors can be specified. See <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior">FMOD_SOUNDGROUP_BEHAVIOR</a>.</p>
|
||||
<p><a class="apilink" href="core-api-soundgroup.html#soundgroup_getnumplaying">SoundGroup::getNumPlaying</a> can be used to determine how many instances of the sounds in the <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a> are currently playing.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudible">SoundGroup::getMaxAudible</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudiblebehavior">SoundGroup::setMaxAudibleBehavior</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudiblebehavior">SoundGroup::getMaxAudibleBehavior</a></p>
|
||||
<h2 api="function" id="soundgroup_setmaxaudiblebehavior"><a href="#soundgroup_setmaxaudiblebehavior">SoundGroup::setMaxAudibleBehavior</a></h2>
|
||||
<p>This function changes the way the sound playback behaves when too many sounds are playing in a soundgroup.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">setMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span> <span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_SetMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="n">FMOD_SOUNDGROUP_BEHAVIOR</span> <span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">setMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="n">SOUNDGROUP_BEHAVIOR</span> <span class="n">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">setMaxAudibleBehavior</span><span class="p">(</span>
|
||||
<span class="nx">behavior</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>behavior</dt>
|
||||
<dd>
|
||||
<p><a class="apilink" href="core-api-soundgroup.html">SoundGroup</a> max playbacks behavior. (<a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior">FMOD_SOUNDGROUP_BEHAVIOR</a>)</p>
|
||||
<ul>
|
||||
<li><span class="label">Default:</span> <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior_fail">FMOD_SOUNDGROUP_BEHAVIOR_FAIL</a></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudiblebehavior">SoundGroup::getMaxAudibleBehavior</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible">SoundGroup::setMaxAudible</a>, <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmaxaudible">SoundGroup::getMaxAudible</a></p>
|
||||
<h2 api="function" id="soundgroup_setmutefadespeed"><a href="#soundgroup_setmutefadespeed">SoundGroup::setMuteFadeSpeed</a></h2>
|
||||
<p>Sets a mute fade time.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">setMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_SetMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">setMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">setMuteFadeSpeed</span><span class="p">(</span>
|
||||
<span class="nx">speed</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>speed</dt>
|
||||
<dd>
|
||||
<p>Fade time. 0 = no fading.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Seconds</li>
|
||||
<li><span class="label">Range:</span> [0, inf)</li>
|
||||
<li><span class="label">Default:</span> 0</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>If a mode besides <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior_mute">FMOD_SOUNDGROUP_BEHAVIOR_MUTE</a> is used, the fade speed is ignored.</p>
|
||||
<p>When more sounds are playing in a SoundGroup than are specified with <a class="apilink" href="core-api-soundgroup.html#soundgroup_setmaxaudible">SoundGroup::setMaxAudible</a>, the least important <a class="apilink" href="core-api-sound.html">Sound</a> (ie lowest priority / lowest audible volume due to 3D position, volume etc) will fade to silence if <a class="apilink" href="core-api-soundgroup.html#fmod_soundgroup_behavior_mute">FMOD_SOUNDGROUP_BEHAVIOR_MUTE</a> is used, and any previous sounds that were silent because of this rule will fade in if they are more important.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getmutefadespeed">SoundGroup::getMuteFadeSpeed</a></p>
|
||||
<h2 api="function" id="soundgroup_setuserdata"><a href="#soundgroup_setuserdata">SoundGroup::setUserData</a></h2>
|
||||
<p>Sets a user value associated with this object.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_SetUserData</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">setUserData</span><span class="p">(</span>
|
||||
<span class="n">IntPtr</span> <span class="n">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">setUserData</span><span class="p">(</span>
|
||||
<span class="nx">userdata</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userdata</dt>
|
||||
<dd>Value stored on this object.</dd>
|
||||
</dl>
|
||||
<p>This function allows arbitrary user data to be attached to this object. See the <a href="glossary.html#user-data">User Data</a> section of the glossary for an example of how to get and set user data.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getuserdata">SoundGroup::getUserData</a></p>
|
||||
<h2 api="function" id="soundgroup_setvolume"><a href="#soundgroup_setvolume">SoundGroup::setVolume</a></h2>
|
||||
<p>Sets the volume of the sound group.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">setVolume</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_SetVolume</span><span class="p">(</span>
|
||||
<span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">,</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">setVolume</span><span class="p">(</span>
|
||||
<span class="kt">float</span> <span class="n">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">setVolume</span><span class="p">(</span>
|
||||
<span class="nx">volume</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>volume</dt>
|
||||
<dd>
|
||||
<p>Volume level.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Linear</li>
|
||||
<li><span class="label">Range:</span> [0, 1]</li>
|
||||
<li><span class="label">Default:</span> 1</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Scales the volume of all <a class="apilink" href="core-api-channel.html">Channel</a>s playing <a class="apilink" href="core-api-sound.html">Sound</a>s in this <a class="apilink" href="core-api-soundgroup.html">SoundGroup</a>. </p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-soundgroup.html#soundgroup_getvolume">SoundGroup::getVolume</a></p>
|
||||
<h2 api="function" id="soundgroup_stop"><a href="#soundgroup_stop">SoundGroup::stop</a></h2>
|
||||
<p>Stops all sounds within this soundgroup.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="n">SoundGroup</span><span class="o">::</span><span class="n">stop</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_RESULT</span> <span class="nf">FMOD_SoundGroup_Stop</span><span class="p">(</span><span class="n">FMOD_SOUNDGROUP</span> <span class="o">*</span><span class="n">soundgroup</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">RESULT</span> <span class="n">SoundGroup</span><span class="p">.</span><span class="n">stop</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="nx">SoundGroup</span><span class="p">.</span><span class="nx">stop</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,48 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Core API Reference</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-active-chapter"><a href="core-api.html">Core API Reference</a><ul class="subchapters"><li><a href="core-api-common.html">Common</a></li><li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li><li><a href="core-api-system.html">System</a></li><li><a href="core-api-sound.html">Sound</a></li><li><a href="core-api-channelcontrol.html">ChannelControl</a></li><li><a href="core-api-channel.html">Channel</a></li><li><a href="core-api-channelgroup.html">ChannelGroup</a></li><li><a href="core-api-soundgroup.html">SoundGroup</a></li><li><a href="core-api-dsp.html">DSP</a></li><li><a href="core-api-dspconnection.html">DSPConnection</a></li><li><a href="core-api-geometry.html">Geometry</a></li><li><a href="core-api-reverb3d.html">Reverb3D</a></li><li><a href="core-api-platform-ios.html">iOS Specific</a></li><li><a href="core-api-platform-android.html">Android Specific</a></li></ul></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>7. Core API Reference</h1>
|
||||
<ul class="docs-body-subchapters"><li><a href="core-api-common.html">Common</a></li>
|
||||
<li><a href="core-api-common-dsp-effects.html">Effect Parameters</a></li>
|
||||
<li><a href="core-api-system.html">System</a></li>
|
||||
<li><a href="core-api-sound.html">Sound</a></li>
|
||||
<li><a href="core-api-channelcontrol.html">ChannelControl</a></li>
|
||||
<li><a href="core-api-channel.html">Channel</a></li>
|
||||
<li><a href="core-api-channelgroup.html">ChannelGroup</a></li>
|
||||
<li><a href="core-api-soundgroup.html">SoundGroup</a></li>
|
||||
<li><a href="core-api-dsp.html">DSP</a></li>
|
||||
<li><a href="core-api-dspconnection.html">DSPConnection</a></li>
|
||||
<li><a href="core-api-geometry.html">Geometry</a></li>
|
||||
<li><a href="core-api-reverb3d.html">Reverb3D</a></li>
|
||||
<li><a href="core-api-platform-ios.html">iOS Specific</a></li>
|
||||
<li><a href="core-api-platform-android.html">Android Specific</a></li>
|
||||
</ul></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,709 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>FSBank API Reference</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li><a href="core-api.html">Core API Reference</a></li>
|
||||
<li class="manual-current-chapter manual-active-chapter"><a href="fsbank-api.html">FSBank API Reference</a><ul>
|
||||
<li><a href="#fsbank_init">FSBank_Init</a></li>
|
||||
<li><a href="#fsbank_build">FSBank_Build</a></li>
|
||||
<li><a href="#fsbank_buildcancel">FSBank_BuildCancel</a></li>
|
||||
<li><a href="#fsbank_release">FSBank_Release</a></li>
|
||||
<li><a href="#fsbank_releaseprogressitem">FSBank_ReleaseProgressItem</a></li>
|
||||
<li><a href="#fsbank_memorygetstats">FSBank_MemoryGetStats</a></li>
|
||||
<li><a href="#fsbank_memoryinit">FSBank_MemoryInit</a></li>
|
||||
<li><a href="#fsbank_fetchfsbmemory">FSBank_FetchFSBMemory</a></li>
|
||||
<li><a href="#fsbank_fetchnextprogressitem">FSBank_FetchNextProgressItem</a></li>
|
||||
<li><a href="#fsbank_memory_alloc_callback">FSBANK_MEMORY_ALLOC_CALLBACK</a></li>
|
||||
<li><a href="#fsbank_memory_free_callback">FSBANK_MEMORY_FREE_CALLBACK</a></li>
|
||||
<li><a href="#fsbank_memory_realloc_callback">FSBANK_MEMORY_REALLOC_CALLBACK</a></li>
|
||||
<li><a href="#fsbank_initflags">FSBANK_INITFLAGS</a></li>
|
||||
<li><a href="#fsbank_buildflags">FSBANK_BUILDFLAGS</a></li>
|
||||
<li><a href="#fsbank_format">FSBANK_FORMAT</a></li>
|
||||
<li><a href="#fsbank_fsbversion">FSBANK_FSBVERSION</a></li>
|
||||
<li><a href="#fsbank_progressitem">FSBANK_PROGRESSITEM</a></li>
|
||||
<li><a href="#fsbank_result">FSBANK_RESULT</a></li>
|
||||
<li><a href="#fsbank_state">FSBANK_STATE</a></li>
|
||||
<li><a href="#fsbank_statedata_failed">FSBANK_STATEDATA_FAILED</a></li>
|
||||
<li><a href="#fsbank_statedata_warning">FSBANK_STATEDATA_WARNING</a></li>
|
||||
<li><a href="#fsbank_subsound">FSBANK_SUBSOUND</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li><a href="glossary.html">Glossary</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>8. FSBank API Reference</h1>
|
||||
<ul>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_init" title="Initialize the FSBank system.">FSBank_Init</a> Initialize the FSBank system.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_build" title="Begin the building process for the provided subsound descriptions.">FSBank_Build</a> Begin the building process for the provided subsound descriptions.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_buildcancel" title="Halt the build in progress.">FSBank_BuildCancel</a> Halt the build in progress.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_release" title="Release the FSBank system, clean up used resources.">FSBank_Release</a> Release the FSBank system, clean up used resources.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_releaseprogressitem" title="Release memory associated with a progress item.">FSBank_ReleaseProgressItem</a> Release memory associated with a progress item.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_memorygetstats" title="Query the current and maximum memory usage of the FSBank system.">FSBank_MemoryGetStats</a> Query the current and maximum memory usage of the FSBank system.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_memoryinit" title="Specifies a method for FSBank to allocate memory through callbacks.">FSBank_MemoryInit</a> Specifies a method for FSBank to allocate memory through callbacks.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_fetchfsbmemory" title="Fetch the built FSB data from memory.">FSBank_FetchFSBMemory</a> Fetch the built FSB data from memory.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_fetchnextprogressitem" title="Fetch build progress items that describe the current state of the build.">FSBank_FetchNextProgressItem</a> Fetch build progress items that describe the current state of the build.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_memory_alloc_callback" title="Callback to allocate a block of memory.">FSBANK_MEMORY_ALLOC_CALLBACK</a> Callback to allocate a block of memory.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_memory_free_callback" title="Callback to free a block of memory.">FSBANK_MEMORY_FREE_CALLBACK</a> Callback to free a block of memory.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_memory_realloc_callback" title="Callback to re-allocate a block of memory to a different size.">FSBANK_MEMORY_REALLOC_CALLBACK</a> Callback to re-allocate a block of memory to a different size.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_initflags" title="Bit fields to control the general operation of the library.">FSBANK_INITFLAGS</a> Bit fields to control the general operation of the library.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_buildflags" title="Bit fields to control how subsounds are encoded.">FSBANK_BUILDFLAGS</a> Bit fields to control how subsounds are encoded.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_format" title="Compression formats available for encoding">FSBANK_FORMAT</a> Compression formats available for encoding</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_fsbversion" title="Version of FSB to write out.">FSBANK_FSBVERSION</a> Version of FSB to write out.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_progressitem" title="Status information describing the progress of a build.">FSBANK_PROGRESSITEM</a> Status information describing the progress of a build.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_result" title="Error codes returned from every function.">FSBANK_RESULT</a> Error codes returned from every function.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_state" title="Current state during the build process.">FSBANK_STATE</a> Current state during the build process.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_statedata_failed" title="Extra failed state data.">FSBANK_STATEDATA_FAILED</a> Extra failed state data.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_statedata_warning" title="Extra warning state data.">FSBANK_STATEDATA_WARNING</a> Extra warning state data.</span></li>
|
||||
<li><span><a class="apilink" href="fsbank-api.html#fsbank_subsound" title="Representation of how to encode a single subsound in the final FSB.">FSBANK_SUBSOUND</a> Representation of how to encode a single subsound in the final FSB.</span></li>
|
||||
</ul>
|
||||
<h2 api="function" id="fsbank_init"><a href="#fsbank_init">8.1 FSBank_Init</a></h2>
|
||||
<p>Initialize the FSBank system.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_Init</span><span class="p">(</span>
|
||||
<span class="n">FSBANK_FSBVERSION</span> <span class="n">version</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_INITFLAGS</span> <span class="n">flags</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">numSimultaneousJobs</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">cacheDirectory</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>version</dt>
|
||||
<dd>FSB version, currently only <a class="apilink" href="fsbank-api.html#fsbank_fsbversion_fsb5">FSBANK_FSBVERSION_FSB5</a> is supported. (<a class="apilink" href="fsbank-api.html#fsbank_fsbversion">FSBANK_FSBVERSION</a>)</dd>
|
||||
<dt>flags</dt>
|
||||
<dd>Initialization flags which control how the system behaves. (<a class="apilink" href="fsbank-api.html#fsbank_initflags">FSBANK_INITFLAGS</a>)</dd>
|
||||
<dt>numSimultaneousJobs</dt>
|
||||
<dd>The maximum number of threads to create for parallel encoding. Set this to your number of CPU 'cores' for best performance.</dd>
|
||||
<dt>cacheDirectory <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Location to store the temporary cache files, default is a directory off the current working directory.</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_release">FSBank_Release</a></p>
|
||||
<h2 api="function" id="fsbank_build"><a href="#fsbank_build">8.2 FSBank_Build</a></h2>
|
||||
<p>Begin the building process for the provided subsound descriptions.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_Build</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="n">FSBANK_SUBSOUND</span> <span class="o">*</span><span class="n">subSounds</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">numSubSounds</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT</span> <span class="n">encodeFormat</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_BUILDFLAGS</span> <span class="n">buildFlags</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">quality</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">encryptKey</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">outputFileName</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>subSounds</dt>
|
||||
<dd>Array of subsound descriptions each defining one subsound for the <a href="glossary.html#fsb">FSB</a>. (<a class="apilink" href="fsbank-api.html#fsbank_subsound">FSBANK_SUBSOUND</a>)</dd>
|
||||
<dt>numSubSounds</dt>
|
||||
<dd>Number of elements in <code>subSounds</code>.</dd>
|
||||
<dt>encodeFormat</dt>
|
||||
<dd>FSB encoding format. (<a class="apilink" href="fsbank-api.html#fsbank_format">FSBANK_FORMAT</a>)</dd>
|
||||
<dt>buildFlags</dt>
|
||||
<dd>Building flags which control how the sample data is encoded. (<a class="apilink" href="fsbank-api.html#fsbank_buildflags">FSBANK_BUILDFLAGS</a>)</dd>
|
||||
<dt>quality</dt>
|
||||
<dd>Controls the post compression quality level. From 1 (high compression / low quality) to 100 (high quality / low compression), use 0 for default quality. See remarks for format specific usage.</dd>
|
||||
<dt>encryptKey <span><a class="token" href="glossary.html#documentation-conventions" title="Optional">Opt</a></span></dt>
|
||||
<dd>Key used to encrypt the FSB. Same key is required at runtime for decryption.</dd>
|
||||
<dt>outputFileName <span><a class="token" href="glossary.html#documentation-conventions" title="Output">Out</a></span></dt>
|
||||
<dd>Path of the FSB to produce.</dd>
|
||||
</dl>
|
||||
<p>Format specific quality interpretation:</p>
|
||||
<ul>
|
||||
<li><strong>AT9</strong> - Bitrate (Kbps) depends on channel count, quality [1 to 100] maps linearly to the available options</li>
|
||||
<li>1ch = [36, 48, 60, 72, 84, 96]</li>
|
||||
<li>2ch = [72, 96, 120, 144, 168, 192]</li>
|
||||
<li><strong>MPEG</strong> - Bitrate (Kbps) = FMOD quality * 3.2</li>
|
||||
<li><strong>Vorbis</strong> - Vorbis quality [-0.1 to 1.0] maps linearly to FMOD quality [1 to 100] based on: <code>Vorbis_Quality = ((FMOD_Quality - 1) / 90.0f) - 0.1f</code></li>
|
||||
<li><strong>XMA</strong> - XMA quality = FMOD quality</li>
|
||||
<li><strong>Opus</strong> - Opus per-channel bitrate (Kbps) [0.8 to 64] maps linearly to FMOD quality [1 to 80], then bitrate [67.2 to 128] to quality [81 to 100]</li>
|
||||
</ul>
|
||||
<p>Build function will block until complete.</p>
|
||||
<h2 api="function" id="fsbank_buildcancel"><a href="#fsbank_buildcancel">8.3 FSBank_BuildCancel</a></h2>
|
||||
<p>Halt the build in progress.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_BuildCancel</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>Must be called from a different thread to <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a></p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a></p>
|
||||
<h2 api="function" id="fsbank_release"><a href="#fsbank_release">8.4 FSBank_Release</a></h2>
|
||||
<p>Release the FSBank system, clean up used resources.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_Release</span><span class="p">();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>All progress items retrieved with <a class="apilink" href="fsbank-api.html#fsbank_fetchnextprogressitem">FSBank_FetchNextProgressItem</a> will be released by this function.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_init">FSBank_Init</a>, <a class="apilink" href="fsbank-api.html#fsbank_fetchnextprogressitem">FSBank_FetchNextProgressItem</a></p>
|
||||
<h2 api="function" id="fsbank_releaseprogressitem"><a href="#fsbank_releaseprogressitem">8.5 FSBank_ReleaseProgressItem</a></h2>
|
||||
<p>Release memory associated with a progress item.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_ReleaseProgressItem</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="n">FSBANK_PROGRESSITEM</span> <span class="o">*</span><span class="n">progressItem</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>progressItem</dt>
|
||||
<dd>One status update about the progress of a particular subsound. (<a class="apilink" href="fsbank-api.html#fsbank_progressitem">FSBANK_PROGRESSITEM</a>)</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_fetchnextprogressitem">FSBank_FetchNextProgressItem</a></p>
|
||||
<h2 api="function" id="fsbank_memorygetstats"><a href="#fsbank_memorygetstats">8.6 FSBank_MemoryGetStats</a></h2>
|
||||
<p>Query the current and maximum memory usage of the FSBank system.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_MemoryGetStats</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">currentAllocated</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">maximumAllocated</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>currentAllocated</dt>
|
||||
<dd>Address of a variable that receives the currently allocated memory at time of call. Optional. Specify 0 or NULL to ignore.</dd>
|
||||
<dt>maximumAllocated</dt>
|
||||
<dd>Address of a variable that receives the maximum allocated memory since <a class="apilink" href="fsbank-api.html#fsbank_init">FSBank_Init</a>. Optional. Specify 0 or NULL to ignore.</dd>
|
||||
</dl>
|
||||
<h2 api="function" id="fsbank_memoryinit"><a href="#fsbank_memoryinit">8.7 FSBank_MemoryInit</a></h2>
|
||||
<p>Specifies a method for FSBank to allocate memory through callbacks.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_MemoryInit</span><span class="p">(</span>
|
||||
<span class="n">FSBANK_MEMORY_ALLOC_CALLBACK</span> <span class="n">userAlloc</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_MEMORY_REALLOC_CALLBACK</span> <span class="n">userRealloc</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_MEMORY_FREE_CALLBACK</span> <span class="n">userFree</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>userAlloc</dt>
|
||||
<dd>Overrides the internal calls to alloc. Compatible with ANSI malloc(). (<a class="apilink" href="fsbank-api.html#fsbank_memory_alloc_callback">FSBANK_MEMORY_ALLOC_CALLBACK</a>)</dd>
|
||||
<dt>userRealloc</dt>
|
||||
<dd>Overrides the internal calls to realloc. Compatible with ANSI realloc(). (<a class="apilink" href="fsbank-api.html#fsbank_memory_realloc_callback">FSBANK_MEMORY_REALLOC_CALLBACK</a>)</dd>
|
||||
<dt>userFree</dt>
|
||||
<dd>Overrides the internal calls to free. Compatible with ANSI free(). (<a class="apilink" href="fsbank-api.html#fsbank_memory_free_callback">FSBANK_MEMORY_FREE_CALLBACK</a>)</dd>
|
||||
</dl>
|
||||
<h2 api="function" id="fsbank_fetchfsbmemory"><a href="#fsbank_fetchfsbmemory">8.8 FSBank_FetchFSBMemory</a></h2>
|
||||
<p>Fetch the built FSB data from memory.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_FetchFSBMemory</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="kt">void</span> <span class="o">**</span><span class="n">data</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">length</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>data</dt>
|
||||
<dd>Built FSB data.</dd>
|
||||
<dt>length</dt>
|
||||
<dd>
|
||||
<p>Length of 'data'.</p>
|
||||
<ul>
|
||||
<li><span class="label">Units:</span> Bytes</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>Requires <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a> to be called with outputFileName is set to NULL.</p>
|
||||
<p>The memory allocated as part of <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a> will be freed automatically by the next <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a> or <a class="apilink" href="fsbank-api.html#fsbank_release">FSBank_Release</a>.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a>, <a class="apilink" href="fsbank-api.html#fsbank_release">FSBank_Release</a></p>
|
||||
<h2 api="function" id="fsbank_fetchnextprogressitem"><a href="#fsbank_fetchnextprogressitem">8.9 FSBank_FetchNextProgressItem</a></h2>
|
||||
<p>Fetch build progress items that describe the current state of the build.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FSBANK_RESULT</span> <span class="nf">FSBank_FetchNextProgressItem</span><span class="p">(</span>
|
||||
<span class="k">const</span> <span class="n">FSBANK_PROGRESSITEM</span> <span class="o">**</span><span class="n">progressItem</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>progressItem</dt>
|
||||
<dd>One status update about the progress of a particular subsound. (<a class="apilink" href="fsbank-api.html#fsbank_progressitem">FSBANK_PROGRESSITEM</a>)</dd>
|
||||
</dl>
|
||||
<p>Can be called while the build is in progress to get realtime updates or after the build for a report. Call <a class="apilink" href="fsbank-api.html#fsbank_releaseprogressitem">FSBank_ReleaseProgressItem</a> to free allocated memory.</p>
|
||||
<h2 api="callback" id="fsbank_memory_alloc_callback"><a href="#fsbank_memory_alloc_callback">8.10 FSBANK_MEMORY_ALLOC_CALLBACK</a></h2>
|
||||
<p>Callback to allocate a block of memory.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="kt">void</span> <span class="o">*</span> <span class="n">FSBANK_CALLBACK</span> <span class="nf">FSBANK_MEMORY_ALLOC_CALLBACK</span><span class="p">(</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">type</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">sourceStr</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>size</dt>
|
||||
<dd>Size in bytes of the memory block to be allocated and returned.</dd>
|
||||
<dt>type</dt>
|
||||
<dd>Type of memory allocation.</dd>
|
||||
<dt>sourceStr</dt>
|
||||
<dd>Only valid (not null) in logging versions of FMOD. Gives a string with the fmod source code filename and line number in it, for better resource tracking.</dd>
|
||||
</dl>
|
||||
<p>Returning an aligned pointer, of 16 byte alignment is recommended for speed purposes.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_memoryinit">FSBank_MemoryInit</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_realloc_callback">FSBANK_MEMORY_REALLOC_CALLBACK</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_free_callback">FSBANK_MEMORY_FREE_CALLBACK</a></p>
|
||||
<h2 api="callback" id="fsbank_memory_free_callback"><a href="#fsbank_memory_free_callback">8.11 FSBANK_MEMORY_FREE_CALLBACK</a></h2>
|
||||
<p>Callback to free a block of memory.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="kt">void</span> <span class="n">FSBANK_CALLBACK</span> <span class="nf">FSBANK_MEMORY_FREE_CALLBACK</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">type</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">sourceStr</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>ptr</dt>
|
||||
<dd>Pointer to a pre-existing block of memory to be freed.</dd>
|
||||
<dt>type</dt>
|
||||
<dd>Type of memory to be freed.</dd>
|
||||
<dt>sourceStr</dt>
|
||||
<dd>Only valid (not null) in logging versions of FMOD. Gives a string with the fmod source code filename and line number in it, for better resource tracking.</dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_memoryinit">FSBank_MemoryInit</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_alloc_callback">FSBANK_MEMORY_ALLOC_CALLBACK</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_realloc_callback">FSBANK_MEMORY_REALLOC_CALLBACK</a></p>
|
||||
<h2 api="callback" id="fsbank_memory_realloc_callback"><a href="#fsbank_memory_realloc_callback">8.12 FSBANK_MEMORY_REALLOC_CALLBACK</a></h2>
|
||||
<p>Callback to re-allocate a block of memory to a different size.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="kt">void</span> <span class="o">*</span> <span class="n">FSBANK_CALLBACK</span> <span class="nf">FSBANK_MEMORY_REALLOC_CALLBACK</span><span class="p">(</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">size</span><span class="p">,</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">type</span><span class="p">,</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">sourceStr</span>
|
||||
<span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt>ptr</dt>
|
||||
<dd>Pointer to a block of memory to be resized. If this is NULL then a new block of memory is simply allocated.</dd>
|
||||
<dt>size</dt>
|
||||
<dd>Size of the memory to be reallocated. The original memory must be preserved.</dd>
|
||||
<dt>type</dt>
|
||||
<dd>Type of memory allocation.</dd>
|
||||
<dt>sourceStr</dt>
|
||||
<dd>Only valid (not null) in logging versions of FMOD. Gives a string with the fmod source code filename and line number in it, for better resource tracking.</dd>
|
||||
</dl>
|
||||
<p>Returning an aligned pointer, of 16 byte alignment is recommended for speed purposes.</p>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_memoryinit">FSBank_MemoryInit</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_alloc_callback">FSBANK_MEMORY_ALLOC_CALLBACK</a>, <a class="apilink" href="fsbank-api.html#fsbank_memory_free_callback">FSBANK_MEMORY_FREE_CALLBACK</a></p>
|
||||
<h2 api="define" id="fsbank_initflags"><a href="#fsbank_initflags">8.13 FSBANK_INITFLAGS</a></h2>
|
||||
<p>Bit fields to control the general operation of the library.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="cp">#define FSBANK_INIT_NORMAL 0x00000000</span>
|
||||
<span class="cp">#define FSBANK_INIT_IGNOREERRORS 0x00000001</span>
|
||||
<span class="cp">#define FSBANK_INIT_WARNINGSASERRORS 0x00000002</span>
|
||||
<span class="cp">#define FSBANK_INIT_CREATEINCLUDEHEADER 0x00000004</span>
|
||||
<span class="cp">#define FSBANK_INIT_DONTLOADCACHEFILES 0x00000008</span>
|
||||
<span class="cp">#define FSBANK_INIT_GENERATEPROGRESSITEMS 0x00000010</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_init_normal">FSBANK_INIT_NORMAL</dt>
|
||||
<dd>Initialize normally. </dd>
|
||||
<dt id="fsbank_init_ignoreerrors">FSBANK_INIT_IGNOREERRORS</dt>
|
||||
<dd>Ignore individual subsound build errors, continue building for as long as possible. </dd>
|
||||
<dt id="fsbank_init_warningsaserrors">FSBANK_INIT_WARNINGSASERRORS</dt>
|
||||
<dd>Treat any warnings issued as errors. </dd>
|
||||
<dt id="fsbank_init_createincludeheader">FSBANK_INIT_CREATEINCLUDEHEADER</dt>
|
||||
<dd>Create C header files with #defines defining indices for each member of the FSB. </dd>
|
||||
<dt id="fsbank_init_dontloadcachefiles">FSBANK_INIT_DONTLOADCACHEFILES</dt>
|
||||
<dd>Ignore existing cache files. </dd>
|
||||
<dt id="fsbank_init_generateprogressitems">FSBANK_INIT_GENERATEPROGRESSITEMS</dt>
|
||||
<dd>Generate status items that can be queried by another thread to monitor the build progress and give detailed error messages. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_init">FSBank_Init</a></p>
|
||||
<h2 api="define" id="fsbank_buildflags"><a href="#fsbank_buildflags">8.14 FSBANK_BUILDFLAGS</a></h2>
|
||||
<p>Bit fields to control how subsounds are encoded.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="cp">#define FSBANK_BUILD_DEFAULT 0x00000000</span>
|
||||
<span class="cp">#define FSBANK_BUILD_DISABLESYNCPOINTS 0x00000001</span>
|
||||
<span class="cp">#define FSBANK_BUILD_DONTLOOP 0x00000002</span>
|
||||
<span class="cp">#define FSBANK_BUILD_FILTERHIGHFREQ 0x00000004</span>
|
||||
<span class="cp">#define FSBANK_BUILD_DISABLESEEKING 0x00000008</span>
|
||||
<span class="cp">#define FSBANK_BUILD_OPTIMIZESAMPLERATE 0x00000010</span>
|
||||
<span class="cp">#define FSBANK_BUILD_FSB5_DONTWRITENAMES 0x00000080</span>
|
||||
<span class="cp">#define FSBANK_BUILD_NOGUID 0x00000100</span>
|
||||
<span class="cp">#define FSBANK_BUILD_WRITEPEAKVOLUME 0x00000200</span>
|
||||
<span class="cp">#define FSBANK_BUILD_ALIGN4K 0x00000400</span>
|
||||
<span class="cp">#define FSBANK_BUILD_OVERRIDE_MASK (FSBANK_BUILD_DISABLESYNCPOINTS | FSBANK_BUILD_DONTLOOP | FSBANK_BUILD_FILTERHIGHFREQ | FSBANK_BUILD_DISABLESEEKING | FSBANK_BUILD_OPTIMIZESAMPLERATE | FSBANK_BUILD_WRITEPEAKVOLUME)</span>
|
||||
<span class="cp">#define FSBANK_BUILD_CACHE_VALIDATION_MASK (FSBANK_BUILD_DONTLOOP | FSBANK_BUILD_FILTERHIGHFREQ | FSBANK_BUILD_OPTIMIZESAMPLERATE)</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_build_default">FSBANK_BUILD_DEFAULT</dt>
|
||||
<dd>Build with default settings. </dd>
|
||||
<dt id="fsbank_build_disablesyncpoints">FSBANK_BUILD_DISABLESYNCPOINTS</dt>
|
||||
<dd>Disable the storing of syncpoints in the output </dd>
|
||||
<dt id="fsbank_build_dontloop">FSBANK_BUILD_DONTLOOP</dt>
|
||||
<dd>Disable perfect loop encoding and sound stretching. Removes chirps from the start of oneshot MP2, MP3 and IMAADPCM sounds. </dd>
|
||||
<dt id="fsbank_build_filterhighfreq">FSBANK_BUILD_FILTERHIGHFREQ</dt>
|
||||
<dd>XMA only. Enable high frequency filtering. </dd>
|
||||
<dt id="fsbank_build_disableseeking">FSBANK_BUILD_DISABLESEEKING</dt>
|
||||
<dd>XMA only. Disable seek tables to save memory. </dd>
|
||||
<dt id="fsbank_build_optimizesamplerate">FSBANK_BUILD_OPTIMIZESAMPLERATE</dt>
|
||||
<dd>Attempt to optimize the sample rate down. Ignored if format is MP2, MP3 or if FSB4 basic headers flag is used. </dd>
|
||||
<dt id="fsbank_build_fsb5_dontwritenames">FSBANK_BUILD_FSB5_DONTWRITENAMES</dt>
|
||||
<dd>Do not write out a names chunk to the FSB to reduce file size. </dd>
|
||||
<dt id="fsbank_build_noguid">FSBANK_BUILD_NOGUID</dt>
|
||||
<dd>Write out a null <a href="glossary.html#guid">GUID</a> for the FSB header. The engine will not use header caching for these FSB files. </dd>
|
||||
<dt id="fsbank_build_writepeakvolume">FSBANK_BUILD_WRITEPEAKVOLUME</dt>
|
||||
<dd>Write peak volume for all subsounds. </dd>
|
||||
<dt id="fsbank_build_align4k">FSBANK_BUILD_ALIGN4K</dt>
|
||||
<dd>Opus, Vorbis and FADPCM only. Align large sample data to a 4KB boundary to improve binary patching in distribution systems that operate in 4KB blocks (Microsoft).</dd>
|
||||
<dt id="fsbank_build_override_mask">FSBANK_BUILD_OVERRIDE_MASK</dt>
|
||||
<dd>Build flag mask that specifies which settings can be overridden per subsound. </dd>
|
||||
<dt id="fsbank_build_cache_validation_mask">FSBANK_BUILD_CACHE_VALIDATION_MASK</dt>
|
||||
<dd>Build flag mask that specifies which settings (when changed) invalidate a cache file. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_init">FSBank_Init</a>, <a class="apilink" href="fsbank-api.html#fsbank_subsound">FSBANK_SUBSOUND</a></p>
|
||||
<h2 api="enum" id="fsbank_format"><a href="#fsbank_format">8.15 FSBANK_FORMAT</a></h2>
|
||||
<p>Compression formats available for encoding</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FSBANK_FORMAT</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_FORMAT_PCM</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_XMA</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_AT9</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_VORBIS</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_FADPCM</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_OPUS</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FORMAT_MAX</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_FORMAT</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_format_pcm">FSBANK_FORMAT_PCM</dt>
|
||||
<dd>PCM (1:1) All platforms. </dd>
|
||||
<dt id="fsbank_format_xma">FSBANK_FORMAT_XMA</dt>
|
||||
<dd>XMA (VBR) XboxOne and Xbox Series X|S only (hardware). Depends on xmaencoder. </dd>
|
||||
<dt id="fsbank_format_at9">FSBANK_FORMAT_AT9</dt>
|
||||
<dd>ATRAC9 (CBR) PS4 and PS5 only (hardware). Depends on libatrac9. </dd>
|
||||
<dt id="fsbank_format_vorbis">FSBANK_FORMAT_VORBIS</dt>
|
||||
<dd>Vorbis (VBR) All platforms. Depends on libvorbis. </dd>
|
||||
<dt id="fsbank_format_fadpcm">FSBANK_FORMAT_FADPCM</dt>
|
||||
<dd>FMOD ADPCM (3.5:1) All platforms. </dd>
|
||||
<dt id="fsbank_format_opus">FSBANK_FORMAT_OPUS</dt>
|
||||
<dd>Opus (VBR) Xbox Series X|S, PS5, and Switch. Depends on opus.</dd>
|
||||
<dt id="fsbank_format_max">FSBANK_FORMAT_MAX</dt>
|
||||
<dd>Upper bound for this enumeration, for use with validation. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a></p>
|
||||
<h2 api="enum" id="fsbank_fsbversion"><a href="#fsbank_fsbversion">8.16 FSBANK_FSBVERSION</a></h2>
|
||||
<p>Version of FSB to write out.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FSBANK_FSBVERSION</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_FSBVERSION_FSB5</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_FSBVERSION_MAX</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_FSBVERSION</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_fsbversion_fsb5">FSBANK_FSBVERSION_FSB5</dt>
|
||||
<dd>Produce FSB version 5 files. </dd>
|
||||
<dt id="fsbank_fsbversion_max">FSBANK_FSBVERSION_MAX</dt>
|
||||
<dd>Upper bound for this enumeration, for use with validation. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_init">FSBank_Init</a></p>
|
||||
<h2 api="struct" id="fsbank_progressitem"><a href="#fsbank_progressitem">8.17 FSBANK_PROGRESSITEM</a></h2>
|
||||
<p>Status information describing the progress of a build.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FSBANK_PROGRESSITEM</span> <span class="p">{</span>
|
||||
<span class="kt">int</span> <span class="n">subSoundIndex</span><span class="p">;</span>
|
||||
<span class="kt">int</span> <span class="n">threadIndex</span><span class="p">;</span>
|
||||
<span class="n">FSBANK_STATE</span> <span class="n">state</span><span class="p">;</span>
|
||||
<span class="k">const</span> <span class="kt">void</span> <span class="o">*</span><span class="n">stateData</span><span class="p">;</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_PROGRESSITEM</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_progressitem_subsoundindex">subSoundIndex</dt>
|
||||
<dd>Index into the subsound list passed to <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a> that this update relates to (-1 indicates no specific subsound). </dd>
|
||||
<dt id="fsbank_progressitem_threadindex">threadIndex</dt>
|
||||
<dd>Which thread index is serving this update (-1 indicates <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a> / main thread). </dd>
|
||||
<dt id="fsbank_progressitem_state">state</dt>
|
||||
<dd>Progress through the encoding process. (<a class="apilink" href="fsbank-api.html#fsbank_state">FSBANK_STATE</a>)</dd>
|
||||
<dt id="fsbank_progressitem_statedata">stateData</dt>
|
||||
<dd>Cast to state specific data structure for extra information. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a>, <a class="apilink" href="fsbank-api.html#fsbank_fetchnextprogressitem">FSBank_FetchNextProgressItem</a>, <a class="apilink" href="fsbank-api.html#fsbank_releaseprogressitem">FSBank_ReleaseProgressItem</a>, <a class="apilink" href="fsbank-api.html#fsbank_state">FSBANK_STATE</a></p>
|
||||
<h2 api="enum" id="fsbank_result"><a href="#fsbank_result">8.18 FSBANK_RESULT</a></h2>
|
||||
<p>Error codes returned from every function.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FSBANK_RESULT</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_OK</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_CACHE_CHUNKNOTFOUND</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_CANCELLED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_CANNOT_CONTINUE</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_ENCODER</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_ENCODER_INIT</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_ENCODER_NOTSUPPORTED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_FILE_OS</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_FILE_NOTFOUND</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_FMOD</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_INITIALIZED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_INVALID_FORMAT</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_INVALID_PARAM</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_MEMORY</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_UNINITIALIZED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_WRITER_FORMAT</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_WARN_CANNOTLOOP</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_WARN_IGNORED_FILTERHIGHFREQ</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_WARN_IGNORED_DISABLESEEKING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_WARN_FORCED_DONTWRITENAMES</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_ENCODER_FILE_NOTFOUND</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_ERR_ENCODER_FILE_BAD</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_WARN_IGNORED_ALIGN4K</span><span class="p">,</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_RESULT</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_ok">FSBANK_OK</dt>
|
||||
<dd>No errors. </dd>
|
||||
<dt id="fsbank_err_cache_chunknotfound">FSBANK_ERR_CACHE_CHUNKNOTFOUND</dt>
|
||||
<dd>An expected chunk is missing from the cache, perhaps try deleting cache files. </dd>
|
||||
<dt id="fsbank_err_cancelled">FSBANK_ERR_CANCELLED</dt>
|
||||
<dd>The build process was cancelled during compilation by the user. </dd>
|
||||
<dt id="fsbank_err_cannot_continue">FSBANK_ERR_CANNOT_CONTINUE</dt>
|
||||
<dd>The build process cannot continue due to previously ignored errors. </dd>
|
||||
<dt id="fsbank_err_encoder">FSBANK_ERR_ENCODER</dt>
|
||||
<dd>Encoder for chosen format has encountered an unexpected error. </dd>
|
||||
<dt id="fsbank_err_encoder_init">FSBANK_ERR_ENCODER_INIT</dt>
|
||||
<dd>Encoder initialization failed. </dd>
|
||||
<dt id="fsbank_err_encoder_notsupported">FSBANK_ERR_ENCODER_NOTSUPPORTED</dt>
|
||||
<dd>Encoder for chosen format is not supported on this platform. </dd>
|
||||
<dt id="fsbank_err_file_os">FSBANK_ERR_FILE_OS</dt>
|
||||
<dd>An operating system based file error was encountered. </dd>
|
||||
<dt id="fsbank_err_file_notfound">FSBANK_ERR_FILE_NOTFOUND</dt>
|
||||
<dd>A specified file could not be found. </dd>
|
||||
<dt id="fsbank_err_fmod">FSBANK_ERR_FMOD</dt>
|
||||
<dd>Internal error from FMOD sub-system. </dd>
|
||||
<dt id="fsbank_err_initialized">FSBANK_ERR_INITIALIZED</dt>
|
||||
<dd>Already initialized. </dd>
|
||||
<dt id="fsbank_err_invalid_format">FSBANK_ERR_INVALID_FORMAT</dt>
|
||||
<dd>The format of the source file is invalid. </dd>
|
||||
<dt id="fsbank_err_invalid_param">FSBANK_ERR_INVALID_PARAM</dt>
|
||||
<dd>An invalid parameter has been passed to this function. </dd>
|
||||
<dt id="fsbank_err_memory">FSBANK_ERR_MEMORY</dt>
|
||||
<dd>Ran out of memory. </dd>
|
||||
<dt id="fsbank_err_uninitialized">FSBANK_ERR_UNINITIALIZED</dt>
|
||||
<dd>Not initialized yet. </dd>
|
||||
<dt id="fsbank_err_writer_format">FSBANK_ERR_WRITER_FORMAT</dt>
|
||||
<dd>Chosen encode format is not supported by this FSB version. </dd>
|
||||
<dt id="fsbank_warn_cannotloop">FSBANK_WARN_CANNOTLOOP</dt>
|
||||
<dd>Source file is too short for seamless looping. Looping disabled. </dd>
|
||||
<dt id="fsbank_warn_ignored_filterhighfreq">FSBANK_WARN_IGNORED_FILTERHIGHFREQ</dt>
|
||||
<dd><a class="apilink" href="fsbank-api.html#fsbank_build_filterhighfreq">FSBANK_BUILD_FILTERHIGHFREQ</a> flag ignored: feature only supported by XMA format. </dd>
|
||||
<dt id="fsbank_warn_ignored_disableseeking">FSBANK_WARN_IGNORED_DISABLESEEKING</dt>
|
||||
<dd><a class="apilink" href="fsbank-api.html#fsbank_build_disableseeking">FSBANK_BUILD_DISABLESEEKING</a> flag ignored: feature only supported by XMA format. </dd>
|
||||
<dt id="fsbank_warn_forced_dontwritenames">FSBANK_WARN_FORCED_DONTWRITENAMES</dt>
|
||||
<dd><a class="apilink" href="fsbank-api.html#fsbank_build_fsb5_dontwritenames">FSBANK_BUILD_FSB5_DONTWRITENAMES</a> flag forced: cannot write names when source is from memory. </dd>
|
||||
<dt id="fsbank_err_encoder_file_notfound">FSBANK_ERR_ENCODER_FILE_NOTFOUND</dt>
|
||||
<dd>External encoder dynamic library not found </dd>
|
||||
<dt id="fsbank_err_encoder_file_bad">FSBANK_ERR_ENCODER_FILE_BAD</dt>
|
||||
<dd>External encoder dynamic library could not be loaded, possibly incorrect binary format, incorrect architecture, file corruption </dd>
|
||||
<dt id="fsbank_warn_ignored_align4k">FSBANK_WARN_IGNORED_ALIGN4K</dt>
|
||||
<dd><a class="apilink" href="fsbank-api.html#fsbank_build_align4k">FSBANK_BUILD_ALIGN4K</a> flag ignored: feature only supported by Opus, Vorbis, and FADPCM formats.</dd>
|
||||
</dl>
|
||||
<h2 api="enum" id="fsbank_state"><a href="#fsbank_state">8.19 FSBANK_STATE</a></h2>
|
||||
<p>Current state during the build process.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">enum</span> <span class="n">FSBANK_STATE</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_STATE_DECODING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_ANALYSING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_PREPROCESSING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_ENCODING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_WRITING</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_FINISHED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_FAILED</span><span class="p">,</span>
|
||||
<span class="n">FSBANK_STATE_WARNING</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_STATE</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_state_decoding">FSBANK_STATE_DECODING</dt>
|
||||
<dd>Decode a file to usable raw sample data. </dd>
|
||||
<dt id="fsbank_state_analysing">FSBANK_STATE_ANALYSING</dt>
|
||||
<dd>Scan sound data for details (such as optimized sample rate). </dd>
|
||||
<dt id="fsbank_state_preprocessing">FSBANK_STATE_PREPROCESSING</dt>
|
||||
<dd>Prepares sound data for encoder. </dd>
|
||||
<dt id="fsbank_state_encoding">FSBANK_STATE_ENCODING</dt>
|
||||
<dd>Pass the sample data to the chosen encoder. </dd>
|
||||
<dt id="fsbank_state_writing">FSBANK_STATE_WRITING</dt>
|
||||
<dd>Write encoded data into an FSB. </dd>
|
||||
<dt id="fsbank_state_finished">FSBANK_STATE_FINISHED</dt>
|
||||
<dd>Process complete. </dd>
|
||||
<dt id="fsbank_state_failed">FSBANK_STATE_FAILED</dt>
|
||||
<dd>An error has occurred, check data (as <a class="apilink" href="fsbank-api.html#fsbank_statedata_failed">FSBANK_STATEDATA_FAILED</a>) for details. </dd>
|
||||
<dt id="fsbank_state_warning">FSBANK_STATE_WARNING</dt>
|
||||
<dd>A warning has been issued, check data (as <a class="apilink" href="fsbank-api.html#fsbank_statedata_warning">FSBANK_STATEDATA_WARNING</a>) for details. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_progressitem">FSBANK_PROGRESSITEM</a></p>
|
||||
<h2 api="struct" id="fsbank_statedata_failed"><a href="#fsbank_statedata_failed">8.20 FSBANK_STATEDATA_FAILED</a></h2>
|
||||
<p>Extra failed state data.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FSBANK_STATEDATA_FAILED</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_RESULT</span> <span class="n">errorCode</span><span class="p">;</span>
|
||||
<span class="kt">char</span> <span class="n">errorString</span><span class="p">[</span><span class="mi">256</span><span class="p">];</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_STATEDATA_FAILED</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_statedata_failed_errorcode">errorCode</dt>
|
||||
<dd>Error result code. (<a class="apilink" href="fsbank-api.html#fsbank_result">FSBANK_RESULT</a>)</dd>
|
||||
<dt id="fsbank_statedata_failed_errorstring">errorString</dt>
|
||||
<dd>Description for error code. </dd>
|
||||
</dl>
|
||||
<p>Cast stateData in <a class="apilink" href="fsbank-api.html#fsbank_progressitem">FSBANK_PROGRESSITEM</a> to this struct if the state is <a class="apilink" href="fsbank-api.html#fsbank_state_failed">FSBANK_STATE_FAILED</a></p>
|
||||
<h2 api="struct" id="fsbank_statedata_warning"><a href="#fsbank_statedata_warning">8.21 FSBANK_STATEDATA_WARNING</a></h2>
|
||||
<p>Extra warning state data.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FSBANK_STATEDATA_WARNING</span> <span class="p">{</span>
|
||||
<span class="n">FSBANK_RESULT</span> <span class="n">warnCode</span><span class="p">;</span>
|
||||
<span class="kt">char</span> <span class="n">warningString</span><span class="p">[</span><span class="mi">256</span><span class="p">];</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_STATEDATA_WARNING</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_statedata_warning_warncode">warnCode</dt>
|
||||
<dd>Warning result code. (<a class="apilink" href="fsbank-api.html#fsbank_result">FSBANK_RESULT</a>)</dd>
|
||||
<dt id="fsbank_statedata_warning_warningstring">warningString</dt>
|
||||
<dd>Description for warning code. </dd>
|
||||
</dl>
|
||||
<p>Cast stateData in <a class="apilink" href="fsbank-api.html#fsbank_progressitem">FSBANK_PROGRESSITEM</a> to this struct if the state is <a class="apilink" href="fsbank-api.html#fsbank_state_warning">FSBANK_STATE_WARNING</a></p>
|
||||
<h2 api="struct" id="fsbank_subsound"><a href="#fsbank_subsound">8.22 FSBANK_SUBSOUND</a></h2>
|
||||
<p>Representation of how to encode a single subsound in the final FSB.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-c"><pre><span></span><span class="k">typedef</span> <span class="k">struct</span> <span class="n">FSBANK_SUBSOUND</span> <span class="p">{</span>
|
||||
<span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="k">const</span> <span class="o">*</span><span class="n">fileNames</span><span class="p">;</span>
|
||||
<span class="k">const</span> <span class="kt">void</span><span class="o">*</span> <span class="k">const</span> <span class="o">*</span><span class="n">fileData</span><span class="p">;</span>
|
||||
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">*</span><span class="n">fileDataLengths</span><span class="p">;</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">numFiles</span><span class="p">;</span>
|
||||
<span class="n">FSBANK_BUILDFLAGS</span> <span class="n">overrideFlags</span><span class="p">;</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">overrideQuality</span><span class="p">;</span>
|
||||
<span class="kt">float</span> <span class="n">desiredSampleRate</span><span class="p">;</span>
|
||||
<span class="kt">float</span> <span class="n">percentOptimizedRate</span><span class="p">;</span>
|
||||
<span class="p">}</span> <span class="n">FSBANK_SUBSOUND</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<dl>
|
||||
<dt id="fsbank_subsound_filenames">fileNames</dt>
|
||||
<dd>List of file names (instead of FSBANK_SUBSOUND::fileData) used to produce an interleaved sound. (<a href="glossary.html#string-format">UTF-8 string</a>)</dd>
|
||||
<dt id="fsbank_subsound_filedata">fileData</dt>
|
||||
<dd>List of file data pointers (instead of FSBANK_SUBSOUND::fileNames) used to produce an interleaved sound. </dd>
|
||||
<dt id="fsbank_subsound_filedatalengths">fileDataLengths</dt>
|
||||
<dd>List of file data lengths corresponding to the items in the FSBANK_SUBSOUND::fileData list. </dd>
|
||||
<dt id="fsbank_subsound_numfiles">numFiles</dt>
|
||||
<dd>Number of items in either FSBANK_SUBSOUND::fileData / FSBANK_SUBSOUND::fileDataLengths or FSBANK_SUBSOUND::fileNames. </dd>
|
||||
<dt id="fsbank_subsound_overrideflags">overrideFlags</dt>
|
||||
<dd>Flags that will reverse the equivalent flags passed to <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a>. (<a class="apilink" href="fsbank-api.html#fsbank_buildflags">FSBANK_BUILDFLAGS</a>)</dd>
|
||||
<dt id="fsbank_subsound_overridequality">overrideQuality</dt>
|
||||
<dd>Override the quality setting passed to <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a>. </dd>
|
||||
<dt id="fsbank_subsound_desiredsamplerate">desiredSampleRate</dt>
|
||||
<dd>Resample to this sample rate (ignores optimize sample rate setting), up to 192000Hz. </dd>
|
||||
<dt id="fsbank_subsound_percentoptimizedrate">percentOptimizedRate</dt>
|
||||
<dd>If using <a class="apilink" href="fsbank-api.html#fsbank_build_optimizesamplerate">FSBANK_BUILD_OPTIMIZESAMPLERATE</a>, this is the percentage of that rate to be used, up to 100.0%. </dd>
|
||||
</dl>
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="fsbank-api.html#fsbank_build">FSBank_Build</a>, <a class="apilink" href="fsbank-api.html#fsbank_build_optimizesamplerate">FSBANK_BUILD_OPTIMIZESAMPLERATE</a>, <a class="apilink" href="fsbank-api.html#fsbank_buildflags">FSBANK_BUILDFLAGS</a></p></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
|
@ -0,0 +1,685 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Glossary</title>
|
||||
<link rel="stylesheet" href="style/docs.css">
|
||||
<link rel="stylesheet" href="style/code_highlight.css">
|
||||
<script type="text/javascript" src="scripts/language-selector.js"></script></head>
|
||||
<body>
|
||||
<div class="docs-body">
|
||||
<div class="manual-toc">
|
||||
<p>FMOD Engine User Manual 2.03</p>
|
||||
<ul>
|
||||
<li><a href="welcome.html">Welcome to the FMOD Engine</a></li>
|
||||
<li><a href="studio-guide.html">Studio API Guide</a></li>
|
||||
<li><a href="core-guide.html">Core API Guide</a></li>
|
||||
<li><a href="platforms.html">Platform Details</a></li>
|
||||
<li><a href="white-papers.html">White Papers</a></li>
|
||||
<li><a href="studio-api.html">Studio API Reference</a></li>
|
||||
<li><a href="core-api.html">Core API Reference</a></li>
|
||||
<li><a href="fsbank-api.html">FSBank API Reference</a></li>
|
||||
<li><a href="plugin-api.html">Plug-in API Reference</a></li>
|
||||
<li><a href="effects-reference.html">Effects Reference</a></li>
|
||||
<li><a href="troubleshooting.html">Troubleshooting</a></li>
|
||||
<li class="manual-current-chapter manual-active-chapter"><a href="glossary.html">Glossary</a><ul>
|
||||
<li><a href="#2d-vs-3d">2D vs 3D</a></li>
|
||||
<li><a href="#asset">Asset</a></li>
|
||||
<li><a href="#audio-channel">Audio channel</a></li>
|
||||
<li><a href="#automatic-parameter">Automatic Parameter</a></li>
|
||||
<li><a href="#bank-file">Bank File</a></li>
|
||||
<li><a href="#callback-behavior">Callback Behavior</a></li>
|
||||
<li><a href="#channel-group">Channel Group</a></li>
|
||||
<li><a href="#channel">Channel</a></li>
|
||||
<li><a href="#compressed-sample">Compressed Sample</a></li>
|
||||
<li><a href="#documentation-conventions">Documentation Conventions</a><ul>
|
||||
<li><a href="#parameter-tokens">Parameter Tokens</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#core-api-profiler-tool">Core API Profiler Tool</a></li>
|
||||
<li><a href="#core-api">Core API</a></li>
|
||||
<li><a href="#distance-units">Distance Units</a></li>
|
||||
<li><a href="#down-mixing">Down Mixing</a></li>
|
||||
<li><a href="#dsp-chain">DSP Chain</a></li>
|
||||
<li><a href="#dsp-clock">DSP Clock</a></li>
|
||||
<li><a href="#dsp-effect">DSP Effect</a></li>
|
||||
<li><a href="#dsp-engine">DSP Engine</a></li>
|
||||
<li><a href="#dsp-graph">DSP Graph</a></li>
|
||||
<li><a href="#dsp-sub-graph">DSP Sub-graph</a></li>
|
||||
<li><a href="#dsp">DSP</a></li>
|
||||
<li><a href="#effect">Effect</a></li>
|
||||
<li><a href="#fmod-engine">FMOD Engine</a></li>
|
||||
<li><a href="#fmod-studio">FMOD Studio</a></li>
|
||||
<li><a href="#fsb">FSB</a></li>
|
||||
<li><a href="#guid">GUID</a></li>
|
||||
<li><a href="#handedness">Handedness</a></li>
|
||||
<li><a href="#loading-mode">Loading Mode</a></li>
|
||||
<li><a href="#metadata">Metadata</a></li>
|
||||
<li><a href="#mixer">Mixer</a></li>
|
||||
<li><a href="#reading-sound-data">Reading Sound Data</a></li>
|
||||
<li><a href="#sample-data">Sample Data</a><ul>
|
||||
<li><a href="#endianness">Endianness</a></li>
|
||||
<li><a href="#sample-formats">Sample Formats</a></li>
|
||||
<li><a href="#samples-vs-bytes-vs-milliseconds">Samples vs Bytes vs Milliseconds</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#sample">Sample</a></li>
|
||||
<li><a href="#signal">Signal</a></li>
|
||||
<li><a href="#sound">Sound</a></li>
|
||||
<li><a href="#streaming-sample-data">Streaming Sample Data</a></li>
|
||||
<li><a href="#stream">Stream</a><ul>
|
||||
<li><a href="#streaming-issues">Streaming Issues</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#string-format">String Format</a></li>
|
||||
<li><a href="#studio-api">Studio API</a></li>
|
||||
<li><a href="#studio-guids-and-paths">Studio GUIDs and Paths</a></li>
|
||||
<li><a href="#studio-strings-bank">Studio Strings Bank</a></li>
|
||||
<li><a href="#studio-update-thread">Studio Update Thread</a></li>
|
||||
<li><a href="#sync-points">Sync Points</a></li>
|
||||
<li><a href="#up-mixing">Up Mixing</a></li>
|
||||
<li><a href="#user-data">User Data</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="manual-content api">
|
||||
<h1>12. Glossary</h1>
|
||||
<h2 id="2d-vs-3d"><a href="#2d-vs-3d">12.1 2D vs 3D</a></h2>
|
||||
<p>A 3D sound <strong>source</strong> is a <a class="apilink" href="core-api-channel.html">Channel</a> that has a position and a velocity in space. When a 3D <a class="apilink" href="core-api-channel.html">Channel</a> is playing, its volume, speaker placement and pitch will be affected automatically based on the relation to the <strong>listener</strong>.</p>
|
||||
<p>A <strong>listener</strong> is typically the location of the player or the game camera. It has a position and velocity like a sound <strong>source</strong>, but it also has an orientation.</p>
|
||||
<p>3D Sound behaviour:</p>
|
||||
<ul>
|
||||
<li><strong>Volume</strong> is affected by the relative distance of the <strong>listener</strong> and the <strong>source</strong>.</li>
|
||||
<li><strong>Pitch</strong> is affected by the relative velocity of the <strong>listener</strong> and the <strong>source</strong> (This causes the doppler effect).</li>
|
||||
<li><strong>Pan</strong> is affected by the relative orientation of the <strong>listener</strong> to the position of the <strong>source</strong>.</li>
|
||||
</ul>
|
||||
<p>2D Sound behaviour:</p>
|
||||
<ul>
|
||||
<li>3D <strong>listener</strong> and <strong>source</strong> positions, velocities and orientations are ignored and have no effect.</li>
|
||||
<li>2D specific funcionality such as <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixlevelsoutput">ChannelControl::setMixLevelsOutput</a>, <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setmixmatrix">ChannelControl::setMixMatrix</a> and <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_setpan">ChannelControl::setPan</a> will allow manual panning of audio.</li>
|
||||
</ul>
|
||||
<p><strong>Note:</strong> You can blend between a 3D mix and a 2D mix with <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_set3dlevel">ChannelControl::set3DLevel</a>.</p>
|
||||
<p>For a more detailed description of 3D sound behaviour, read the <a href="white-papers-3d-sounds.html">tutorial</a> on the topic.</p>
|
||||
<h2 id="asset"><a href="#asset">12.2 Asset</a></h2>
|
||||
<p>An audio asset is a prerecorded sound that could potentially be used in a game. Assets can be loose audio files, or can be built into <a href="glossary.html#bank-file">bank files</a> or <a href="glossary.html#fsb">FSBs</a>.</p>
|
||||
<h2 id="audio-channel"><a href="#audio-channel">12.3 Audio channel</a></h2>
|
||||
<p>An audio channel is a monoaural signal generally associated with a particular speaker. For example, a stereo <a href="glossary.html#signal">signal</a> contains two channels, left and right. This is unrelated to the FMOD <a href="glossary.html#channel">Channel</a> class.</p>
|
||||
<h2 id="automatic-parameter"><a href="#automatic-parameter">12.4 Automatic Parameter</a></h2>
|
||||
<p>An automatic parameter (also known in <a href="glossary.html#fmod-studio">FMOD Studio</a> as a <a href="https://fmod.com/docs/2.03/studio/glossary.html#built-in-parameter">built-in parameter</a>) is any <a href="studio-guide.html#setting-parameters">parameter</a> whose value is automatically set based on the event instance's <a href="studio-api-eventinstance.html#studio_eventinstance_set3dattributes">3D attributes</a> whenever the FMOD Studio system is updated.</p>
|
||||
<p>Types of automatic parameter include:</p>
|
||||
<ul>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_DISTANCE</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_CONE_ANGLE</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_EVENT_ORIENTATION</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_DIRECTION</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_ELEVATION</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_LISTENER_ORIENTATION</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED</li>
|
||||
<li>FMOD_STUDIO_PARAMETER_AUTOMATIC_SPEED_ABSOLUTE</li>
|
||||
</ul>
|
||||
<p>For more information about these parameter types, see the <a href="studio-api-common.html#fmod_studio_parameter_type">FMOD_STUDIO_PARAMETER_TYPE</a> section of the <a href="studio-api.html">Studio API Reference</a> chapter.</p>
|
||||
<h2 id="bank-file"><a href="#bank-file">12.5 Bank File</a></h2>
|
||||
<p>A bank file, or "bank," is a collection of content created in an <a href="glossary.html#fmod-studio">FMOD Studio</a> project, formatted and compressed for use with the version of the <a href="glossary.html#fmod-engine">FMOD Engine</a> integrated into in your game.</p>
|
||||
<p>Bank files usually contain both <a href="glossary.html#metadata">metadata</a> and <a href="glossary.html#sample-data">sample data</a>. However, it is also possible to create split banks whose sample data and metadata are in separate bank files. Splitting banks in this fashion slightly increases overhead at run time, but can help keep patch size low if it is ever necessary to release a patched version of your game that includes changes to the audio metadata but not the sample data.</p>
|
||||
<p>Bank files are compatible with any version of the FMOD Engine with the same major and product version numbers as the version of FMOD Studio used to create them. For example, a bank built in FMOD Studio version 2.00.03 is compatible with FMOD Engine versions 2.00.03, 2.00.00, and 2.00.10, but not with versions 1.10.14, 1.00.03, and 2.01.03.</p>
|
||||
<p>At least one bank in any FMOD Studio project is a <span class="dead-link" href="glossary.html#master-bank">master bank</span class="dead-link">. A master bank contains data relevant to your entire FMOD Studio project, and so at least one master bank must be loaded into memory before <em>any</em> event in <em>any</em> bank may be used by your game. Most games have a single master bank that is kept loaded into memory at all times.</p>
|
||||
<p>Bank files (.bank) should not be confused with <a href="glossary.html#fsb">FMOD Sample Bank files (.fsb)</a>. They are two different formats.</p>
|
||||
<p>For more information about using bank files in the FMOD Engine, see the <a href="studio-guide.html#bank-layout">Bank Layout</a>, <a href="studio-guide.html#bank-loading">Bank Loading</a>, and <a href="studio-guide.html#bank-unload">Bank Unload</a> sections of the <a href="studio-guide.html">Studio API Guide</a> chapter, as well as the <a href="studio-api-bank.html">Studio::Bank</a> subchapter of the <a href="studio-api.html">Studio API Reference</a> chapter.</p>
|
||||
<h2 id="callback-behavior"><a href="#callback-behavior">12.6 Callback Behavior</a></h2>
|
||||
<p>Only one callback is stored for each <a class="apilink" href="core-api-system.html">System</a>/<a class="apilink" href="studio-api-system.html">Studio::System</a>/<a class="apilink" href="studio-api-eventinstance.html">Studio::EventInstance</a>/<a class="apilink" href="core-api-channelcontrol.html">ChannelControl</a>/<a class="apilink" href="core-api-dsp.html">DSP</a>. Therefore, any registered callback should handle all required callback types and indicate those types via the callback type mask.</p>
|
||||
<p>All calls to callbacks are issued per type. This means that if, for example, you use <a class="apilink" href="core-api-system.html#system_setcallback">System::setCallback</a> with <a class="apilink" href="core-api-system.html#fmod_system_callback_all">FMOD_SYSTEM_CALLBACK_ALL</a>, when the callback is called, only one type will be passed for the <code>type</code> argument. Multiple types will not be combined for a single call.</p>
|
||||
<p><strong>C/C++ behavior</strong>. Casting your own function type to an FMOD callback could cause a crash or corruption. For callback declaration always use F_CALL between the return type and the function name, and use the correct C types for all callback parameters. </p>
|
||||
<h2 id="channel-group"><a href="#channel-group">12.7 Channel Group</a></h2>
|
||||
<p>A channel group allows attributes to be set on a group of <a href="glossary.html#channel">channels</a> collectively. A <a href="glossary.html#channel-group">channel group</a> also allows you to operate on a the final mixed <a href="glossary.html#signal">signal</a> of the output of its <a href="glossary.html#channel">channels</a> and child <a href="glossary.html#channel-group">channel groups</a>. This is known as a 'sub mix'.</p>
|
||||
<p>A <a href="glossary.html#channel-group">channel group</a> can be created with <a class="apilink" href="core-api-system.html#system_createchannelgroup">System::createChannelGroup</a>, which returns a <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> object.</p>
|
||||
<p>The sub mix buffer can be processed with <a href="glossary.html#effect">effects</a> (see <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_adddsp">ChannelControl::addDSP</a>), saving CPU time compared to applying the same effect to multiple <a href="glossary.html#channel">channels</a> individually.</p>
|
||||
<p>The signal processing of a <a href="glossary.html#channel-group">channel group</a> persists even when a <a href="glossary.html#channel">channel</a> has stopped.</p>
|
||||
<p>A <a href="glossary.html#channel-group">channel group</a> can contain many children <a href="glossary.html#channel-group">channel groups</a>, but can only have one parent <a href="glossary.html#channel-group">channel group</a>. See <a class="apilink" href="core-api-channelgroup.html#channelgroup_addgroup">ChannelGroup::addGroup</a> and <a class="apilink" href="core-api-channelgroup.html#channelgroup_getparentgroup">ChannelGroup::getParentGroup</a>.</p>
|
||||
<h2 id="channel"><a href="#channel">12.8 Channel</a></h2>
|
||||
<p>A Channel is a playing instance of a <a class="apilink" href="core-api-sound.html">Sound</a>. This is unrelated to an <a href="glossary.html#audio-channel">audio channel</a>.</p>
|
||||
<p>After loading or creating a <a class="apilink" href="core-api-sound.html">Sound</a>, it is playable via the <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a> command which returns a Channel object for run-time manipulation of its properties.</p>
|
||||
<p>FMOD automatically selects a Channel for the sound to play on, you do not have to manage your own Channels.</p>
|
||||
<p>Set the maximum number of Channels playable with <a class="apilink" href="core-api-system.html#system_init">System::init</a>. For more information on Channels and how they can be real or virtual, go to the <a href="white-papers-virtual-voices.html">Virtual Voices</a> white paper.</p>
|
||||
<h2 id="compressed-sample"><a href="#compressed-sample">12.9 Compressed Sample</a></h2>
|
||||
<p>Parent topic : <a href="glossary.html#sound">Sound</a></p>
|
||||
<p>Compressed Samples are suited for small sounds that need to be played more than once at a time, for example sound effects. </p>
|
||||
<p>Only certain file formats are supported with this type of sound. File formats such as .MP2, .MP3, and .FSB (using FADPCM, Vorbis, AT9 and XMA codecs).<br />
|
||||
This type of sound is stored in memory in its native compressed format, and decodes in real-time while playing.</p>
|
||||
<p>Use <a class="apilink" href="core-api-common.html#fmod_createcompressedsample">FMOD_CREATECOMPRESSEDSAMPLE</a> to create a <a class="apilink" href="core-api-sound.html">Sound</a> object in this mode.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Compressed Sample attributes</th>
|
||||
<th>Comparison</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Keeps sound compressed into memory.</td>
|
||||
<td>Can use less memory than a <a href="glossary.html#sample">sample</a>, large sounds can use more than a <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Higher CPU overhead during playback.</td>
|
||||
<td>Uses more CPU than a <a href="glossary.html#sample">sample</a>, slightly less than a <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fast to load.</td>
|
||||
<td>Faster than a <a href="glossary.html#sample">sample</a>, possibly slower than a <a href="glossary.html#stream">stream</a> with very large sounds.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Can play more than 1 at a time.</td>
|
||||
<td>Better polyphony than a <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>Note</strong>: Compressed samples have a context allocated for each instance of playback. This requires a fixed start up memory overhead. See <a class="apilink" href="core-api-system.html#fmod_advancedsettings">FMOD_ADVANCEDSETTINGS</a> to control codec maximums.</p>
|
||||
<h2 id="documentation-conventions"><a href="#documentation-conventions">12.10 Documentation Conventions</a></h2>
|
||||
<h3 id="parameter-tokens"><a href="#parameter-tokens">12.10.1 Parameter Tokens</a></h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th align="center">Token</th>
|
||||
<th>Meaning</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"><span><span class="token" title="Output">Out</span></span></td>
|
||||
<td>The API function will fill in information in this parameter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><span><span class="token" title="Optional">Opt</span></span></td>
|
||||
<td>This parameter is optional, specify null or zero to ignore.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><span><span class="token" title="Read-only">R/O</span></span></td>
|
||||
<td>This token applies to members of various structures which FMOD passes to user callbacks. User callbacks must not modify the values of these members. Modifying the values of these members will cause undefined behavior.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><span><span class="token" title="C#only">C#</span></span></td>
|
||||
<td>This is only available in C#.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><span><span class="token" title="Javscript-only">JS</span></span></td>
|
||||
<td>This is only available in Javascript.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2 id="core-api-profiler-tool"><a href="#core-api-profiler-tool">12.11 Core API Profiler Tool</a></h2>
|
||||
<p>The core API profiler tool, also known as the FMOD Profiler or <code>FMOD Profiler.exe</code>, is a tool for profiling your game's <a href="glossary.html#dsp-graph">DSP graph</a> and performance. It can be found in the /bin directory of the FMOD Engine distribution.</p>
|
||||
<p>To profile your game with the core API profiler tool, you must specify FMOD_INIT_PROFILE_ENABLE when initializing the Core API. For more information about initialization flags, see the <a href="core-api-system.html#fmod_init_profile_enable">FMOD_INITFLAGS</a> section of the <a href="core-api.html">Core API Reference</a> chapter.</p>
|
||||
<h2 id="core-api"><a href="#core-api">12.12 Core API</a></h2>
|
||||
<p>The Core API is a programmer API that allows the manipulation of low-level audio primitives, and is the backbone of the <a href="glossary.html#fmod-engine">FMOD Engine</a>.</p>
|
||||
<p>Unlike the <a href="glossary.html#studio-api">Studio API</a>, the Core API is a standalone solution that allows you to implement every part of your game's audio using only code, and does not require the use of <a href="glossary.html#fmod-studio">FMOD Studio</a> to design audio content. However, while it is more powerful than the Studio API, it includes fewer convenience functions, and so is best used in games that require more flexibility than the Studio API can provide.</p>
|
||||
<p>The Core API and Studio API together comprise the <a href="glossary.html#fmod-engine">FMOD Engine</a>.</p>
|
||||
<p>For more information about the Core API, see the <a href="core-guide.html">Core API Guide</a> and <a href="core-api.html">Core API Reference</a> chapters.</p>
|
||||
<h2 id="distance-units"><a href="#distance-units">12.13 Distance Units</a></h2>
|
||||
<p>The unit of measurement for distances for 3D calculations. By default 1 disance unit is equivalent to 1 meter. To use your game's distance units specify the scale of your game's distance units to meters using <a class="apilink" href="core-api-system.html#system_set3dsettings">System::set3DSettings</a>. </p>
|
||||
<h2 id="down-mixing"><a href="#down-mixing">12.14 Down Mixing</a></h2>
|
||||
<p>When the source <a href="glossary.html#signal">signal</a> channel count is higher than the destination, it will distribute its higher channel information into the lower speaker mode's channels.<br />
|
||||
This example is a table of the speakers in a stereo output with the input speakers of a 7.1 signal. Values in table represent attenuation. 0dB = full volume, - = silence.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Output speaker</th>
|
||||
<th>Front left in</th>
|
||||
<th>Front right in</th>
|
||||
<th>Center in</th>
|
||||
<th>LFE in</th>
|
||||
<th>Surround left in</th>
|
||||
<th>Surround right in</th>
|
||||
<th>Back left in</th>
|
||||
<th>Back right in</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Left</td>
|
||||
<td>0dB</td>
|
||||
<td>-</td>
|
||||
<td>-3dB</td>
|
||||
<td>-</td>
|
||||
<td>-3dB</td>
|
||||
<td>-</td>
|
||||
<td>-6dB</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Right</td>
|
||||
<td>-</td>
|
||||
<td>0dB</td>
|
||||
<td>-3dB</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-3dB</td>
|
||||
<td>-</td>
|
||||
<td>-6dB</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><em>Example of a higher 7.1 speaker mode signal being down mixed to a stereo output. When more than one input channel contributes to the output speaker, the inputs are summed/mixed together.</em></p>
|
||||
<h2 id="dsp-chain"><a href="#dsp-chain">12.15 DSP Chain</a></h2>
|
||||
<p>A DSP chain is a type of <a href="glossary.html#dsp-sub-graph">DSP sub-graph</a> in which multiple <a href="glossary.html#dsp">DSP units</a> are connected together in a linear fashion. Each <a class="apilink" href="core-api-channel.html">Channel</a> and <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> contains a DSP chain.</p>
|
||||
<p>A DSP is capable of multiple inputs, but in a DSP chain each DSP is connected to the next with one input, all the way from the tail to the head. See <a class="apilink" href="core-api-channelcontrol.html#fmod_channelcontrol_dsp_index">FMOD_CHANNELCONTROL_DSP_INDEX</a> for special named offsets for 'head' and 'tail' and 'fader' units.</p>
|
||||
<p><img alt="DSP Chain" src="images/dsp-chain.png" /></p>
|
||||
<p>A typical <a class="apilink" href="core-api-channel.html">Channel</a> is represented above, with a node at the 'head' (of type <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_fader">FMOD_DSP_TYPE_FADER</a> to allow volume control and panning), which is fed by an <a href="effects-reference.html#echo">echo effect</a> (of type <a class="apilink" href="core-api-common-dsp-effects.html#fmod_dsp_type_echo">FMOD_DSP_TYPE_ECHO</a>) which is in turn fed by a PCM wavetable unit (of type that is internal to FMOD) at the 'tail'. The <a href="glossary.html#signal">signal</a> feeds from right to left to the DSP chain's head, before continuing to the next connected DSP (not pictured).</p>
|
||||
<h2 id="dsp-clock"><a href="#dsp-clock">12.16 DSP Clock</a></h2>
|
||||
<p>Each <a href="glossary.html#dsp">DSP unit</a> has an associated DSP clock. The speed of this clock affects any time-based behavior the DSP has, such that a DSP with a faster DSP clock will change the way it processes the <a href="glossary.html#signal">signal</a> more rapidly than one with a slower clock.</p>
|
||||
<p>By default, all DSP clocks run at the same speed, helping ensure that different <a href="glossary.html#channel">channels</a> and <a href="glossary.html#channel-group">channel groups</a> remain synchronized. However, if a channel or channel group is subject to pitch adjustment, the DSP clocks associated with that channel or channel group may run at a faster or slower rate in order to account for the time stretching inherent to pitch changes.</p>
|
||||
<p>DSP clocks are used for scheduling various time-based behaviors, including those of <a href="core-api-channelcontrol.html#channelcontrol_setdelay">ChannelControl::setDelay</a> in the <a href="glossary.html#core-api">Core API</a> and <a href="https://fmod.com/docs/2.03/studio/glossary.html#modulator">modulators</a> in <a href="glossary.html#fmod-studio">FMOD Studio</a>.</p>
|
||||
<h2 id="dsp-effect"><a href="#dsp-effect">12.17 DSP Effect</a></h2>
|
||||
<p>A DSP effect is an <a href="glossary.html#effect">effect</a> that makes use of a <a href="glossary.html#dsp">DSP unit</a>.</p>
|
||||
<h2 id="dsp-engine"><a href="#dsp-engine">12.18 DSP Engine</a></h2>
|
||||
<p>The DSP engine is the portion of the <a href="glossary.html#fmod-engine">FMOD Engine</a> that traverses, executes, and mixes the <a href="glossary.html#dsp-graph">DSP graph</a>.</p>
|
||||
<p>For more information about the DSP engine, see the <a href="white-papers-dsp-architecture.html#dsp-architecture-and-usage">DSP Architecture and Usage</a> white paper.</p>
|
||||
<h2 id="dsp-graph"><a href="#dsp-graph">12.19 DSP Graph</a></h2>
|
||||
<p>The DSP graph is made of <a href="glossary.html#dsp">DSP units</a> linked together into a network by <a href="core-api-dspconnection.html">DSPConnections</a>. <a href="glossary.html#signal">Audio signals</a> originate and flow through the DSP graph, being processed by the DSP units they pass through and combined into a submix whenever multiple DSPConnections target the same DSP unit, until they arrive at an output. The DSP graph allows audio to be dynamically processed and mixed, and so is the foundation of all dynamic game audio in FMOD.</p>
|
||||
<p>Normally, an FMOD project has one DSP graph. Sections of a DSP graph may be referred to as <a href="glossary.html#dsp-sub-graph">sub-graphs</a> for the purpose of easy discussion.</p>
|
||||
<p>An FMOD project's DSP graph may be viewed by using the <a href="glossary.html#core-api-profiler-tool">FMOD Profiler</a>, as long as you specify <a href="core-api-system.html#fmod_initflags">FMOD_INIT_PROFILE_ENABLE</a> when initializing the Core API.</p>
|
||||
<p>For more information about DSP graphs, see the <a href="white-papers-dsp-architecture.html#dsp-architecture-and-usage">DSP Architecture and Usage</a> white paper.</p>
|
||||
<h2 id="dsp-sub-graph"><a href="#dsp-sub-graph">12.20 DSP Sub-graph</a></h2>
|
||||
<p>A DSP sub-graph is an arbitrary subset of the <a href="glossary.html#dsp">DSP units</a> and <a href="core-api-dspconnection.html">DSPConnections</a> in a <a href="glossary.html#dsp-graph">DSP graph</a>. They are not represented in code; rather, they are a useful abstraction when discussing a project's DSP interactions, as they are easier to conceptualize of than the entire DSP graph.</p>
|
||||
<h2 id="dsp"><a href="#dsp">12.21 DSP</a></h2>
|
||||
<p>DSP stands for "Digital Signal Processing", and usually relates to processing raw PCM samples to alter the sound. A DSP unit (or just "a DSP") is a modular node in the <a href="glossary.html#dsp-graph">DSP graph</a> that's capable of a specific kind of digital signal processing. Many DSPs are used in <a href="glossary.html#effect">effects</a>, or to process audio in other situations.</p>
|
||||
<p>DSPs can be added to an FMOD <a class="apilink" href="core-api-channel.html">Channel</a>, or <a class="apilink" href="core-api-channelgroup.html">ChannelGroup</a> with the <a class="apilink" href="core-api-channelcontrol.html#channelcontrol_adddsp">ChannelControl::addDSP</a> function.</p>
|
||||
<p>FMOD provides a suite of DSPs that can alter sounds in interesting ways, such as better simulating real-world sound behavior or exaggerating sounds. Examples of such DSPs include the <a href="effects-reference.html#echo">echo</a>, <a href="effects-reference.html#sfx-reverb">SFX reverb</a>, <a href="effects-reference.html#it-low-pass">IT low pass</a>, <a href="effects-reference.html#flange">flange</a>, and <a href="effects-reference.html#chorus">chorus</a> DSPs.</p>
|
||||
<p>You can also write your own DSPs by using <a class="apilink" href="core-api-system.html#system_createdsp">System::createDSP</a>. For more information about writing DSPs, see the <a href="plugin-api-dsp.html">DSP</a> subchapter of the <a href="plugin-api.html">Plug-in API Reference</a> chapter.</p>
|
||||
<h2 id="effect"><a href="#effect">12.22 Effect</a></h2>
|
||||
<p>In the FMOD Engine, an effect is a modular unit that manipulates a <a href="glossary.html#signal">signal</a> in some way. Most effects are <a href="glossary.html#dsp-effect">DSP effects</a>, which is to say, they use digital signal processing units to alter the signal.</p>
|
||||
<p>The effects included in the FMOD Engine are detailed in the <a href="effects-reference.html">Effects Reference</a> chapter.<br />
|
||||
Many FMOD Engine effects also exist as <a href="https://fmod.com/docs/2.03/studio/glossary.html#effect">FMOD Studio effects</a>, though not all.</p>
|
||||
<h2 id="fmod-engine"><a href="#fmod-engine">12.23 FMOD Engine</a></h2>
|
||||
<p>The FMOD Engine is a runtime library for playing adaptive audio in games. It consists of two APIs: The <a href="glossary.html#studio-api">Studio API</a>, and the <a href="glossary.html#core-api">Core API</a>. Content created in <a href="glossary.html#fmod-studio">FMOD Studio</a> can be built as <a href="glossary.html#bank-file">.bank files</a>, which can then be loaded and played in the FMOD Engine using the Studio API. The Core API allows audio programmers to create audio content without using FMOD Studio, and to interact with the FMOD Engine's underlying mechanisms.</p>
|
||||
<p>For more information about the FMOD Engine, see the <a href="https://fmod.com/docs/2.03/api">FMOD Engine User Manual</a>. You're reading it right now.</p>
|
||||
<h2 id="fmod-studio"><a href="#fmod-studio">12.24 FMOD Studio</a></h2>
|
||||
<p>FMOD Studio is an application that allows sound designers and composers to create <a href="https://fmod.com/docs/2.03/studio/glossary.html#adaptive-audio">adaptive audio</a> content for games. Content created in FMOD Studio can be built as <a href="https://fmod.com/docs/2.03/studio/glossary.html#bank-file">.bank files</a>, which can then be loaded and played in the <a href="glossary.html#fmod-engine">FMOD Engine</a> using the <a href="glossary.html#studio-api">Studio API</a>.</p>
|
||||
<p>For more information about FMOD Studio, see the <a href="https://fmod.com/docs/2.03/studio">FMOD Studio User Manual</a>.</p>
|
||||
<h2 id="fsb"><a href="#fsb">12.25 FSB</a></h2>
|
||||
<p>.fsb files (also known as "FMOD Soundbanks" or "FSBs") are a proprietary file format that acts as a container for encoded and compressed sample data. They are built using <a href="fsbank-api.html">FSBank API</a> or the FMOD Soundbank Generator tool that comes packaged with the <a href="glossary.html#fmod-engine">FMOD Engine</a>, and their content can be loaded and played using the <a href="glossary.html#core-api">Core API</a>.</p>
|
||||
<p>.fsb files should not be confused with the .bank files built in FMOD Studio. Unlike FMOD Studio's .bank files, .fsb files cannot contain event or mixer metadata, but their sampledata can be loaded and played using the Core API without needing the <a href="glossary.html#studio-api">Studio API</a>. In most cases, if your game uses the Studio API, you should use .bank files; whereas if your game uses only the Core API, you should use .fsb files.</p>
|
||||
<p>The FMOD Engine is compatible with all .fsb files built using the FSBank API and the FMOD Soundbank Generator tool that comes packaged with the FMOD Engine. .fsb files that were instead built using older tools (such as FMOD Designer, FMOD Ex, or versions of the FMOD Soundbank Generator tool distributed with FMOD Ex) use older, deprecated codecs, and so are not compatible with the FMOD Engine.</p>
|
||||
<h2 id="guid"><a href="#guid">12.26 GUID</a></h2>
|
||||
<p>A GUID is a unique string used to identify a digital object, and stands for <strong>G</strong>lobally <strong>U</strong>nique <strong>Id</strong>entifier. In the <a href="glossary.html#fmod-engine">FMOD Engine</a>, GUIDs are commonly used to invoke and define relationships between the various elements of a project. For example, every <span class="dead-link" href="glossary.html#event">event</span class="dead-link">, <a href="glossary.html#asset">asset</a>, <span class="dead-link" href="glossary.html#bus">bus</span class="dead-link">, <span class="dead-link" href="glossary.html#parameter">parameter</span class="dead-link">, <span class="dead-link" href="glossary.html#snapshot">snapshot</span class="dead-link">, <a href="glossary.html#effect">effect</a>, <a href="glossary.html#bank-file">bank</a>, and <span class="dead-link" href="glossary.html#instrument">instrument</span class="dead-link"> in an FMOD Studio project has a GUID, and each such object's metadata includes the GUIDs of other objects that it references or is referenced by.</p>
|
||||
<p>Certain APIs allow you to specify which object to affect by GUID. For example, <a href="studio-api-system.html#studio_system_geteventbyid">Studio::System::getEventByID</a> gets the <a href="studio-api-eventdescription.html">eventDescription</a> of an event with a specified GUID.</p>
|
||||
<p>GUIDs are a form of <a href="glossary.html#metadata">metadata</a>. The GUID structure used by the FMOD Engine is defined by <a href="core-api-common.html#fmod_guid">FMOD_GUID</a>.</p>
|
||||
<h2 id="handedness"><a href="#handedness">12.27 Handedness</a></h2>
|
||||
<p>Handedness is an innate property of 3D cartesian coordinate systems. The handedness of the coordinate system specifies the relative direction of the Z axis along the line perpendicular to the X and Y axes, and the direction of positive rotations when an axis is directed towards the point of view.</p>
|
||||
<p>When the X axis is directed to the right, and the Y axis is directed upwards:</p>
|
||||
<ul>
|
||||
<li>A left-handed coordinate system's Z is directed <em>away</em> from the point of view, and rotations in the positive direction are <em>clockwise</em>.</li>
|
||||
<li>A right-handed coordinate system's Z axis is directed <em>towards</em> the point of view, and rotations in the positive direction are <em>counter-clockwise</em>.</li>
|
||||
</ul>
|
||||
<p>For 3D spatialization to behave intuitively, it is important that FMOD is configured to use the same orientation as your game's coordinate system. By default FMOD uses a left-handed coordinate system, but FMOD may also be configured to use a right-handed coordinate system by passing <a class="apilink" href="core-api-system.html#fmod_init_3d_righthanded">FMOD_INIT_3D_RIGHTHANDED</a> to <a class="apilink" href="core-api-system.html#system_init">System::init</a>.</p>
|
||||
<h2 id="loading-mode"><a href="#loading-mode">12.28 Loading Mode</a></h2>
|
||||
<p>The loading mode of an <a href="glossary.html#asset">asset</a> is the way in which that asset's <a href="glossary.html#sample-data">sample data</a> is loaded into memory so that it can be played. There are three possible loading modes:</p>
|
||||
<ul>
|
||||
<li><strong>Compressed.</strong> In this mode, the asset's sample data is loaded into memory in a compressed format in advance of its being played. This sample data is then decompressed in real time whenever an instance of the asset is played. This mode requires less memory than decompressed loading mode, but requires more CPU to play the loaded asset.</li>
|
||||
<li><strong>Decompressed.</strong> In this mode, the asset's sample data is loaded into memory in a decompressed format in advance of being played. This mode requires more memory than compressed loading mode, but does not require as much CPU to play the loaded asset.</li>
|
||||
<li><strong>Streaming.</strong> In this mode, each playing instance of the asset requires a separate stream. Each stream is a ring buffer; the asset associated with a stream is loaded piecemeal from disk into the buffer, and each piece is played as soon as it is loaded then immediately overwritten by the next piece. Because only a small part of the asset is loaded into memory at any given time, streaming assets require only a small amount of memory compared to the other loading modes. However, because each instance of a streaming asset requires a separate buffer that loads the asset independently, each contemporaneously playing instance of an asset with this loading mode requires constant file I/O.</li>
|
||||
</ul>
|
||||
<p>For more information about loading assets in the FMOD Engine, see the <a href="studio-guide.html#sample-data-loading">Sample Data Loading</a> section of the <a href="studio-guide.html">Studio API Guide</a> chapter. For more information about the streaming loading mode specifically, see the <a href="core-guide.html#streaming">Streaming</a> section of the <a href="core-guide.html">Core API Guide</a> chapter.</p>
|
||||
<h2 id="metadata"><a href="#metadata">12.29 Metadata</a></h2>
|
||||
<p>Metadata is data that describes other data. In FMOD Studio and the FMOD Engine, "metadata" usually means the data that describes how <a href="glossary.html#sample-data">sample data</a> is to be used in a game, i.e.: the data that defines an <a href="glossary.html#fmod-studio">FMOD Studio</a> project's <span class="dead-link" href="glossary.html#event">events</span class="dead-link">, <a href="glossary.html#mixer">mixer</a>, and other non-sample data content. This kind of metadata is packaged into <a href="glossary.html#bank-file">bank files</a> whenever a project is built in FMOD Studio.</p>
|
||||
<h2 id="mixer"><a href="#mixer">12.30 Mixer</a></h2>
|
||||
<p>See <a href="glossary.html#dsp-graph">DSP graph</a>.</p>
|
||||
<h2 id="reading-sound-data"><a href="#reading-sound-data">12.31 Reading Sound Data</a></h2>
|
||||
<p>The following shows how to read sound data to a buffer using <a class="apilink" href="core-api-sound.html#sound_readdata">Sound::readData</a>.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="n">FMOD</span><span class="o">::</span><span class="n">Sound</span> <span class="o">*</span><span class="n">sound</span><span class="p">;</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">length</span><span class="p">;</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">buffer</span><span class="p">;</span>
|
||||
|
||||
<span class="n">system</span><span class="o">-></span><span class="n">createSound</span><span class="p">(</span><span class="s">"drumloop.wav"</span><span class="p">,</span> <span class="n">FMOD_DEFAULT</span> <span class="o">|</span> <span class="n">FMOD_OPENONLY</span><span class="p">,</span> <span class="k">nullptr</span><span class="p">,</span> <span class="o">&</span><span class="n">sound</span><span class="p">);</span>
|
||||
<span class="n">sound</span><span class="o">-></span><span class="n">getLength</span><span class="p">(</span><span class="o">&</span><span class="n">length</span><span class="p">,</span> <span class="n">FMOD_TIMEUNIT_RAWBYTES</span><span class="p">);</span>
|
||||
|
||||
<span class="n">buffer</span> <span class="o">=</span> <span class="k">new</span> <span class="kt">char</span><span class="p">[</span><span class="n">length</span><span class="p">];</span>
|
||||
<span class="n">sound</span><span class="o">-></span><span class="n">readData</span><span class="p">(</span><span class="n">buffer</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="k">nullptr</span><span class="p">);</span>
|
||||
|
||||
<span class="k">delete</span><span class="p">[]</span> <span class="n">buffer</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="n">FMOD_SOUND</span> <span class="o">*</span><span class="n">sound</span><span class="p">;</span>
|
||||
<span class="kt">unsigned</span> <span class="kt">int</span> <span class="n">length</span><span class="p">;</span>
|
||||
<span class="kt">char</span> <span class="o">*</span><span class="n">buffer</span><span class="p">;</span>
|
||||
|
||||
<span class="n">FMOD_System_CreateSound</span><span class="p">(</span><span class="n">system</span><span class="p">,</span> <span class="s">"drumloop.wav"</span><span class="p">,</span> <span class="n">FMOD_DEFAULT</span> <span class="o">|</span> <span class="n">FMOD_OPENONLY</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">&</span><span class="n">sound</span><span class="p">);</span>
|
||||
<span class="n">FMOD_Sound_GetLength</span><span class="p">(</span><span class="n">sound</span><span class="p">,</span> <span class="o">&</span><span class="n">length</span><span class="p">,</span> <span class="n">FMOD_TIMEUNIT_RAWBYTES</span><span class="p">);</span>
|
||||
|
||||
<span class="n">buffer</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">malloc</span><span class="p">(</span><span class="n">length</span><span class="p">);</span>
|
||||
<span class="n">FMOD_Sound_ReadData</span><span class="p">(</span><span class="n">sound</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="n">buffer</span><span class="p">,</span> <span class="n">length</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
|
||||
|
||||
<span class="n">free</span><span class="p">(</span><span class="n">buffer</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="n">FMOD</span><span class="p">.</span><span class="n">Sound</span> <span class="n">sound</span><span class="p">;</span>
|
||||
<span class="kt">uint</span> <span class="n">length</span><span class="p">;</span>
|
||||
<span class="kt">byte</span><span class="p">[]</span> <span class="n">buffer</span><span class="p">;</span>
|
||||
|
||||
<span class="n">system</span><span class="p">.</span><span class="n">createSound</span><span class="p">(</span><span class="s">"drumloop.wav"</span><span class="p">,</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">MODE</span><span class="p">.</span><span class="n">DEFAULT</span> <span class="p">|</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">MODE</span><span class="p">.</span><span class="n">OPENONLY</span><span class="p">,</span> <span class="k">out</span> <span class="n">sound</span><span class="p">);</span>
|
||||
<span class="n">sound</span><span class="p">.</span><span class="n">getLength</span><span class="p">(</span><span class="k">out</span> <span class="n">length</span><span class="p">,</span> <span class="n">FMOD</span><span class="p">.</span><span class="n">TIMEUNIT</span><span class="p">.</span><span class="n">RAWBYTES</span><span class="p">);</span>
|
||||
|
||||
<span class="n">buffer</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[(</span><span class="kt">int</span><span class="p">)</span><span class="n">length</span><span class="p">];</span>
|
||||
<span class="n">sound</span><span class="p">.</span><span class="n">readData</span><span class="p">(</span><span class="n">buffer</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="kd">var</span> <span class="nx">sound</span> <span class="o">=</span> <span class="p">{};</span>
|
||||
<span class="kd">var</span> <span class="nx">length</span> <span class="o">=</span> <span class="p">{};</span>
|
||||
<span class="kd">var</span> <span class="nx">buffer</span> <span class="o">=</span> <span class="p">{};</span>
|
||||
|
||||
<span class="nx">system</span><span class="p">.</span><span class="nx">createSound</span><span class="p">(</span><span class="s2">"drumloop.wav"</span><span class="p">,</span> <span class="nx">FMOD</span><span class="p">.</span><span class="nx">DEFAULT</span> <span class="o">|</span> <span class="nx">FMOD</span><span class="p">.</span><span class="nx">OPENONLY</span><span class="p">,</span> <span class="kc">null</span><span class="p">,</span> <span class="nx">sound</span><span class="p">);</span>
|
||||
<span class="nx">sound</span> <span class="o">=</span> <span class="nx">sound</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
||||
|
||||
<span class="nx">sound</span><span class="p">.</span><span class="nx">getLength</span><span class="p">(</span><span class="nx">length</span><span class="p">,</span> <span class="nx">FMOD</span><span class="p">.</span><span class="nx">TIMEUNIT_RAWBYTES</span><span class="p">);</span>
|
||||
<span class="nx">length</span> <span class="o">=</span> <span class="nx">length</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
||||
|
||||
<span class="nx">sound</span><span class="p">.</span><span class="nx">readData</span><span class="p">(</span><span class="nx">buffer</span><span class="p">,</span> <span class="nx">length</span><span class="p">,</span> <span class="kc">null</span><span class="p">);</span>
|
||||
<span class="nx">buffer</span> <span class="o">=</span> <span class="nx">buffer</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
|
||||
<p><strong>See Also:</strong> <a class="apilink" href="core-api-common.html#fmod_timeunit">FMOD_TIMEUNIT</a>, <a class="apilink" href="core-api-common.html#fmod_mode">FMOD_MODE</a>, <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a>, <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a></p>
|
||||
<h2 id="sample-data"><a href="#sample-data">12.32 Sample Data</a></h2>
|
||||
<p>Sample data is raw (PCM) or a compressed <a href="glossary.html#signal">audio signal</a>, stored as a <a href="glossary.html#sound">sound</a>. Multi-channel PCM sample data (stereo and above) is interleaved, so a 5.1 signal for example has 6 values stored together per sample.</p>
|
||||
<h3 id="endianness"><a href="#endianness">12.32.1 Endianness</a></h3>
|
||||
<p>When accessing raw data in a sound, it will be in the native endianness of the platform. See <a class="apilink" href="core-api-sound.html#sound_lock">Sound::lock</a>, <a class="apilink" href="core-api-sound.html#sound_unlock">Sound::unlock</a>.<br />
|
||||
When a sound file is loaded, FMOD will convert the endian to match the native endian of the platform.</p>
|
||||
<h3 id="sample-formats"><a href="#sample-formats">12.32.2 Sample Formats</a></h3>
|
||||
<p>Sample data can come in a variety of PCM bit depths (8,16,24,32) and types (integer, float), or as a compressed bitstream. See <a class="apilink" href="core-api-sound.html#fmod_sound_format">FMOD_SOUND_FORMAT</a>.</p>
|
||||
<h3 id="samples-vs-bytes-vs-milliseconds"><a href="#samples-vs-bytes-vs-milliseconds">12.32.3 Samples vs Bytes vs Milliseconds</a></h3>
|
||||
<p>Within FMOD functions you will see references to PCM samples, bytes and milliseconds.</p>
|
||||
<p>To understand what the difference is a diagram has been provided to show how raw PCM sample data is stored in FMOD buffers.</p>
|
||||
<p><img alt="Samples vs Bytes vs Milliseconds" src="images/samples-bytes-milliseconds.png" /></p>
|
||||
<p>In this diagram you will see that a stereo sound has its left/right data interleaved one after the other.<br />
|
||||
A left/right pair (a sound with 2 <strong>channels</strong>) is called a <strong>sample</strong>.<br />
|
||||
Because this is made up of 16bit data, 1 <strong>sample</strong> = 4 <strong>bytes</strong>.<br />
|
||||
If the sample rate, or playback rate is 44.1khz, or 44100 samples per second, then <strong>1 sample is 1/44100th of a second</strong>, or <strong>1/44th of a millisecond</strong>. Therefore 44100 samples = 1 second or 1000ms worth of data.<br />
|
||||
To convert between the different terminologies, the following formulas can be used:</p>
|
||||
<ul>
|
||||
<li><strong>ms</strong> = samples * 1000 / samplerate.</li>
|
||||
<li><strong>samples</strong> = ms * samplerate / 1000.</li>
|
||||
<li><strong>samplerate</strong> = samples * 1000 / ms.</li>
|
||||
<li><strong>bytes</strong> = samples * bits * channels / 8.</li>
|
||||
<li><strong>samples</strong> = bytes * 8 / bits / channels.</li>
|
||||
</ul>
|
||||
<p>Some functions like <a class="apilink" href="core-api-sound.html#sound_getlength">Sound::getLength</a> provide the length in milliseconds, bytes and samples to avoid needing to do these calculations.</p>
|
||||
<h2 id="sample"><a href="#sample">12.33 Sample</a></h2>
|
||||
<p>Parent topic : <a href="glossary.html#sound">Sound</a></p>
|
||||
<p>Samples (also referred to as 'decompress into memory' type sounds), are suited for small sounds that need to be played more than once at a time, for example sound effects.</p>
|
||||
<p>Use <a class="apilink" href="core-api-common.html#fmod_createsample">FMOD_CREATESAMPLE</a> to create a <a class="apilink" href="core-api-sound.html">Sound</a> object in this mode.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Sample attributes</th>
|
||||
<th>Comparison</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Decompresses whole sound into memory.</td>
|
||||
<td>Can use more memory than a <a href="glossary.html#compressed-sample">compressed sample</a> or <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Low CPU overhead during playback.</td>
|
||||
<td>Uses less CPU than a <a href="glossary.html#compressed-sample">compressed sample</a> or <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Slower to load.</td>
|
||||
<td>Can take longer to load on large sounds than a <a href="glossary.html#compressed-sample">compressed sample</a> or <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Can play more than 1 at a time.</td>
|
||||
<td>Better polyphony than a <a href="glossary.html#stream">stream</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>Mobile Developers</strong>: A common use for this format is to store files compressed on disk (for faster download speed), then decompress into memory at load time, for lower cpu overhead at run-time.</p>
|
||||
<h2 id="signal"><a href="#signal">12.34 Signal</a></h2>
|
||||
<p>The signal is an abstraction of the <a href="glossary.html#sample-data">audio sample data</a> flowing through an FMOD project. Understanding how signals flow through a project is necessary to understand how the <a href="glossary.html#dsp-graph">DSP graph</a> and mixing work.</p>
|
||||
<p>In most cases, signals originate from <a href="glossary.html#channel">channels</a>, which route their output signals into <a href="glossary.html#channel-group">channel groups</a>. Each channel group creates a submix of all the signals flowing into it. Channels and channel groups may feature <a href="glossary.html#dsp">DSPs</a> that process the signal before passing it to the next DSP in the graph associated with that channel group; when there are no DSPs left in the channel group, the signal is routed from that channel group to that channel group's routing destination. All signals should eventually flow to the master channel group or an audio port supplied by an <a href="core-api-system.html#fmod_outputtype">FMOD_OUTPUTTYPE</a> plug-in.</p>
|
||||
<h2 id="sound"><a href="#sound">12.35 Sound</a></h2>
|
||||
<p>A sound is an instance of <a href="glossary.html#sample-data">sample data</a> which can be loaded from media, or created from memory.</p>
|
||||
<p>When a sound is loaded, it is either decompressed as a static sample into memory as PCM (sample), loaded into memory in its native format and decompressed at runtime (compressed sample), or streamed and decoded in realtime (in chunks) from an external media such as a disk or internet (stream).</p>
|
||||
<p>For more detail see:</p>
|
||||
<ul>
|
||||
<li><a href="glossary.html#sample">Sample</a></li>
|
||||
<li><a href="glossary.html#stream">Stream</a></li>
|
||||
<li><a href="glossary.html#compressed-sample">Compressed Sample</a></li>
|
||||
</ul>
|
||||
<p>A sound can be created with <a class="apilink" href="core-api-system.html#system_createsound">System::createSound</a> or <a class="apilink" href="core-api-system.html#system_createstream">System::createStream</a> which returns a <a class="apilink" href="core-api-sound.html">Sound</a> object. A <a class="apilink" href="core-api-sound.html">Sound</a> object can be played with <a class="apilink" href="core-api-system.html#system_playsound">System::playSound</a>.</p>
|
||||
<h2 id="streaming-sample-data"><a href="#streaming-sample-data">12.36 Streaming Sample Data</a></h2>
|
||||
<p>Streaming sample data is <a href="glossary.html#sample-data">sample data</a> formatted for the <a href="glossary.html#stream">streaming</a> loading mode. The distinction between streaming sample data and non-streaming sample data is only extant when using the Studio API to play content from bank files, as the <a href="glossary.html#loading-mode">loading mode</a> of <a href="glossary.html#asset">assets</a> in a bank file is encoded into that bank file along with those assets. When using the Core API, the loading mode of a sound is specified at run time.</p>
|
||||
<p>When using the Core API, the <a href="glossary.html#loading-mode">loading mode</a> of a sound is specified at run time.</p>
|
||||
<p>For more information about streaming, see the <a href="core-guide.html#streaming">Streaming</a> section of the <a href="core-guide.html">Core API Guide</a> chapter.</p>
|
||||
<h2 id="stream"><a href="#stream">12.37 Stream</a></h2>
|
||||
<p>Parent topic : <a href="glossary.html#sound">Sound</a></p>
|
||||
<p>A stream is good for a sound that is too large to fit into memory. A stream reads from disk or other media like the internet as it plays.</p>
|
||||
<p>Typically suited to larger sounds like music, long ambiences, or voice.</p>
|
||||
<p>Use <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a> to create a <a class="apilink" href="core-api-sound.html">Sound</a> object in this mode.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>'Stream' attributes</th>
|
||||
<th>Comparison</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Uses a small buffer in memory.</td>
|
||||
<td>Uses less memory than a <a href="glossary.html#sample">sample</a> or <a href="glossary.html#compressed-sample">compressed sample</a> on large sounds.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Higher CPU overhead during playback.</td>
|
||||
<td>Uses more CPU than <a href="glossary.html#sample">sample</a>, slightly more than a <a href="glossary.html#compressed-sample">compressed sample</a> due to simultaneous reading from medium.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Fast to load.</td>
|
||||
<td>Faster than a <a href="glossary.html#sample">sample</a> on large sounds, possibly faster than a <a href="glossary.html#compressed-sample">compressed sample</a> with very large sounds.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Can only be played once at a time.</td>
|
||||
<td>Worse polyphony than a <a href="glossary.html#sample">sample</a> or <a href="glossary.html#compressed-sample">compressed sample</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>Note</strong>: A very small sound may use more memory than a <a href="glossary.html#sample">sample</a> or <a href="glossary.html#compressed-sample">compressed sample</a> when created as a stream, due to the stream file/decode buffer overhead being bigger than the size of the sound.</p>
|
||||
<h3 id="streaming-issues"><a href="#streaming-issues">12.37.1 Streaming Issues</a></h3>
|
||||
<p><strong>Bandwidth</strong></p>
|
||||
<p>Streaming audio from a medium should be kept to a limited number of instances, to avoid starvation of data leading to skipping / stuttering audio.</p>
|
||||
<p>Increasing stream memory buffer sizes can help to mitigate this problem. See <a class="apilink" href="core-api-system.html#system_setstreambuffersize">System::setStreamBufferSize</a> and <a class="apilink" href="core-api-system.html#fmod_advancedsettings_defaultdecodebuffersize">FMOD_ADVANCEDSETTINGS::defaultDecodeBufferSize</a>.</p>
|
||||
<p><strong>Speed of commands using streams</strong></p>
|
||||
<p><a class="apilink" href="core-api-system.html#system_createstream">System::createStream</a>, <a class="apilink" href="core-api-channel.html#channel_setposition">Channel::setPosition</a> and <a class="apilink" href="core-api-sound.html#sound_getsubsound">Sound::getSubSound</a> when using a stream can take longer than an in memory sample, as they have to initialize internal buffers and flush them from disk.</p>
|
||||
<p>Use <a class="apilink" href="core-api-common.html#fmod_nonblocking">FMOD_NONBLOCKING</a> command to remove the cost from the main thread and put the overhead into a background thread.</p>
|
||||
<p><strong>Setting loop counts or points of a playing stream </strong></p>
|
||||
<p>Issues with looping streaming sounds may arise when changing the loop count or loop points of a playing stream.</p>
|
||||
<p>Sounds created with <a class="apilink" href="core-api-system.html#system_createstream">System::createStream</a> or <a class="apilink" href="core-api-common.html#fmod_createstream">FMOD_CREATESTREAM</a> may have executed loop logic and buffered sample data before API calls to change their looping properties. If issues occur after changing loop properties you may need to call <a class="apilink" href="core-api-channel.html#channel_setposition">Channel::setPosition</a> to force a flush of the stream buffer.</p>
|
||||
<p>Note this will usually only happen if you have sounds or loop regions which are smaller than the stream <em>decode</em> buffer. See <a class="apilink" href="core-api-system.html#fmod_createsoundexinfo">FMOD_CREATESOUNDEXINFO</a>.</p>
|
||||
<h2 id="string-format"><a href="#string-format">12.38 String Format</a></h2>
|
||||
<p>All FMOD Public APIs and structures use UTF-8 strings.</p>
|
||||
<p>As C# uses UTF-16 strings by default, the FMOD C# api function parameters will automatically convert between UTF-16 and UTF-8 strings in any api using the C# "string" type or FMOD's "StringWrapper" type. However, any API that uses strings via an IntPtr will not automatically convert from UTF-16, and will instead expect a UTF-8 string to be used.</p>
|
||||
<h2 id="studio-api"><a href="#studio-api">12.39 Studio API</a></h2>
|
||||
<p>The Studio API is a programmer API that allows your game to interact with data-driven projects created in <a href="glossary.html#fmod-studio">FMOD Studio</a> at run time. The Studio API and <a href="glossary.html#core-api">Core API</a> together comprise the <a href="glossary.html#fmod-engine">FMOD Engine</a>.</p>
|
||||
<p>The Studio API is built on top of the Core API, and extends its functionality. <a href="glossary.html#fmod-studio">FMOD Studio</a> and the Studio API are flexible and powerful enough to suit the audio needs of the vast majority of games. However, if a specific game requires more flexibility than the Studio API provides, we recommend using the Core API instead.</p>
|
||||
<p>For more information about the Studio API, see the <a href="studio-guide.html">Studio API Guide</a> and <a href="studio-api.html">Studio API Reference</a> chapters.</p>
|
||||
<h2 id="studio-guids-and-paths"><a href="#studio-guids-and-paths">12.40 Studio GUIDs and Paths</a></h2>
|
||||
<p>Many functions in the Studio API allow you to identify an object within an <a href="glossary.html#fmod-studio">FMOD Studio</a> project by the object's globally unique identifier, or <a href="glossary.html#guid">GUID</a>. These API functions will accept the GUID in binary format (mostly useful when an object's GUID has been looked up programmatically by name), or as a string formatted as 32 digits separated by hyphens and enclosed in braces: <code>{00000000-0000-0000-0000-000000000000}</code>.</p>
|
||||
<p>Many functions in the Studio API allow you to identify an object within an FMOD Studio project by the object's path. Objects can only be identified by path if the project's <a href="#studio-strings-bank">strings bank</a> is loaded.</p>
|
||||
<p>See the <a href="https://fmod.com/docs/2.03/studio">FMOD Studio User Manual</a> for more information.</p>
|
||||
<h2 id="studio-strings-bank"><a href="#studio-strings-bank">12.41 Studio Strings Bank</a></h2>
|
||||
<p>When building a <span class="dead-link" href="glossary.html#master-bank">master bank</span class="dead-link">, <a href="glossary.html#fmod-studio">FMOD Studio</a> also writes out a strings bank for the project. The strings bank contains a string table which the <a href="glossary.html#studio-api">Studio API</a> can use to resolve <a href="glossary.html#guid">GUIDs</a> from paths. Studio API functions which accept paths require the project's strings bank to be loaded in order to function correctly.</p>
|
||||
<h2 id="studio-update-thread"><a href="#studio-update-thread">12.42 Studio Update Thread</a></h2>
|
||||
<p>A thread created by the <a href="studio-api-system.html">Studio System</a> to perform asynchronous processing of API commands and manage scheduling and playback logic for events. This thread is triggered from the core mixer thread at the period specified in the <a class="apilink" href="studio-api-system.html#fmod_studio_advancedsettings">FMOD_STUDIO_ADVANCEDSETTINGS</a>. If the studio system is initialized with <a class="apilink" href="studio-api-system.html#fmod_studio_init_synchronous_update">FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE</a> then no studio update thread is created.</p>
|
||||
<h2 id="sync-points"><a href="#sync-points">12.43 Sync Points</a></h2>
|
||||
<p>A sync point can be used to trigger a callback during playback. See <a class="apilink" href="core-api-channelcontrol.html#fmod_channelcontrol_callback_syncpoint">FMOD_CHANNELCONTROL_CALLBACK_SYNCPOINT</a>.<br />
|
||||
These points can be user generated via the API or can come from a .wav file with embedded markers.</p>
|
||||
<p>Markers can be added to a wave file in a sound editor usually by clicking on a waveform or timeline and inserting a 'marker' or 'region'.</p>
|
||||
<p>Any RIFF based format will support sync points.</p>
|
||||
<p>Sync points can be manipulated with:</p>
|
||||
<ul>
|
||||
<li><a class="apilink" href="core-api-sound.html#sound_addsyncpoint">Sound::addSyncPoint</a></li>
|
||||
<li><a class="apilink" href="core-api-sound.html#sound_deletesyncpoint">Sound::deleteSyncPoint</a></li>
|
||||
<li><a class="apilink" href="core-api-sound.html#sound_getnumsyncpoints">Sound::getNumSyncPoints</a></li>
|
||||
<li><a class="apilink" href="core-api-sound.html#sound_getsyncpoint">Sound::getSyncPoint</a></li>
|
||||
<li><a class="apilink" href="core-api-sound.html#sound_getsyncpointinfo">Sound::getSyncPointInfo</a></li>
|
||||
</ul>
|
||||
<h2 id="up-mixing"><a href="#up-mixing">12.44 Up Mixing</a></h2>
|
||||
<p>When the source <a href="glossary.html#signal">signal</a> channel count is lower than the destination, it will distribute its lower channel information into the higher speaker mode's channels.<br />
|
||||
This example is a table of the different source signal speaker modes, mapping to a 7.1 output. Values in table represent attenuation. 0dB = full volume, - = silence.</p>
|
||||
<pre><code>Key: M = Mono, L = Left, R = Right, FL = Front Left, FR = Front Right, C = Center, LFE = Low Frequency Emitter, SL = Surround Left, SR = Surround Right, BL = Back Left, BR = Back Right
|
||||
</code></pre>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Output Speaker</th>
|
||||
<th>Mono source</th>
|
||||
<th>Stereo source</th>
|
||||
<th>Quad source</th>
|
||||
<th>5.0 source</th>
|
||||
<th>5.1 source</th>
|
||||
<th>7.1 source</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Front left</td>
|
||||
<td>M = -3dB</td>
|
||||
<td>L = 0dB</td>
|
||||
<td>FL = 0dB</td>
|
||||
<td>FL = 0dB</td>
|
||||
<td>FL = 0dB</td>
|
||||
<td>FL = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Front right</td>
|
||||
<td>M = -3dB</td>
|
||||
<td>R = 0dB</td>
|
||||
<td>FR = 0dB</td>
|
||||
<td>FR = 0dB</td>
|
||||
<td>FR = 0dB</td>
|
||||
<td>FR = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Center</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>C = 0dB</td>
|
||||
<td>C = 0dB</td>
|
||||
<td>C = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>LFE</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>LFE = 0dB</td>
|
||||
<td>LFE = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Surround left</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>SL = 0dB</td>
|
||||
<td>SL = 0dB</td>
|
||||
<td>SL = 0dB</td>
|
||||
<td>SL = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Surround right</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>SR = 0dB</td>
|
||||
<td>SR = 0dB</td>
|
||||
<td>SR = 0dB</td>
|
||||
<td>SR = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Back left</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>BL = 0dB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Back right</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>BR = 0dB</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><em>Example of lower and equal speaker modes up mixing to a target speaker mode = 7.1</em></p>
|
||||
<h2 id="user-data"><a href="#user-data">12.45 User Data</a></h2>
|
||||
<p>User data is arbitrary data that can be attached to various FMOD objects. User data is stored without a type, in the form of a <code>void *</code> in C/C++, <code>IntPtr</code> in C# or an object in javascript. User data can then be retrieved and cast back to the original type. The following shows how to set and get user data on a <a class="apilink" href="core-api-sound.html">Sound</a>, but can be likewise applied to any object with a <code>getUserData</code> or <code>setUserData</code> method.</p>
|
||||
<p>
|
||||
<div class="language-selector">
|
||||
<div class="language-tab" data-language="language-c">C</div>
|
||||
<div class="language-tab" data-language="language-cpp">C++</div>
|
||||
<div class="language-tab" data-language="language-csharp">C#</div>
|
||||
<div class="language-tab" data-language="language-javascript">JS</div>
|
||||
</div>
|
||||
</p>
|
||||
<div class="highlight language-cpp"><pre><span></span><span class="p">{</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">userData</span> <span class="o">=</span> <span class="s">"Hello User Data!"</span><span class="p">;</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">pointer</span> <span class="o">=</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="n">userData</span><span class="p">;</span>
|
||||
<span class="n">sound</span><span class="o">-></span><span class="n">setUserData</span><span class="p">(</span><span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">{</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">pointer</span><span class="p">;</span>
|
||||
<span class="n">sound</span><span class="o">-></span><span class="n">getUserData</span><span class="p">(</span><span class="o">&</span><span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">userData</span> <span class="o">=</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">pointer</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-c"><pre><span></span><span class="p">{</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">userData</span> <span class="o">=</span> <span class="s">"Hello User Data!"</span><span class="p">;</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">pointer</span> <span class="o">=</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="n">userData</span><span class="p">;</span>
|
||||
<span class="n">FMOD_Sound_SetUserData</span><span class="p">(</span><span class="n">object</span><span class="p">,</span> <span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">{</span>
|
||||
<span class="kt">void</span> <span class="o">*</span><span class="n">pointer</span><span class="p">;</span>
|
||||
<span class="n">FMOD_Sound_GetUserData</span><span class="p">(</span><span class="n">object</span><span class="p">,</span> <span class="o">&</span><span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">userData</span> <span class="o">=</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">pointer</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-csharp"><pre><span></span><span class="p">{</span>
|
||||
<span class="kt">string</span> <span class="n">userData</span> <span class="p">=</span> <span class="s">"Hello User Data!"</span><span class="p">;</span>
|
||||
<span class="n">GCHandle</span> <span class="n">handle</span> <span class="p">=</span> <span class="n">GCHandle</span><span class="p">.</span><span class="n">Alloc</span><span class="p">(</span><span class="n">userData</span><span class="p">);</span>
|
||||
<span class="n">IntPtr</span> <span class="n">pointer</span> <span class="p">=</span> <span class="n">GCHandle</span><span class="p">.</span><span class="n">ToIntPtr</span><span class="p">(</span><span class="n">handle</span><span class="p">);</span>
|
||||
<span class="n">sound</span><span class="p">.</span><span class="n">setUserData</span><span class="p">(</span><span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">{</span>
|
||||
<span class="n">IntPtr</span> <span class="n">pointer</span><span class="p">;</span>
|
||||
<span class="n">sound</span><span class="p">.</span><span class="n">getUserData</span><span class="p">(</span><span class="k">out</span> <span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="n">GCHandle</span> <span class="n">handle</span> <span class="p">=</span> <span class="n">GCHandle</span><span class="p">.</span><span class="n">FromIntPtr</span><span class="p">(</span><span class="n">pointer</span><span class="p">);</span>
|
||||
<span class="kt">string</span> <span class="n">userData</span> <span class="p">=</span> <span class="n">handle</span><span class="p">.</span><span class="n">Target</span> <span class="k">as</span> <span class="kt">string</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<div class="highlight language-javascript"><pre><span></span><span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">userData</span> <span class="o">=</span> <span class="s2">"Hello User Data!"</span><span class="p">;</span>
|
||||
<span class="nx">sound</span><span class="p">.</span><span class="nx">setUserData</span><span class="p">(</span><span class="nx">userData</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">outval</span> <span class="o">=</span> <span class="p">{};</span>
|
||||
<span class="nx">sound</span><span class="p">.</span><span class="nx">getUserData</span><span class="p">(</span><span class="nx">outval</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">userData</span> <span class="o">=</span> <span class="nx">outval</span><span class="p">.</span><span class="nx">val</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div></div>
|
||||
|
||||
<p class="manual-footer">FMOD Engine User Manual 2.03.07 (2025-04-02). © 2025 Firelight Technologies Pty Ltd.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</div>
|
After Width: | Height: | Size: 325 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 766 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 50 KiB |
|
@ -0,0 +1 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="330.31" height="75.896" viewBox="0 0 330.31 75.896"><defs><style>.cls-1{fill:none;stroke:#000;stroke-miterlimit:10;}</style></defs><path d="M279.685,42H275.4l-6.719,6.225V27.371l6.745,6.225h4.264Z"/><path d="M50.625,33.6h4.29l6.719-6.225V48.225L54.889,42H50.625Z"/><path d="M41.576,39.875a2.532,2.532,0,0,1-.013.285.951.951,0,0,1-.043.192.256.256,0,0,1-.07.111.16.16,0,0,1-.1.033H38a.459.459,0,0,1-.313-.11.448.448,0,0,1-.127-.358V33.4a.16.16,0,0,1,.037-.1.246.246,0,0,1,.121-.073,1.168,1.168,0,0,1,.229-.045,3.81,3.81,0,0,1,.719,0,1.162,1.162,0,0,1,.226.045.259.259,0,0,1,.122.073.159.159,0,0,1,.036.1v5.876h2.3a.171.171,0,0,1,.1.031.232.232,0,0,1,.07.1.828.828,0,0,1,.043.186A2.544,2.544,0,0,1,41.576,39.875Z"/><path d="M293.546,40.3a.221.221,0,0,1-.022.1.178.178,0,0,1-.108.07,1.05,1.05,0,0,1-.248.04c-.109.008-.258.011-.446.011-.157,0-.284,0-.378-.011a.894.894,0,0,1-.223-.042.257.257,0,0,1-.116-.079.446.446,0,0,1-.055-.116l-.656-1.631q-.119-.278-.231-.492a1.562,1.562,0,0,0-.251-.358.945.945,0,0,0-.319-.218,1.106,1.106,0,0,0-.418-.073h-.463v2.783a.161.161,0,0,1-.036.1.266.266,0,0,1-.123.073,1.1,1.1,0,0,1-.225.045,2.974,2.974,0,0,1-.361.017,3.016,3.016,0,0,1-.359-.017,1.14,1.14,0,0,1-.228-.045.241.241,0,0,1-.119-.073.171.171,0,0,1-.034-.1V33.66a.452.452,0,0,1,.127-.359.465.465,0,0,1,.314-.109h1.89c.193,0,.351,0,.475.011s.237.017.339.028a3.141,3.141,0,0,1,.793.214,1.924,1.924,0,0,1,.6.4,1.676,1.676,0,0,1,.375.582,2.117,2.117,0,0,1,.13.77,2.3,2.3,0,0,1-.092.669,1.732,1.732,0,0,1-.275.54,1.794,1.794,0,0,1-.445.412,2.425,2.425,0,0,1-.605.282,1.689,1.689,0,0,1,.308.192,1.6,1.6,0,0,1,.271.274,2.76,2.76,0,0,1,.24.366,4.764,4.764,0,0,1,.22.466l.616,1.44c.056.143.093.247.112.313A.6.6,0,0,1,293.546,40.3Zm-1.913-4.956a1.087,1.087,0,0,0-.164-.61.894.894,0,0,0-.536-.35,1.969,1.969,0,0,0-.257-.045,3.67,3.67,0,0,0-.4-.017h-.666V36.4h.756a1.8,1.8,0,0,0,.553-.076,1.122,1.122,0,0,0,.4-.215.882.882,0,0,0,.237-.33A1.112,1.112,0,0,0,291.633,35.348Z"/><circle cx="165.155" cy="37.798" r="5.54"/><line class="cls-1" x1="77.931" y1="37.948" x2="252.379" y2="37.948"/></svg>
|
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 253 KiB |
After Width: | Height: | Size: 252 KiB |
After Width: | Height: | Size: 430 KiB |
After Width: | Height: | Size: 424 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 278 KiB |
After Width: | Height: | Size: 224 KiB |
After Width: | Height: | Size: 169 KiB |
After Width: | Height: | Size: 272 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 227 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 271 KiB |
After Width: | Height: | Size: 258 KiB |
After Width: | Height: | Size: 261 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 138 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 8.2 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="275" height="275" viewBox="0 0 275 275"><defs><style>.cls-1{stroke:#e1e1e1;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6,.cls-7{fill:none;stroke-miterlimit:10;}.cls-2{stroke-dasharray:0 0 3.02 3.02;}.cls-2,.cls-3,.cls-5{stroke:#b3b3b3;}.cls-3{stroke-width:3px;}.cls-8{fill:#666;font-size:11.56px;}.cls-8,.cls-9{font-family:Calibri-Bold, Calibri;font-weight:700;}.cls-10{letter-spacing:0em;}.cls-11{letter-spacing:0em;}.cls-12,.cls-13{stroke-width:0px;}.cls-4{stroke:red;stroke-width:2px;}.cls-14{letter-spacing:-.01em;}.cls-13{fill:#202020;}.cls-9{font-size:12px;}.cls-6,.cls-7{stroke:gray;}.cls-7{stroke-dasharray:0 0 2.97 2.97;}</style></defs><line class="cls-5" x1="157.52" y1="113.18" x2="158.57" y2="112.11"/><line class="cls-2" x1="160.68" y1="109.95" x2="227.12" y2="41.89"/><line class="cls-5" x1="228.17" y1="40.81" x2="229.22" y2="39.74"/><line class="cls-1" x1="31.68" y1="241.17" x2="241.35" y2="241.17"/><line class="cls-1" x1="31.68" y1="222.88" x2="229.22" y2="222.88"/><line class="cls-1" x1="31.68" y1="204.58" x2="229.22" y2="204.58"/><line class="cls-1" x1="31.68" y1="186.29" x2="229.22" y2="186.29"/><line class="cls-1" x1="31.68" y1="167.99" x2="229.22" y2="167.99"/><line class="cls-1" x1="31.68" y1="149.69" x2="229.22" y2="149.69"/><line class="cls-1" x1="31.68" y1="131.4" x2="229.22" y2="131.4"/><line class="cls-1" x1="31.68" y1="113.1" x2="229.22" y2="113.1"/><line class="cls-1" x1="31.68" y1="94.81" x2="229.22" y2="94.81"/><line class="cls-1" x1="31.68" y1="76.51" x2="229.22" y2="76.51"/><line class="cls-1" x1="31.68" y1="58.21" x2="229.22" y2="58.21"/><line class="cls-1" x1="103.83" y1="38.74" x2="103.83" y2="240"/><line class="cls-1" x1="211.45" y1="39.92" x2="211.45" y2="241.17"/><line class="cls-1" x1="193.48" y1="39.92" x2="193.48" y2="241.17"/><line class="cls-1" x1="175.5" y1="39.92" x2="175.5" y2="241.17"/><line class="cls-1" x1="157.52" y1="39.92" x2="157.52" y2="241.17"/><line class="cls-1" x1="139.55" y1="39.92" x2="139.55" y2="241.17"/><line class="cls-1" x1="121.57" y1="39.92" x2="121.57" y2="241.17"/><line class="cls-3" x1="229.22" y1="39.74" x2="229.22" y2="241"/><line class="cls-1" x1="85.61" y1="39.92" x2="85.61" y2="241.17"/><line class="cls-1" x1="67.64" y1="39.92" x2="67.64" y2="241.17"/><line class="cls-1" x1="49.66" y1="39.92" x2="49.66" y2="241.17"/><text class="cls-9" transform="translate(229.22 259.47)"><tspan x="0" y="0">Input</tspan></text><text class="cls-9" transform="translate(16.12 26.38)"><tspan x="0" y="0">Output</tspan></text><line class="cls-12" x1="31.68" y1="242.08" x2="248.64" y2="242.08"/><polygon class="cls-13" points="31.68 243.27 242.94 243.27 242.94 245.37 248.64 242.08 242.94 238.79 242.94 240.89 31.68 240.89 31.68 243.27"/><text class="cls-8" transform="translate(34.5 111.37)"><tspan x="0" y="0">Th</tspan><tspan class="cls-14" x="11.93" y="0">r</tspan><tspan x="15.91" y="0">eshold</tspan></text><text class="cls-8" transform="translate(190.17 94.81)"><tspan x="0" y="0">R</tspan><tspan class="cls-11" x="6.51" y="0">a</tspan><tspan class="cls-10" x="12.11" y="0">tio</tspan></text><path class="cls-6" d="M181.37,89.06c.27-.13,11.74,4.4,5.79,15.31"/><line class="cls-6" x1="31.68" y1="113.1" x2="33.18" y2="113.1"/><line class="cls-7" x1="36.15" y1="113.1" x2="224.71" y2="113.1"/><line class="cls-6" x1="226.19" y1="113.1" x2="227.69" y2="113.1"/><line class="cls-12" x1="31.68" y1="242.08" x2="31.68" y2="30.55"/><polygon class="cls-13" points="32.87 242.08 32.87 36.25 34.97 36.25 31.68 30.55 28.39 36.25 30.49 36.25 30.49 242.08 32.87 242.08"/><line class="cls-4" x1="31.68" y1="242.08" x2="157.52" y2="113.18"/><line class="cls-4" x1="157.06" y1="113.45" x2="229.22" y2="94.81"/></svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="275" height="275" viewBox="0 0 275 275"><defs><style>.cls-1{stroke:#e1e1e1;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6,.cls-7{fill:none;stroke-miterlimit:10;}.cls-2{stroke-dasharray:0 0 2.99 2.99;}.cls-2,.cls-3,.cls-5{stroke:#b3b3b3;}.cls-3{stroke-width:3px;}.cls-8{fill:#666;font-size:11.56px;}.cls-8,.cls-9{font-family:Calibri-Bold, Calibri;font-weight:700;}.cls-10{letter-spacing:0em;}.cls-11{letter-spacing:0em;}.cls-12,.cls-13{stroke-width:0px;}.cls-4{stroke:red;stroke-width:2px;}.cls-14{letter-spacing:-.01em;}.cls-13{fill:#202020;}.cls-9{font-size:12px;}.cls-6,.cls-7{stroke:gray;}.cls-7{stroke-dasharray:0 0 2.97 2.97;}</style></defs><line class="cls-5" x1="31.68" y1="241.17" x2="32.73" y2="240.1"/><line class="cls-2" x1="34.83" y1="237.97" x2="155.19" y2="115.35"/><line class="cls-5" x1="156.24" y1="114.28" x2="157.29" y2="113.21"/><line class="cls-1" x1="31.68" y1="241.17" x2="241.35" y2="241.17"/><line class="cls-1" x1="31.68" y1="222.88" x2="229.22" y2="222.88"/><line class="cls-1" x1="31.68" y1="204.58" x2="229.22" y2="204.58"/><line class="cls-1" x1="31.68" y1="186.29" x2="229.22" y2="186.29"/><line class="cls-1" x1="31.68" y1="167.99" x2="229.22" y2="167.99"/><line class="cls-1" x1="31.68" y1="149.69" x2="229.22" y2="149.69"/><line class="cls-1" x1="31.68" y1="131.4" x2="229.22" y2="131.4"/><line class="cls-1" x1="31.68" y1="113.1" x2="229.22" y2="113.1"/><line class="cls-1" x1="31.68" y1="94.81" x2="229.22" y2="94.81"/><line class="cls-1" x1="31.68" y1="76.51" x2="229.22" y2="76.51"/><line class="cls-1" x1="31.68" y1="58.21" x2="229.22" y2="58.21"/><line class="cls-1" x1="103.83" y1="38.74" x2="103.83" y2="240"/><line class="cls-1" x1="211.45" y1="39.92" x2="211.45" y2="241.17"/><line class="cls-1" x1="193.48" y1="39.92" x2="193.48" y2="241.17"/><line class="cls-1" x1="175.5" y1="39.92" x2="175.5" y2="241.17"/><line class="cls-1" x1="157.52" y1="39.92" x2="157.52" y2="241.17"/><line class="cls-1" x1="139.55" y1="39.92" x2="139.55" y2="241.17"/><line class="cls-1" x1="121.57" y1="39.92" x2="121.57" y2="241.17"/><line class="cls-1" x1="85.61" y1="39.92" x2="85.61" y2="241.17"/><line class="cls-1" x1="67.64" y1="39.92" x2="67.64" y2="241.17"/><line class="cls-1" x1="49.66" y1="39.92" x2="49.66" y2="241.17"/><line class="cls-3" x1="229.22" y1="39.74" x2="229.22" y2="241"/><text class="cls-9" transform="translate(229.22 259.47)"><tspan x="0" y="0">Input</tspan></text><text class="cls-9" transform="translate(16.12 26.38)"><tspan x="0" y="0">Output</tspan></text><polygon class="cls-13" points="31.68 243.27 242.94 243.27 242.94 245.37 248.64 242.08 242.94 238.79 242.94 240.89 31.68 240.89 31.68 243.27"/><text class="cls-8" transform="translate(34.23 110.33)"><tspan x="0" y="0">Th</tspan><tspan class="cls-14" x="11.93" y="0">r</tspan><tspan x="15.91" y="0">eshold</tspan></text><text class="cls-8" transform="translate(96.95 137.52)"><tspan x="0" y="0">R</tspan><tspan class="cls-11" x="6.51" y="0">a</tspan><tspan class="cls-10" x="12.11" y="0">tio</tspan></text><path class="cls-6" d="M133.45,137.5c-.28.29-15.43-1.68-11.88-19.12"/><line class="cls-6" x1="31.68" y1="113.1" x2="33.18" y2="113.1"/><line class="cls-7" x1="36.15" y1="113.1" x2="224.71" y2="113.1"/><line class="cls-6" x1="226.19" y1="113.1" x2="227.69" y2="113.1"/><line class="cls-4" x1="230.09" y1="40.61" x2="156.73" y2="113.49"/><line class="cls-4" x1="31.68" y1="131.4" x2="157.29" y2="113.21"/><line class="cls-12" x1="31.68" y1="242.08" x2="31.68" y2="30.55"/><polygon class="cls-13" points="32.87 242.08 32.87 36.25 34.97 36.25 31.68 30.55 28.39 36.25 30.49 36.25 30.49 242.08 32.87 242.08"/></svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="275" height="275" viewBox="0 0 275 275"><defs><style>.cls-1{stroke:#e1e1e1;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6,.cls-7{fill:none;stroke-miterlimit:10;}.cls-2{stroke-width:3px;}.cls-2,.cls-4,.cls-5{stroke:#b3b3b3;}.cls-8{fill:#666;font-size:11.56px;}.cls-8,.cls-9{font-family:Calibri-Bold, Calibri;font-weight:700;}.cls-10{letter-spacing:0em;}.cls-11{letter-spacing:0em;}.cls-12,.cls-13{stroke-width:0px;}.cls-3{stroke:red;stroke-width:2px;}.cls-5{stroke-dasharray:0 0 2.99 2.99;}.cls-14{letter-spacing:-.01em;}.cls-13{fill:#202020;}.cls-9{font-size:12px;}.cls-6,.cls-7{stroke:gray;}.cls-7{stroke-dasharray:0 0 2.97 2.97;}</style></defs><line class="cls-4" x1="31.68" y1="241.17" x2="32.73" y2="240.1"/><line class="cls-5" x1="34.83" y1="237.97" x2="155.42" y2="115.32"/><line class="cls-4" x1="156.47" y1="114.25" x2="157.52" y2="113.18"/><line class="cls-1" x1="31.68" y1="241.17" x2="241.35" y2="241.17"/><line class="cls-1" x1="31.68" y1="222.88" x2="229.22" y2="222.88"/><line class="cls-1" x1="31.68" y1="204.58" x2="229.22" y2="204.58"/><line class="cls-1" x1="31.68" y1="186.29" x2="229.22" y2="186.29"/><line class="cls-1" x1="31.68" y1="167.99" x2="229.22" y2="167.99"/><line class="cls-1" x1="31.68" y1="149.69" x2="229.22" y2="149.69"/><line class="cls-1" x1="31.68" y1="131.4" x2="229.22" y2="131.4"/><line class="cls-1" x1="31.68" y1="113.1" x2="229.22" y2="113.1"/><line class="cls-1" x1="31.68" y1="94.81" x2="229.22" y2="94.81"/><line class="cls-1" x1="31.68" y1="76.51" x2="229.22" y2="76.51"/><line class="cls-1" x1="31.68" y1="58.21" x2="229.22" y2="58.21"/><line class="cls-1" x1="103.83" y1="38.74" x2="103.83" y2="240"/><line class="cls-1" x1="211.45" y1="39.92" x2="211.45" y2="241.17"/><line class="cls-1" x1="193.48" y1="39.92" x2="193.48" y2="241.17"/><line class="cls-1" x1="175.5" y1="39.92" x2="175.5" y2="241.17"/><line class="cls-1" x1="157.52" y1="39.92" x2="157.52" y2="241.17"/><line class="cls-1" x1="139.55" y1="39.92" x2="139.55" y2="241.17"/><line class="cls-1" x1="121.57" y1="39.92" x2="121.57" y2="241.17"/><line class="cls-2" x1="229.22" y1="39.74" x2="229.22" y2="241"/><line class="cls-1" x1="85.61" y1="39.92" x2="85.61" y2="241.17"/><line class="cls-1" x1="67.64" y1="39.92" x2="67.64" y2="241.17"/><line class="cls-1" x1="49.66" y1="39.92" x2="49.66" y2="241.17"/><text class="cls-9" transform="translate(229.22 259.47)"><tspan x="0" y="0">Input</tspan></text><text class="cls-9" transform="translate(16.12 26.38)"><tspan x="0" y="0">Output</tspan></text><line class="cls-12" x1="31.68" y1="242.08" x2="248.64" y2="242.08"/><polygon class="cls-13" points="31.68 243.27 242.94 243.27 242.94 245.37 248.64 242.08 242.94 238.79 242.94 240.89 31.68 240.89 31.68 243.27"/><text class="cls-8" transform="translate(34.85 109.43)"><tspan x="0" y="0">Th</tspan><tspan class="cls-14" x="11.93" y="0">r</tspan><tspan x="15.91" y="0">eshold</tspan></text><text class="cls-8" transform="translate(123.28 163.55)"><tspan x="0" y="0">R</tspan><tspan class="cls-11" x="6.51" y="0">a</tspan><tspan class="cls-10" x="12.11" y="0">tio</tspan></text><path class="cls-6" d="M131.38,140.54c-.29.28,1.68,15.3,19.12,11.78"/><line class="cls-6" x1="31.68" y1="113.1" x2="33.18" y2="113.1"/><line class="cls-7" x1="36.15" y1="113.1" x2="224.71" y2="113.1"/><line class="cls-6" x1="226.19" y1="113.1" x2="227.69" y2="113.1"/><line class="cls-12" x1="31.68" y1="242.08" x2="31.68" y2="30.55"/><polygon class="cls-13" points="32.87 242.08 32.87 36.25 34.97 36.25 31.68 30.55 28.39 36.25 30.49 36.25 30.49 242.08 32.87 242.08"/><line class="cls-3" x1="139.55" y1="241.17" x2="157.52" y2="113.18"/><line class="cls-3" x1="157.24" y1="113.74" x2="230.09" y2="40.61"/></svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="275" height="275" viewBox="0 0 275 275"><defs><style>.cls-1{stroke-dasharray:0 0 3.02 3.02;}.cls-1,.cls-2,.cls-3,.cls-4,.cls-5,.cls-6,.cls-7{fill:none;stroke-miterlimit:10;}.cls-1,.cls-3,.cls-5{stroke:#b3b3b3;}.cls-2{stroke:#e1e1e1;}.cls-3{stroke-width:3px;}.cls-8{fill:#666;font-size:11.56px;}.cls-8,.cls-9{font-family:Calibri-Bold, Calibri;font-weight:700;}.cls-10{letter-spacing:0em;}.cls-11{letter-spacing:0em;}.cls-12,.cls-13{stroke-width:0px;}.cls-4{stroke:red;stroke-width:2px;}.cls-14{letter-spacing:-.01em;}.cls-13{fill:#202020;}.cls-9{font-size:12px;}.cls-6,.cls-7{stroke:gray;}.cls-7{stroke-dasharray:0 0 2.97 2.97;}</style></defs><line class="cls-5" x1="157.52" y1="113.18" x2="158.57" y2="112.11"/><line class="cls-1" x1="160.68" y1="109.95" x2="227.12" y2="41.89"/><line class="cls-5" x1="228.17" y1="40.81" x2="229.22" y2="39.74"/><line class="cls-2" x1="31.68" y1="241.17" x2="241.35" y2="241.17"/><line class="cls-2" x1="31.68" y1="222.88" x2="229.22" y2="222.88"/><line class="cls-2" x1="31.68" y1="204.58" x2="229.22" y2="204.58"/><line class="cls-2" x1="31.68" y1="186.29" x2="229.22" y2="186.29"/><line class="cls-2" x1="31.68" y1="167.99" x2="229.22" y2="167.99"/><line class="cls-2" x1="31.68" y1="149.69" x2="229.22" y2="149.69"/><line class="cls-2" x1="31.68" y1="131.4" x2="229.22" y2="131.4"/><line class="cls-2" x1="31.68" y1="113.1" x2="229.22" y2="113.1"/><line class="cls-2" x1="31.68" y1="94.81" x2="229.22" y2="94.81"/><line class="cls-2" x1="31.68" y1="76.51" x2="229.22" y2="76.51"/><line class="cls-2" x1="31.68" y1="58.21" x2="229.22" y2="58.21"/><line class="cls-2" x1="103.83" y1="38.74" x2="103.83" y2="240"/><line class="cls-2" x1="211.45" y1="39.92" x2="211.45" y2="241.17"/><line class="cls-2" x1="193.48" y1="39.92" x2="193.48" y2="241.17"/><line class="cls-2" x1="175.5" y1="39.92" x2="175.5" y2="241.17"/><line class="cls-2" x1="157.52" y1="39.92" x2="157.52" y2="241.17"/><line class="cls-2" x1="139.55" y1="39.92" x2="139.55" y2="241.17"/><line class="cls-2" x1="121.57" y1="39.92" x2="121.57" y2="241.17"/><line class="cls-3" x1="229.22" y1="39.74" x2="229.22" y2="241"/><line class="cls-2" x1="85.61" y1="39.92" x2="85.61" y2="241.17"/><line class="cls-2" x1="67.64" y1="39.92" x2="67.64" y2="241.17"/><line class="cls-2" x1="49.66" y1="39.92" x2="49.66" y2="241.17"/><text class="cls-9" transform="translate(229.22 259.47)"><tspan x="0" y="0">Input</tspan></text><text class="cls-9" transform="translate(16.12 26.38)"><tspan x="0" y="0">Output</tspan></text><line class="cls-12" x1="31.68" y1="242.08" x2="248.64" y2="242.08"/><polygon class="cls-13" points="31.68 243.27 242.94 243.27 242.94 245.37 248.64 242.08 242.94 238.79 242.94 240.89 31.68 240.89 31.68 243.27"/><text class="cls-8" transform="translate(34.5 110.15)"><tspan x="0" y="0">Th</tspan><tspan class="cls-14" x="11.93" y="0">r</tspan><tspan x="15.91" y="0">eshold</tspan></text><text class="cls-8" transform="translate(170.63 72.83)"><tspan x="0" y="0">R</tspan><tspan class="cls-11" x="6.51" y="0">a</tspan><tspan class="cls-10" x="12.11" y="0">tio</tspan></text><path class="cls-6" d="M167.76,77.81c.18-.25,12.41-1.74,12.4,10.69"/><line class="cls-6" x1="31.68" y1="113.1" x2="33.18" y2="113.1"/><line class="cls-7" x1="36.15" y1="113.1" x2="224.71" y2="113.1"/><line class="cls-6" x1="226.19" y1="113.1" x2="227.69" y2="113.1"/><line class="cls-12" x1="31.68" y1="242.08" x2="31.68" y2="30.55"/><polygon class="cls-13" points="32.87 242.08 32.87 36.25 34.97 36.25 31.68 30.55 28.39 36.25 30.49 36.25 30.49 242.08 32.87 242.08"/><line class="cls-4" x1="31.68" y1="242.08" x2="157.52" y2="113.18"/><line class="cls-4" x1="157.27" y1="113.64" x2="175.5" y2="39.92"/></svg>
|
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 2.6 KiB |