浏览该文件的文档.
36 #ifndef _AK_SPEAKER_VOLUMES_H_
37 #define _AK_SPEAKER_VOLUMES_H_
44 #include <AK/SoundEngine/Platforms/Generic/AkSpeakerVolumes.h>
223 namespace SpeakerVolumes
231 memcpy(in_pVolumesDst, in_pVolumesSrc, in_uNumChannels *
sizeof(
AkReal32));
236 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
238 in_pVolumesDst[uChan] = in_pVolumesSrc[uChan] * in_fGain;
245 memset(in_pVolumes, 0, in_uNumChannels *
sizeof(
AkReal32));
250 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
252 in_pVolumesDst[uChan] += in_pVolumesSrc[uChan];
259 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
261 total += io_pVolumes[uChan];
269 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
271 in_pVolumesDst[uChan] *= in_fVol;
277 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
279 in_pVolumesDst[uChan] *= in_pVolumesSrc[uChan];
285 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
287 in_pVolumesDst[uChan] =
AkMax(in_pVolumesDst[uChan], in_pVolumesSrc[uChan]);
293 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
295 in_pVolumesDst[uChan] =
AkMin(in_pVolumesDst[uChan], in_pVolumesSrc[uChan]);
327 memcpy(in_pVolumesDst, in_pVolumesSrc, uNumElements *
sizeof(
AkReal32));
333 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
335 in_pVolumesDst[uChan] = in_pVolumesSrc[uChan] * in_fGain;
343 memset(in_pVolumes, 0, uNumElements *
sizeof(
AkReal32));
349 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
351 in_pVolumesDst[uChan] *= in_fVol;
358 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
360 in_pVolumesDst[uChan] += in_pVolumesSrc[uChan];
367 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
369 in_pVolumesDst[uChan] += in_pVolumesSrc[uChan] * in_fGain;
376 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
378 in_pVolumesDst[uChan] = ((in_pVolumesDst[uChan] * in_pVolumesDst[uChan]) > (in_pVolumesSrc[uChan] * in_pVolumesSrc[uChan])) ? in_pVolumesDst[uChan] : in_pVolumesSrc[uChan];
385 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
387 in_pVolumesDst[uChan] = (in_pVolumesDst[uChan] > in_pVolumesSrc[uChan]) ? in_pVolumesDst[uChan] : in_pVolumesSrc[uChan];
393 #endif // __cplusplus
395 #endif //_AK_SPEAKER_VOLUMES_H_
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_Mul(AkSpeakerVolumesMatrixPtr io_pVolumesDst, AkReal32 in_fVol, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Copy(VectorPtr in_pVolumesDst, ConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Definition of data structures for AkAudioObject
AKSOUNDENGINE_API AkUInt32 AK_SpeakerVolumes_Vector_GetNumElements(AkUInt32 in_uNumChannels)
AkReal32 * AkSpeakerVolumesMatrixPtr
AkForceInline AkReal32 L1Norm(ConstVectorPtr io_pVolumes, AkUInt32 in_uNumChannels)
AkForceInline void Max(AkReal32 *in_pVolumesDst, const AkReal32 *in_pVolumesSrc, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_AbsMax(AkSpeakerVolumesMatrixPtr io_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_CopyAndApplyGain(AkSpeakerVolumesMatrixPtr out_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
#define AK_EXTERNAPIFUNC(_type, _name)
AkForceInline AkUInt32 GetRequiredSize(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_Copy(AkSpeakerVolumesMatrixPtr out_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Zero(MatrixPtr in_pVolumes, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline AkUInt32 GetNumElements(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API AkReal32 AK_SpeakerVolumes_Vector_L1Norm(AkSpeakerVolumesConstVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API AkUInt32 AK_SpeakerVolumes_Vector_GetRequiredSize(AkUInt32 in_uNumChannels)
float AkReal32
32-bit floating point
AkForceInline void AbsMax(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Zero(AkSpeakerVolumesVectorPtr out_pVolumesDst, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API AkUInt32 AK_SpeakerVolumes_Matrix_GetRequiredSize(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Max(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline VectorPtr GetChannel(MatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_MulScalar(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkReal32 in_fVol, AkUInt32 in_uNumChannels)
AkSpeakerVolumesVectorPtr MatrixPtr
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_Add(AkSpeakerVolumesMatrixPtr io_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Add(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Zero(VectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API AkSpeakerVolumesVectorPtr AK_SpeakerVolumes_Matrix_GetChannel(AkSpeakerVolumesMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void MAdd(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
AKSOUNDENGINE_API AkUInt32 AK_SpeakerVolumes_Matrix_GetNumElements(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Add(VectorPtr in_pVolumesDst, ConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_CopyAndApplyGain(AkSpeakerVolumesVectorPtr out_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels, AkReal32 in_fGain)
AkSpeakerVolumesConstVectorPtr ConstVectorPtr
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_MAdd(AkSpeakerVolumesMatrixPtr io_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
AkReal32 * AkSpeakerVolumesVectorPtr
Constant volume vector. Access each element with the standard bracket [] operator.
AkSpeakerVolumesConstMatrixPtr ConstMatrixPtr
AkForceInline void Mul(MatrixPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
uint32_t AkUInt32
Unsigned 32-bit integer
AkForceInline void Copy(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Min(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Mul(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
const AkReal32 * AkSpeakerVolumesConstMatrixPtr
Opaque data structure for storing a collection of external sources. Refer to API in AK/SoundEngine/Co...
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_Zero(AkSpeakerVolumesMatrixPtr out_pVolumesDst, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Copy(AkSpeakerVolumesVectorPtr out_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline void Max(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API AkSpeakerVolumesConstVectorPtr AK_SpeakerVolumes_Matrix_GetChannel_Const(AkSpeakerVolumesConstMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
AKSOUNDENGINE_API void AK_SpeakerVolumes_Matrix_Max(AkSpeakerVolumesMatrixPtr io_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkSpeakerVolumesMatrixPtr VectorPtr
const AkReal32 * AkSpeakerVolumesConstVectorPtr
Constant volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel(...
AKSOUNDENGINE_API void AK_SpeakerVolumes_Vector_Add(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline void Min(AkReal32 *in_pVolumesDst, const AkReal32 *in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline void Mul(VectorPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannels)
介绍一下自己的项目。我们会竭力为您提供帮助。
来注册自己的项目,我们帮您快速入门,不带任何附加条件!
开始 Wwise 之旅