Module steam_audio::ffi [] [src]

Structs

IPLAudioBuffer

A buffer containing audio data. All audio data passed to or from Phonon must be packaged in \c IPLAudioBuffer objects, which describe the format and size of the audio data.

IPLAudioFormat

The format of an audio buffer. Whenever you pass audio data to or from Phonon, you must describe the format in which the audio is encoded. Phonon only supports uncompressed PCM wave data, stored in 32-bit floating point format. However, Phonon supports many different multi-channel and Ambisonics formats, and the \c IPLAudioFormat tells Phonon how to interpret a buffer of audio data.

IPLBakedDataIdentifier

Identifies a set of baked data. It is the application's responsibility to ensure that this data is unique across the lifetime of an Environment object.

IPLBakingSettings

Specifies the kind of acoustic responses to save in the baked data.

IPLBox

An axis-aligned box. Axis-aligned boxes are used to specify a volume of 3D space.

IPLComplex

A single-precision complex number.

IPLComputeDeviceFilter

Specifies constraints on the type of OpenCL device to create. This information is intended to be passed to \c iplCreateComputeDevice.

IPLDirectSoundEffectOptions

Flags that specify which parameters from \c IPLDirectSoundPath should be applied by the Direct Sound Effect.

IPLDirectSoundPath

Parameters describing a direct sound path. For each frequency band, the attenuation factor applied to the direct sound path is:

IPLHrtfParams

Parameters used to describe the HRTF database you want to use when creating a Binaural Renderer object.

IPLMaterial

The acoustic properties of a surface. You can specify the acoustic material properties of each triangle, although typically many triangles will share a common material. The acoustic material properties are specified for three frequency bands with center frequencies of 400 Hz, 2.5 KHz, and 15 KHz.

IPLOrientedBox

An oriented box. Oriented boxes are used to specify a volume of 3D space.

IPLProbePlacementParams

Parameters that specify how probes should be created by \c ::iplCreateProbeBox.

IPLQuaternion

A unit-length quaternion. Quaternions are used to represent a rotation or orientation.

IPLRenderingSettings

Describes various properties of the audio processing pipeline. Many Phonon API objects that are used by the audio engine need to know how the audio processing pipeline (i.e., your audio engine) applies DSP effects to audio data. This structure describes the key parameters.

IPLSimulationSettings

Configures the complexity of the simulation. You can fine-tune these values to arrive at a suitable balance between performance, memory usage, and acoustic detail.

IPLSphere

A sphere. Spheres are used to define a region of influence around a point.

IPLTriangle

A triangle in 3D space. Triangles are specified by their three vertices, which are in turn specified using indices into a vertex array. See iplSetStaticMeshVertices for how to specify the vertex array. Phonon uses a counter-clockwise winding order. This means that when looking at the triangle such that the normal is pointing towards you, the vertices are specified in counter-clockwise order.

IPLVector3

A point or vector in 3D space. Phonon uses a right-handed coordinate system, with the positive x-axis pointing right, the positive y-axis pointing up, and the negative z-axis pointing ahead. Position and direction data obtained from a game engine or audio engine must be properly transformed before being passed to any Phonon API function.

max_align_t

Enums

IPLAmbisonicsNormalization

Normalization conventions for Ambisonics channels. There are a few different ways of normalizing the values of the Ambisonics channels relative to each other. Phonon supports the most popular ones.

IPLAmbisonicsOrdering

The order in which Ambisonics channels are stored in an audio buffer. Each Ambisonics channel is a series of coefficients for a corresponding basis function, denoted by \f$ Y_lm(\theta,\phi) \f$, where \f$\theta\f$ and \f$\phi\f$ are two angles which pinpoint the source relative to the listener, and \f$l\f$ and \f$m\f$ are two two integers which, taken together, identify a single Ambisonics channel. Here, \f$ l \geq 0 \f$ and \f$ -l \leq m \leq l \f$.

IPLBakedDataType

Defines how a set of baked data should be interpreted.

IPLChannelLayout

The type of speaker configuration, for audio formats that are not encoded using Ambisonics.

IPLChannelLayoutType

Whether the audio buffer is encoded using Ambisonics or not.

IPLChannelOrder

Whether the data is interleaved or deinterleaved.

IPLComputeDeviceType

The type of device to use with OpenCL. The appropriate OpenCL drivers must be installed on the user's system. Multiple OpenCL drivers may be installed on the same system; in this case the first available driver that exposes the specified kind of device will be used.

IPLConvolutionType

The backend to use for applying convolution effects for sound propagation. Phonon lets you choose from multiple convolution implementations, with different trade-offs.

IPLDirectOcclusionMethod

The algorithm to use when checking for direct path occlusion. Phonon can check whether a direct sound path is occluded by scene geometry, and optionally how much of a sound source is occluded.

IPLDirectOcclusionMode

The method to use when rendering occluded or partially occluded sound. Phonon can model sound passing through solid objects, and optionally apply frequency-dependent transmission filters.

IPLHrtfDatabaseType

The type of HRTF database to use for binaural rendering. You can either use the built-in HRTF database, or supply your own HRTF data at run-time.

IPLHrtfInterpolation

Techniques for interpolating HRTF data. This is used when rendering a point source whose position relative to the listener is not contained in the measured HRTF data used by Phonon.

IPLProbePlacement

The algorithm to use when generating a set of probes. Probes are generated by specifying a bounding box for a portion of the scene, and an algorithm for filling the volume of the box with probes. You can generate probes using different algorithms in different portions of a scene. The bounding boxes used for probe generation in different regions may overlap, although this is not typical.

IPLSceneType

The ray tracer to use for scene representation and simulation. Phonon lets you choose from multiple ray tracing implementations, each with different trade-offs. You can also choose to use your own ray tracing implementation.

IPLSimulationType

The type of simulation to perform. All sound sources must use the same type of simulation; it is not currently possible to use real-time simulation for some sources and baked data for others.

IPLbool

Boolean values.

IPLerror

Status codes returned by Phonon API functions.

Functions

iplAddProbeBatch

Adds a Probe Batch to a Probe Manager object. Once this function returns, probes in the Probe Batch will be used to calculate sound propagation effects.

iplAddProbeToBatch

Adds a specific probe from a Probe Box to a Probe Batch. Once all probes in a Probe Box have been assigned to their respective Probe Batches, you can destroy the Probe Box object; the baked data for the probes will be retained by the Probe Batch.

iplApplyAmbisonicsBinauralEffect

Applies HRTF-based binaural rendering to a buffer of Ambisonics audio data. Ambisonics encoders and decoders use many different conventions to store the multiple Ambisonics channels, as well as different normalization schemes. Make sure that you correctly specify these settings when creating the Ambisonics Binaural Effect object, otherwise the rendered audio will be incorrect.

iplApplyAmbisonicsPanningEffect

Applies a panning-based rendering algorithm to a buffer of Ambisonics audio data. Ambisonics encoders and decoders use many different conventions to store the multiple Ambisonics channels, as well as different normalization schemes. Make sure that you correctly specify these settings when creating the Ambisonics Panning Effect object, otherwise the rendered audio will be incorrect.

iplApplyBinauralEffect

Applies HRTF-based binaural rendering to a buffer of audio data. The input audio is treated as emanating from a single point. If the input audio buffer contains more than one channel, it will automatically be downmixed to mono. Using bilinear interpolation (by setting \c interpolation to \c ::IPL_HRTFINTERPOLATION_BILINEAR) can incur a relatively high CPU cost. Use it only on sources where nearest-neighbor filtering (\c ::IPL_HRTFINTERPOLATION_NEAREST) produces suboptimal results. Typically, bilinear filtering is most useful for wide-band noise-like sounds, such as radio static, mechanical noise, fire, etc.

iplApplyBinauralEffectWithParameters
iplApplyDirectSoundEffect

Applies various parameters in \c IPLDirectSoundPath to a buffer of audio data.

iplApplyPanningEffect

Applies 3D panning to a buffer of audio data, using the configuration of a Panning Effect object. The input audio is treated as emanating from a single point. If the input audio buffer contains more than one channel, it will automatically be downmixed to mono.

iplApplyVirtualSurroundEffect

Applies HRTF-based binaural rendering to a buffer of multichannel audio data.

iplBakePropagation

Bakes propagation effects from a specified source to all probes in a Probe Box. Sources are defined in terms of a position and a sphere of influence; all probes in the Probe Box that lie within the sphere of influence are processed by this function. This is a time-consuming operation, and should typically be called from the game engine's editor.

iplBakeReverb

Bakes reverb at all probes in a Probe Box. Phonon defines reverb as the indirect sound received at a probe when a source is placed at the probe's location. This is a time-consuming operation, and should typically be called from the game engine's editor.

iplBakeStaticListener

Bakes propagation effects from all probes in a Probe Box to a specified listener. Listeners are defined solely by their position; their orientation may freely change at run-time. This is a time-consuming operation, and should typically be called from the game engine's editor.

iplCalculateRelativeDirection

Calculates the relative direction from the listener to a sound source. The returned direction vector is expressed in the listener's coordinate system.

iplCancelBake

Cancels any bake operations that may be in progress. Typically, an application will call \c ::iplBakeReverb or \c ::iplBakePropagation in a separate thread from the editor's GUI thread, to keep the GUI responsive. This function can be called from the GUI thread to safely and prematurely terminate execution of any of these functions.

iplCleanup

Performs last-minute cleanup and finalization. This function must be the last API function to be called before your application exits.

iplConvertAudioBufferFormat

Converts the format of an audio buffer into the format of the output audio buffer. This is primarily useful for 360 video and audio authoring workflows. The following format conversions are supported:

iplCreateAmbisonicsBinauralEffect

Creates an Ambisonics Binaural Effect object. This can be used to render higher-order Ambisonics data using HRTF-based binaural rendering.

iplCreateAmbisonicsPanningEffect

Creates an Ambisonics Panning Effect object. This can be used to render higher-order Ambisonics data using standard panning algorithms.

iplCreateAmbisonicsRotator

Creates an Ambisonics Rotator object. An Ambisonics Rotator object is used to apply an arbitrary rotation to audio data encoded in Ambisonics. This is primarily useful in the following situations:

iplCreateBinauralEffect

Creates an Object-Based Binaural Effect object. This can be used to render a point source using HRTF-based binaural rendering.

iplCreateBinauralRenderer

Creates a Binaural Renderer object. This function must be called before creating any Panning Effect objects, Object-Based Binaural Effect objects, Virtual Surround Effect objects, or Ambisonics Binaural Effect objects. Calling this function for the first time is somewhat expensive; avoid creating Binaural Renderer objects in your audio thread if at all possible. This function is not thread-safe. It cannot be simultaneously called from multiple threads.

iplCreateComputeDevice

Creates a Compute Device object. The same Compute Device must be used by the game engine and audio engine parts of the Phonon integration. Depending on the OpenCL driver and device, this function may take some time to execute, so do not call it from performance-sensitive code.

iplCreateContext

Creates a Context object. A Context object must be created before creating any other API objects.

iplCreateConvolutionEffect

Creates a Convolution Effect object.

iplCreateDirectSoundEffect

Creates a Direct Sound Effect object.

iplCreateEnvironment

Creates an Environment object. It is necessary to call this function even if you are not using the sound propagation features of Phonon.

iplCreateEnvironmentalRenderer

Creates an Environmental Renderer object.

iplCreatePanningEffect

Creates a Panning Effect object. This can be used to render a point source on surround speakers, or using Ambisonics.

iplCreateProbeBatch

Creates a Probe Batch object. A Probe Batch object represents a set of probes that are loaded and unloaded from memory as a unit when the game is played. A Probe Batch may contain probes from multiple Probe Boxes; multiple Probe Batches may contain probes from the same Probe Box. At run-time, Phonon does not use Probe Boxes, it only needs Probe Batches. The typical workflow is as follows:

iplCreateProbeBox

Generates probes within a box. This function should typically be called from the game engine's editor, in response to the user indicating that they want to generate probes in the scene.

iplCreateProbeManager

Creates a Probe Manager object. A Probe Manager object manages a set of Probe Batch objects are runtime. It is typically exported from the game engine to the audio engine via an Environment object. Probe Batch objects can be dynamically added to or removed from a Probe Manager object.

iplCreateScene

Creates a Scene object. A Scene object does not store any geometry information on its own; for that you need to create one or more Static Mesh objects and add them to the Scene object. The Scene object does contain an array of materials; all triangles in all Static Mesh objects refer to this array in order to specify their material properties.

iplCreateSimulationData

}

iplCreateStaticMesh

Creates a Static Mesh object. A Static Mesh object represents a triangle mesh that does not change after it is created. A Static Mesh object also contains a mapping between each of its triangles and their acoustic material properties. Static Mesh objects should be used for scene geometry that is guaranteed to never change, such as rooms, buildings, or triangulated terrain. A Scene object may contain multiple Static Mesh objects, although typically one is sufficient.

iplCreateVirtualSurroundEffect

Creates a Virtual Surround Effect object. This can be used to render a multichannel surround sound data using HRTF-based binaural rendering.

iplDeinterleaveAudioBuffer

Deinterleaves an interleaved audio buffer. The formats of \c inputAudio and \c outputAudio must be identical except for the \c channelOrder field.

iplDeleteBakedDataByIdentifier

Deletes all baked data in a Probe Box that is associated with a given source. If no such baked data exists, this function does nothing.

iplDestroyAmbisonicsBinauralEffect

Destroys an Ambisonics Binaural Effect object.

iplDestroyAmbisonicsPanningEffect

Destroys an Ambisonics Panning Effect object.

iplDestroyAmbisonicsRotator

Destroys an Ambisonics Rotator object.

iplDestroyBinauralEffect

Destroys an Object-Based Binaural Effect object.

iplDestroyBinauralRenderer

Destroys a Binaural Renderer object. If any other API objects are still referencing the Binaural Renderer object, it will not be destroyed; destruction occurs when the object's reference count reaches zero.

iplDestroyComputeDevice

Destroys a Compute Device object. If any other API objects are still referencing the Compute Device object, it will not be destroyed; destruction occurs when the object's reference count reaches zero.

iplDestroyContext

Destroys a Context object. If any other API objects are still referencing the Context object, it will not be destroyed; destruction occurs when the Context object's reference count reaches zero.

iplDestroyConvolutionEffect

Destroys a Convolution Effect object.

iplDestroyDirectSoundEffect

Destroys a Direct Sound Effect object.

iplDestroyEnvironment

Destroys an Environment object. If any other API objects are still referencing the Environment object, it will not be destroyed; destruction occurs when the object's reference count reaches zero.

iplDestroyEnvironmentalRenderer

Destroys an Environmental Renderer object. If any other API objects are still referencing the Environmental Renderer object, the object will not be destroyed; it will only be destroyed once its reference count reaches zero.

iplDestroyPanningEffect

Destroys a Panning Effect object.

iplDestroyProbeBatch

Destroys a Probe Batch object.

iplDestroyProbeBox

Destroys a Probe Box object.

iplDestroyProbeManager

Destroys a Probe Manager object.

iplDestroyScene

Destroys a Scene object. If any other API objects are still referencing the Scene object, it will not be destroyed; destruction occurs when the object's reference count reaches zero.

iplDestroySimulationData
iplDestroyStaticMesh

Destroys a Static Mesh object. If any other API objects are still referencing the Static Mesh object, it will not be destroyed; destruction occurs when the object's reference count reaches zero. Since the Scene object maintains an internal reference to the Static Mesh object, you may call this function at any point after fully specifying the Static Mesh object using \c ::iplSetStaticMeshVertices, \c ::iplSetStaticMeshTriangles, and \c ::iplSetStaticMeshMaterials.

iplDestroyVirtualSurroundEffect

Destroys a Virtual Surround Effect object.

iplDumpSceneToObjFile

Saves a Scene object to an OBJ file. An OBJ file is a widely-supported 3D model file format, that can be displayed using a variety of software on most PC platforms. The OBJ file generated by this function can be useful for detecting problems that occur when exporting scene data from the game engine to Phonon. The \c ::iplFinalizeScene function must have been called on the Scene object before calling this function. This function can only be called on a Scene object that has been created using the Phonon built-in ray tracer.

iplFinalizeProbeBatch

Finalizes the set of probes that comprise a Probe Batch. Calling this function builds internal data structures that are used to rapidly determine which probes influence any given point in 3D space. You may not call \c ::iplAddProbeToBatch after calling this function. You must call this function before calling \c ::iplAddProbeBatch to add this Probe Batch object to a Probe Manager object.

iplFinalizeScene

Finalizes a scene and builds internal data structures. Once this function is called, you may not modify the Scene object or any Static Mesh objects it contains in any way. This function results in various internal data structures being generated; if using Radeon Rays, it results in scene data being uploaded to the GPU. This is a time-consuming, blocking call, so do not call it from performance-sensitive code.

iplFlushAmbisonicsBinauralEffect

Resets any internal state maintained by an Ambisonics Binaural Effect object. This is useful if the Ambisonics Binaural Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Ambisonics Binaural Effect object is re-enabled at a later time.

iplFlushAmbisonicsPanningEffect

Resets any internal state maintained by an Ambisonics Panning Effect object. This is useful if the Ambisonics Panning Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Ambisonics Panning Effect object is re-enabled at a later time.

iplFlushBinauralEffect

Resets any internal state maintained by an Object-Based Binaural Effect object. This is useful if the Object-Based Binaural Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Object-Based Binaural Effect object is re-enabled at a later time.

iplFlushConvolutionEffect

Resets any internal state maintained by a Convolution Effect object. This is useful if the Convolution Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Convolution Effect object is re-enabled at a later time.

iplFlushDirectSoundEffect

Resets any internal state maintained by a Direct Sound Effect object. This is useful if the Direct Sound Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Direct Sound Effect object is re-enabled at a later time.

iplFlushPanningEffect

Resets any internal state maintained by a Panning Effect object. This is useful if the Panning Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Panning Effect object is re-enabled at a later time.

iplFlushVirtualSurroundEffect

Resets any internal state maintained by a Virtual Surround Effect object. This is useful if the Virtual Surround Effect object is going to be disabled/unused for a few frames; resetting the internal state will prevent an audible glitch when the Virtual Surround Effect object is re-enabled at a later time.

iplGenerateSimulationData
iplGetBakedDataSizeByIdentifier

Returns the size (in bytes) of the baked data stored in a Probe Box corresponding to a given source. This is useful for displaying statistics in the editor's GUI.

iplGetDirectSoundPath

Calculates direct sound path parameters for a single source. It is up to the audio engine to perform audio processing that uses the information returned by this function.

iplGetMixedEnvironmentalAudio

Retrieves a mixed frame of wet audio. This is the sum of all wet audio data from all Convolution Effect objects that were created using the given Environmental Renderer object. Unless using TrueAudio Next for convolution, this is likely to provide a significant performance boost to the audio thread as compared to calling \c ::iplGetWetAudioForConvolutionEffect for each Convolution Effect separately. On the other hand, doing so makes it impossible to apply additional DSP effects for specific sources before mixing.

iplGetNumIrChannels
iplGetNumIrSamples
iplGetProbeSpheres

Retrieves spheres describing the positions and influence radii of all probes in the Probe Box object. This function should typically be called from the game engine's editor, and the retrieved spheres should be used for visualization.

iplGetSimulationResult
iplGetWetAudioForConvolutionEffect

Retrieves a frame of wet audio from a Convolution Effect object. This is the result of applying sound propagation effects to the dry audio previously specified using \c ::iplSetDryAudioForConvolutionEffect.

iplInterleaveAudioBuffer

Interleaves a deinterleaved audio buffer. The formats of \c inputAudio and \c outputAudio must be identical except for the \c channelOrder field.

iplLoadFinalizedScene

Creates a Scene object based on data stored in a byte array. After this function is called, it is not necessary to call \c ::iplFinalizeScene on the resulting Scene object.

iplLoadProbeBatch

Deserializes a Probe Batch object from a byte array. This is typically called by the game engine's editor when loading a Probe Batch object from disk. Calling this function implicitly calls \c ::iplFinalizeProbeBatch, so you do not need to call it explicitly.

iplLoadProbeBox

Deserializes a Probe Box object from a byte array. This is typically called by the game engine's editor when loading a Probe Box object from disk.

iplMixAudioBuffers

Mixes a set of audio buffers. This is primarily useful for mixing the output of multiple Panning Effect objects, before passing them to a single Virtual Surround Effect or a single Ambisonics Binaural Effect. This way, applications can significantly accelerate 3D audio rendering for large numbers of sources.

iplRemoveProbeBatch

Removes a Probe Batch from a Probe Manager object. Once this function returns, probes in the Probe Batch will no longer be used to calculate sound propagation effects.

iplRotateAmbisonicsAudioBuffer

Rotates an Ambisonics-encoded audio buffer. The \c ::iplSetAmbisonicsRotation function must have been called prior to calling this function, or the resulting audio will be incorrect. It is possible to pass the same value for \c inputAudio and \c outputAudio. This results in in-place rotation of the Ambisonics data.

iplSaveFinalizedScene

Serializes a Scene object to a byte array. The \c ::iplFinalizeScene function must have been called on the Scene object before calling this function. This function can only be called on a Scene object that has been created using the Phonon built-in ray tracer.

iplSaveProbeBatch

Serializes a Probe Batch object to a byte array. This is typically called by the game engine's editor in order to save the Probe Batch object's data to disk.

iplSaveProbeBox

Serializes a Probe Box object to a byte array. This is typically called by the game engine's editor in order to save the Probe Box object's data to disk.

iplSetAmbisonicsRotation

Specifies a rotation value. This function must be called before using \c ::iplRotateAmbisonicsAudioBuffer to rotate an Ambisonics-encoded audio buffer, or the resulting audio will be incorrect.

iplSetConvolutionEffectIdentifier

Changes the identifier associated with a Convolution Effect object. This is useful when using a static listener bake, where you may want to teleport the listener between two or more locations for which baked data has been generated.

iplSetDryAudioForConvolutionEffect

Specifies a frame of dry audio for a Convolution Effect object. This is the audio data to which sound propagation effects should be applied.

iplSetNumBounces

Sets the number of bounces to use for real-time simulations that use an Environment object. Calling this function overrides the value of \c bounces set on the \c IPLSimulationSettings structure passed when calling \c ::iplCreateEnvironment to create this Environment object.

iplSetRayTracerCallbacks

Specifies callbacks that allow a Scene object to call into a user-specified custom ray tracer. This function should only be called if using a custom ray tracer, or else undefined behavior will occur. When using a custom ray tracer, this function must be called before any simulation occurs, otherwise undefined behavior will occur.

iplSetSceneMaterial

Specifies a single material used by a Scene object. All materials must be completely specified before simulation occurs, otherwise simulation results will be incorrect.

iplSetStaticMeshMaterials

Specifies the materials associated with each triangle in a Static Mesh object. Material indices passed using this function refer to the array containing material data passed to \c ::iplSetSceneMaterial.

iplSetStaticMeshTriangles

Specifies the triangles of a Static Mesh object. Triangle indices passed using this function refer to the vertex array passed using \c ::iplSetStaticMeshVertices.

iplSetStaticMeshVertices

Specifies the vertices of a Static Mesh object. All vertices must be converted from the game engine's coordinate system to Phonon's coordinate system before being passed to this function.

Type Definitions

IPLAllocateFunction

Prototype of a callback that allocates memory. This is usually specified to let Phonon use a custom memory allocator. The default behavior is to use the OS-dependent aligned version of \c malloc.

IPLAnyHitCallback

A callback that is called to calculate whether a ray hits any geometry. Strictly speaking, the function looks for any intersection with a ray interval (equivalent to a line segment).

IPLBakeProgressCallback

A callback that is called to update the application on the progress of the \c ::iplBakeReverb or \c ::iplBakePropagation functions. You can use this to provide visual feedback to the user, like a progress bar.

IPLClosestHitCallback

A callback that is called to calculate the closest hit along a ray. Strictly speaking, the intersection is calculated with a ray interval (equivalent to a line segment). Any ray interval may have multiple points of intersection with scene geometry; this function must return information about the point of intersection that is closest to the ray's origin.

IPLFftHelper

A function that you can call to calculate the Fast Fourier Transform (FFT) of a real-valued time-domain signal. You will typically call this from within your implementation of IPLHrtfLoadCallback, to transform your time-domain Head-Related Impulse Responses (HRIRs) into Head-Related Transfer Functions (HRTFs).

IPLFinalizeSceneProgressCallback

A callback that is called to update the application on the progress of the iplFinalizeScene function. You can use this to provide the user with visual feedback, like a progress bar.

IPLFreeFunction

Prototype of a callback that frees a block of memory. This is usually specified when using a custom memory allocator with Phonon. The default behavior is to use the OS-dependent aligned version of \c free.

IPLHrtfLoadCallback

Pointer to a function that will be called during the execution of iplCreateBinauralRenderer, to allow your application to pre-transform all HRTF data into frequency domain.

IPLHrtfLookupCallback

Pointer to a function that will be called during the execution of iplApplyBinauralEffect, to left your application copy HRTF data for a given direction into arrays managed by Phonon.

IPLHrtfUnloadCallback

Pointer to a function that will be called during the execution of iplDestroyBinauralRenderer, to allow your application to free memory allocated during IPLHrtfLoadCallback.

IPLLoadSceneProgressCallback

A callback that is called to update the application on the progress of the iplLoadScene function. You can use this to provide the user with visual feedback, like a progress bar.

IPLLogFunction

Prototype of a callback that logs a message generated by Phonon. This may be implemented in any suitable way, such as appending to a log file, displaying a dialog box, etc. The default behavior is to print to \c stdout.

IPLProbePlacementProgressCallback

A callback that is called to update the application on the progress of the \c ::iplCreateProbeBox function. You can use this to provide visual feedback to the user, like a progress bar.

IPLSimulationThreadCreateCallback

Callback function that is called when the simulation thread is created.

IPLSimulationThreadDestroyCallback

Callback function that is called when the simulation thread is destroyed.

IPLbyte
IPLfloat32
IPLfloat64
IPLhandle

An opaque handle to a Phonon API object. A variable of this type may not be cast to a pointer to any other API type.

IPLint8
IPLint16
IPLint32
IPLint64
IPLsize
IPLstring
IPLuint8
IPLuint16
IPLuint32
IPLuint64
IPLvoid

\defgroup types Data Types Common data types used throughout the Phonon API. {

wchar_t