Go to the documentation of this file.
33 #ifndef _AK_COMMON_DEFS_H_
34 #define _AK_COMMON_DEFS_H_
163 #define AK_MAKE_CHANNELCONFIGOVERRIDE(_config,_order) ((AkInt64)_config.Serialize()|((AkInt64)_order<<32))
164 #define AK_GET_CHANNELCONFIGOVERRIDE_CONFIG(_over) (_over&UINT_MAX)
165 #define AK_GET_CHANNELCONFIGOVERRIDE_ORDERING(_over) ((AK::AkChannelOrdering)(_over>>32))
178 #define AKMAKECLASSID( in_pluginType, in_companyID, in_pluginID ) \
179 ( (in_pluginType) + ( (in_companyID) << 4 ) + ( (in_pluginID) << ( 4 + 12 ) ) )
181 #define AKGETPLUGINTYPEFROMCLASSID( in_classID ) ( (in_classID) & AkPluginTypeMask )
182 #define AKGETCOMPANYIDFROMCLASSID( in_classID ) ( ( (in_classID) & 0x0000FFF0 ) >> 4 )
183 #define AKGETPLUGINIDFROMCLASSID( in_classID ) ( ( (in_classID) & 0xFFFF0000 ) >> ( 4 + 12 ) )
185 #define CODECID_FROM_PLUGINID AKGETPLUGINIDFROMCLASSID
222 #define AK_DEFAULT_LISTENER_POSITION_X (0.0f) // at coordinate system's origin
223 #define AK_DEFAULT_LISTENER_POSITION_Y (0.0f)
224 #define AK_DEFAULT_LISTENER_POSITION_Z (0.0f)
225 #define AK_DEFAULT_LISTENER_FRONT_X (0.0f) // looking toward Z,
226 #define AK_DEFAULT_LISTENER_FRONT_Y (0.0f)
227 #define AK_DEFAULT_LISTENER_FRONT_Z (1.0f)
228 #define AK_DEFAULT_TOP_X (0.0f) // top towards Y
229 #define AK_DEFAULT_TOP_Y (1.0f)
230 #define AK_DEFAULT_TOP_Z (0.0f)
409 if ( in_channelConfig.
HasLFE() )
414 if ( in_uChannelIdx == uIdxLFE )
416 else if ( in_uChannelIdx > uIdxLFE )
417 return in_uChannelIdx - 1;
420 return in_uChannelIdx;
461 if ( uNumZeroFrames )
464 for (
AkUInt32 i = 0; i < uNumChannels; ++i )
483 void * pDataOld =
pData;
516 #endif // _AK_COMMON_DEFS_H_
AkForceInline bool HasLFE() const
Returns true if there is an LFE channel present.
bool enableHeightSpread
When true, audio objects 3D spatialized onto a planar channel configuration will be given a minimum s...
AkUInt8 AkDataInterleaveID
Data interleaved state ID.
@ AK_DirectSpeakerAssignment
No panning: route to matching channels between input and output.
AkUInt32 uAvailableSystemAudioObjects
How many System Audio Objects can currently be sent to the sink. This value can change at runtime dep...
AkSampleType * GetChannel(AkUInt32 in_uIndex)
uint16_t AkUInt16
Unsigned 16-bit integer.
Definition of data structures for AkAudioObject.
AkForceInline bool HasData() const
Check if buffer has samples attached to it.
AkForceInline bool HasCenter() const
AkReal32 center
Center percentage [0,1].
AkForceInline AkChannelConfig GetChannelConfig() const
AkReal32 panSpatMix
Panning vs 3D spatialization mix ([0,1], 1 being 100% spatialized).
bool bMultiChannelObjects
Can handle multi-channel objects.
AkAudioBuffer()
Constructor.
AkUInt32 uMaxSystemAudioObjects
Maximum number of System Audio Objects that can be active concurrently. A value of zero indicates the...
AkUInt32 uNumChannels
Number of channels.
AkForceInline void * DetachContiguousDeinterleavedData()
Detach deinterleaved data where channels are contiguous in memory. The address of the buffer is retur...
AkForceInline AkUInt32 NumChannels() const
Get the number of channels.
AkForceInline void Clear()
Clear members.
#define AK_DEFAULT_LISTENER_FRONT_Y
AKRESULT
Standard function call result.
AkUInt32 uChannelMask
Channel mask (configuration).
static AkUInt32 StandardToPipelineIndex(AkChannelConfig in_channelConfig, AkUInt32 in_uChannelIdx)
@ AK_ChannelConfigType_Standard
Channels must be identified with standard defines in AkSpeakerConfigs.
AkUInt32 AkChannelMask
Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig....
#define AK_DEFAULT_LISTENER_POSITION_Z
void RelocateMedia(AkUInt8 *in_pNewMedia, AkUInt8 *in_pOldMedia)
uint8_t AkUInt8
Unsigned 8-bit integer.
#define AK_DEFAULT_LISTENER_POSITION_Y
Positioning data inherited from sound structures and mix busses.
AK::SpeakerVolumes::VectorPtr rms
float AkReal32
32-bit floating point
AKRESULT eState
Execution status.
AK::SpeakerVolumes::VectorPtr truePeak
AkReal32 panDU
Pan down-up [-1,1].
AkUInt16 uValidFrames
Number of valid sample frames in the audio buffer.
uintptr_t AkUIntPtr
Integer (unsigned) type for pointers.
AkReal32 * VectorPtr
Volume vector. Access each element with the standard bracket [] operator.
void * pData
Start of the audio buffer.
AkAudioObjectDestination
Enum of the possible object destinations when reaching a 3D audio-capable sink.
AkChannelConfig channelConfig
Channel config.
Ak3DSpatializationMode
3D spatialization mode.
#define AK_DEFAULT_LISTENER_POSITION_X
Default listener transform.
const AkDataTypeID AK_FLOAT
Float data type.
AkUInt16 AkDataTypeID
Data sample type ID.
#define AKASSERT(Condition)
AkSpeakerPanningType panType
Speaker panning type.
#define AKCODECID_BANK_BUS
Bank encoding for bus banks. These banks are contained in the /bus sub-folder.
const AkUInt32 AK_LE_NATIVE_BITSPERSAMPLE
Native number of bits per sample.
bool bPassthrough
Separate pass-through mix is supported.
AkUInt16 uMaxFrames
Number of sample frames the buffer can hold. Access through AkAudioBuffer::MaxFrames().
AkBehavioralPositioningData behavioral
Positioning data inherited from sound structures and mix busses.
AkForceInline void Clear()
Clear the channel config. Becomes "invalid" (IsValid() returns false).
AkReal32 AkSampleType
Audio sample data type (32 bit floating point)
const AkUInt32 AK_LE_NATIVE_SAMPLETYPE
Native data type.
#define AK_DEFAULT_LISTENER_FRONT_X
AkBehavioralPositioningData()
Ak3dData threeD
3D data used for 3D spatialization.
AkForceInline AkUInt32 GetNumNonZeroBits(AkUInt32 in_uWord)
Struct containing metering information about a buffer. Depending on when this struct is generated,...
@ AK_DataNeeded
The consumer needs more.
Positioning data of 3D audio objects.
#define AKCODECID_BANK_EVENT
Bank encoding for event banks. These banks are contained in the /event sub-folder.
AkChannelConfig channelConfig
Channel configuration of the main mix.
#define AK_DEFAULT_LISTENER_FRONT_Z
#define AKCODECID_BANK
Bank encoding.
void ZeroPadToMaxFrames()
@ AK_SpatializationMode_None
No spatialization.
AkChannelMask uEmitterChannelMask
Emitter channel mask. With 3D spatialization, zeroed channels should be dropped.
uint32_t AkUInt32
Unsigned 32-bit integer.
AkUInt8(* AkChannelMappingFunc)(const AkChannelConfig &config, AkUInt8 idx)
AkSpeakerPanningType
Speaker panning type: type of panning logic when object is not 3D spatialized (i.e....
AkUInt32 eConfigType
Channel config type (AkChannelConfigType).
AkReal32 panLR
Pan left-right [-1,1].
AkForceInline void AttachContiguousDeinterleavedData(void *in_pData, AkUInt16 in_uMaxFrames, AkUInt16 in_uValidFrames, AkChannelConfig in_channelConfig)
Attach deinterleaved data where channels are contiguous in memory. Allocation is performed outside.
AkReal32 spread
Spread [0,1].
AkForceInline bool HasLFE() const
AkForceInline void * GetInterleavedData()
#define AK_SPEAKER_LOW_FREQUENCY
Low-frequency speaker bit mask.
static bool IsBankCodecID(AkUInt32 in_codecID)
const AkDataTypeID AK_INT
Integer data type (uchar, short, and so on)
AkForceInline bool IsValid() const
Returns true if valid, false otherwise (as when it is constructed, or invalidated using Clear()).
AkReal32 focus
Focus [0,1].
AkTransform xform
Object position / orientation.
AkForceInline void ClearData()
Clear data pointer.
void AttachInterleavedData(void *in_pData, AkUInt16 in_uMaxFrames, AkUInt16 in_uValidFrames)
Attach interleaved data. Allocation is performed outside.
AK::SpeakerVolumes::VectorPtr peak
const AkDataInterleaveID AK_NONINTERLEAVED
Non-interleaved data.
Ak3DSpatializationMode spatMode
3D spatialization mode.
AkReal32 panBF
Pan back-front [-1,1].
const AkDataInterleaveID AK_INTERLEAVED
Interleaved data.
void AttachInterleavedData(void *in_pData, AkUInt16 in_uMaxFrames, AkUInt16 in_uValidFrames, AkChannelConfig in_channelConfig)
Attach interleaved data with a new channel config. Allocation is performed outside.
const AkUInt32 AK_LE_NATIVE_INTERLEAVE
Native interleaved setting.
AkForceInline AkUInt16 MaxFrames() const
Besoin d'aide ?
Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !
Visitez notre page d'Aide
Décrivez-nous de votre projet. Nous sommes là pour vous aider.
Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !
Partir du bon pied avec Wwise