浏览该文件的文档.
33 #ifndef _AK_COMMON_DEFS_H_
34 #define _AK_COMMON_DEFS_H_
176 #define AK_MAKE_CHANNELCONFIGOVERRIDE(_config,_order) ((AkInt64)_config.Serialize()|((AkInt64)_order<<32))
177 #define AK_GET_CHANNELCONFIGOVERRIDE_CONFIG(_over) (_over&UINT_MAX)
178 #define AK_GET_CHANNELCONFIGOVERRIDE_ORDERING(_over) ((AkSourceChannelOrdering)(_over>>32))
191 #define AKMAKECLASSID( in_pluginType, in_companyID, in_pluginID ) \
192 ( (in_pluginType) + ( (in_companyID) << 4 ) + ( (in_pluginID) << ( 4 + 12 ) ) )
194 #define AKGETPLUGINTYPEFROMCLASSID( in_classID ) ( (in_classID) & AkPluginTypeMask )
195 #define AKGETCOMPANYIDFROMCLASSID( in_classID ) ( ( (in_classID) & 0x0000FFF0 ) >> 4 )
196 #define AKGETPLUGINIDFROMCLASSID( in_classID ) ( ( (in_classID) & 0xFFFF0000 ) >> ( 4 + 12 ) )
198 #define CODECID_FROM_PLUGINID AKGETPLUGINIDFROMCLASSID
235 #define AK_DEFAULT_LISTENER_POSITION_X (0.0f) // at coordinate system's origin
236 #define AK_DEFAULT_LISTENER_POSITION_Y (0.0f)
237 #define AK_DEFAULT_LISTENER_POSITION_Z (0.0f)
238 #define AK_DEFAULT_LISTENER_FRONT_X (0.0f) // looking toward Z,
239 #define AK_DEFAULT_LISTENER_FRONT_Y (0.0f)
240 #define AK_DEFAULT_LISTENER_FRONT_Z (1.0f)
241 #define AK_DEFAULT_TOP_X (0.0f) // top towards Y
242 #define AK_DEFAULT_TOP_Y (1.0f)
243 #define AK_DEFAULT_TOP_Z (0.0f)
298 class IAkPluginParam;
346 for (
auto it =
Begin(); it !=
End(); ++it)
348 if ((*it).pluginID == pluginID)
390 for (
int i = 0; i < (int)in_uLength; ++i)
410 const char* in_szName
553 if ( in_channelConfig.
HasLFE() )
558 if ( in_uChannelIdx == uIdxLFE )
560 else if ( in_uChannelIdx > uIdxLFE )
561 return in_uChannelIdx - 1;
564 return in_uChannelIdx;
605 if ( uNumZeroFrames )
608 for (
AkUInt32 i = 0; i < uNumChannels; ++i )
627 void * pDataOld =
pData;
674 #endif // _AK_COMMON_DEFS_H_
void Transfer(AkAudioObject &in_from)
Transfer function for transfer move policies.
AkString< AkPluginArrayAllocator, char > String
String type for use in 3D audio objects.
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
AkForceInline bool HasData() const
Check if buffer has samples attached to it.
AkAudioObject()
Constructor
static const AkUInt64 kObjectKeyNumBits
AkForceInline bool HasCenter() const
AkPositioningData positioning
Positioning data for deferred 3D rendering.
@ SourceChannelOrdering_FuMa
AkReal32 center
Center percentage [0,1]
AkRamp cumulativeGain
Cumulative ramping gain to apply when mixing down to speaker bed or final endpoint
AkForceInline AkChannelConfig GetChannelConfig() const
void Transfer(AkString< TAlloc, T_CHAR > &in_from)
AkUInt64 AkAudioObjectID
Audio Object ID
AKRESULT Copy(const AkArray< T, ARG_T, TAlloc, TGrowBy, TMovePolicy > &in_rSource)
@ SourceChannelOrdering_Standard
AkReal32 panSpatMix
Panning vs 3D spatialization mix ([0,1], 1 being 100% spatialized).
bool bMultiChannelObjects
Can handle multi-channel objects
AkUInt32 AkPipelineID
Unique node (bus, voice) identifier for profiling.
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.
static const AkUInt64 kObjectKeyMask
AkAudioObjectID key
Unique ID, local to a given bus. Only the lower 56 of 64 bits are used for the object itself....
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.
static const AkAudioObjectID AK_INVALID_AUDIO_OBJECT_ID
Invalid audio object ID
AkUInt32 AkChannelMask
Channel mask (similar to WAVE_FORMAT_EXTENSIBLE). Bit values are defined in AkSpeakerConfig....
#define AK_DEFAULT_LISTENER_POSITION_Z
@ SourceChannelOrdering_Film
void RelocateMedia(AkUInt8 *in_pNewMedia, AkUInt8 *in_pOldMedia)
uint8_t AkUInt8
Unsigned 8-bit integer
#define AK_DEFAULT_LISTENER_POSITION_Y
@ SourceChannelOrdering_Last
void CopyContents(const AkAudioObject &in_src)
Copies object metadata (everything but the key) from another object.
Positioning data inherited from sound structures and mix busses.
Specific implementation of array
AK::SpeakerVolumes::VectorPtr rms
float AkReal32
32-bit floating point
void TransferContents(AkAudioObject &in_src)
Moves object metadata (everything but the key) from another object.
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
static const AkPriority AK_DEFAULT_PRIORITY
Default sound / I/O priority
AKRESULT SetName(AK::IAkPluginMemAlloc *in_pAllocator, const char *in_szName)
AkForceInline void Init(AK::IAkPluginMemAlloc *in_pAllocator)
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.
AkUInt32 AkUniqueID
Unique 32-bit ID
bool Resize(AkUInt32 in_uiSize)
Resize the array to the specified size.
AkAudioBuffer ** ppObjectBuffers
Array of pointers to audio object buffers.
Ak3DSpatializationMode
3D spatialization mode.
#define AK_DEFAULT_LISTENER_POSITION_X
Default listener transform.
const AkDataTypeID AK_FLOAT
Float data type
AkUInt32 AkPluginID
Source or effect plug-in ID
AkUInt16 AkDataTypeID
Data sample type ID
void ResetState()
Reset object state in preparation for next frame.
#define AKASSERT(Condition)
AkUInt32 uNumObjects
Number of audio objects.
AkSpeakerPanningType panType
Speaker panning type.
ArrayCustomMetadata arCustomMetadata
Array of custom metadata, gathered from visited objects. Note: any custom metadata is expected to exi...
#define AKCODECID_BANK_BUS
Bank encoding for bus banks. These banks are contained in the /bus sub-folder.
static const AkPipelineID AK_INVALID_PIPELINE_ID
Invalid pipeline ID (for profiling)
const AkUInt32 AK_LE_NATIVE_BITSPERSAMPLE
Native number of bits per sample.
bool bPassthrough
Separate pass-through mix is supported.
Volume ramp specified by end points "previous" and "next".
AkUInt16 uMaxFrames
Number of sample frames the buffer can hold. Access through AkAudioBuffer::MaxFrames().
Iterator End() const
Returns the iterator to the end of the array
AkInt8 AkPriority
Priority
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
void Transfer(AkArray< T, ARG_T, TAlloc, TGrowBy, TMovePolicy > &in_rSource)
AkPipelineID instigatorID
Profiling ID of the node from which the object stems (typically the voice, instance of an actor-mixer...
AkBehavioralPositioningData()
Iterator Begin() const
Returns the iterator to the first item of the array, will be End() if the array is empty.
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.
A collection of audio objects. Encapsulates the audio data and metadata of each audio object in separ...
#define AKCODECID_BANK_EVENT
Bank encoding for event banks. These banks are contained in the /event sub-folder.
uint64_t AkUInt64
Unsigned 64-bit integer
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
void SetCustomMetadata(CustomMetadata *in_aCustomMetadata, AkUInt32 in_uLength)
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.
void Term()
Term the array. Must be called before destroying the object.
AkReal32 spread
Spread [0,1]
AkForceInline bool HasLFE() const
~AkAudioObject()
Destructor
AkPriority priority
Audio object playback priority. Object with a higher priority will be rendered using the hardware's o...
AkForceInline void * GetInterleavedData()
String objectName
Name string of the object, to appear in the object profiler. This is normally used by out-of-place ob...
#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.
AkAudioObjects(AkUInt32 in_uNumObjects=0, AkAudioBuffer **in_ppObjectBuffers=nullptr, AkAudioObject **in_ppObjects=nullptr)
AkAudioObject ** ppObjects
Array of pointers to audio objects.
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
介绍一下自己的项目。我们会竭力为您提供帮助。
来注册自己的项目,我们帮您快速入门,不带任何附加条件!
开始 Wwise 之旅