이 파일의 문서화 페이지로 가기
36 #ifndef _AK_SPEAKER_VOLUMES_H_
37 #define _AK_SPEAKER_VOLUMES_H_
41 #include <AK/SoundEngine/Platforms/Generic/AkSpeakerVolumes.h>
47 memcpy(in_pVolumesDst, in_pVolumesSrc, in_uNumChannels *
sizeof(
AkReal32));
53 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
55 in_pVolumesDst[uChan] = in_pVolumesSrc[uChan] * in_fGain;
63 memset(in_pVolumes, 0, in_uNumChannels *
sizeof(
AkReal32));
69 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
71 io_pVolumesDst[uChan] += in_pVolumesSrc[uChan];
79 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
81 total += in_pVolumes[uChan];
90 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
92 in_pVolumesDst[uChan] *= in_fVol;
99 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
101 in_pVolumesDst[uChan] *= in_pVolumesSrc[uChan];
108 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
110 in_pVolumesDst[uChan] =
AkMax(in_pVolumesDst[uChan], in_pVolumesSrc[uChan]);
117 for (
AkUInt32 uChan = 0; uChan < in_uNumChannels; uChan++)
119 in_pVolumesDst[uChan] =
AkMin(in_pVolumesDst[uChan], in_pVolumesSrc[uChan]);
126 return in_uNumChannelsIn * AK_SpeakerVolumes_Vector_GetRequiredSize(in_uNumChannelsOut);
132 return in_uNumChannelsIn * AK_SpeakerVolumes_Vector_GetNumElements(in_uNumChannelsOut);
138 return in_pVolumeMx + in_uIdxChannelIn * AK_SpeakerVolumes_Vector_GetNumElements(in_uNumChannelsOut);
142 return in_pVolumeMx + in_uIdxChannelIn * AK_SpeakerVolumes_Vector_GetNumElements(in_uNumChannelsOut);
150 memcpy(in_pVolumesDst, in_pVolumesSrc, uNumElements *
sizeof(
AkReal32));
157 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
159 in_pVolumesDst[uChan] = in_pVolumesSrc[uChan] * in_fGain;
168 memset(in_pVolumes, 0, uNumElements *
sizeof(
AkReal32));
175 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
177 in_pVolumesDst[uChan] *= in_fVol;
185 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
187 in_pVolumesDst[uChan] += in_pVolumesSrc[uChan];
195 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
197 in_pVolumesDst[uChan] += in_pVolumesSrc[uChan] * in_fGain;
205 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
207 in_pVolumesDst[uChan] = ((in_pVolumesDst[uChan] * in_pVolumesDst[uChan]) > (in_pVolumesSrc[uChan] * in_pVolumesSrc[uChan])) ? in_pVolumesDst[uChan] : in_pVolumesSrc[uChan];
215 for (
AkUInt32 uChan = 0; uChan < uNumElements; uChan++)
217 in_pVolumesDst[uChan] = (in_pVolumesDst[uChan] > in_pVolumesSrc[uChan]) ? in_pVolumesDst[uChan] : in_pVolumesSrc[uChan];
225 namespace SpeakerVolumes
322 #endif // __cplusplus
324 #endif //_AK_SPEAKER_VOLUMES_H_
AkForceInline void AK_SpeakerVolumes_Matrix_Zero(AkSpeakerVolumesMatrixPtr in_pVolumes, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Clear matrix.
Definition of data structures for AkAudioObject
AkForceInline void AK_SpeakerVolumes_Vector_MulScalar(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkReal32 in_fVol, AkUInt32 in_uNumChannels)
Multiply volume vector with a scalar.
AkForceInline void AK_SpeakerVolumes_Vector_Zero(AkSpeakerVolumesVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
Clear volumes.
AkForceInline AkUInt32 AK_SpeakerVolumes_Matrix_GetRequiredSize(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Compute size (in bytes) required for given channel configurations.
AkReal32 * AkSpeakerVolumesMatrixPtr
AkForceInline void AK_SpeakerVolumes_Matrix_MAdd(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
Pointwise Multiply-Add of all elements of two volume matrices.
AkForceInline AkUInt32 GetRequiredSize(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline AkSpeakerVolumesVectorPtr AK_SpeakerVolumes_Matrix_GetChannel(AkSpeakerVolumesMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
Get pointer to volume distribution for input channel in_uIdxChannelIn.
AkForceInline AkUInt32 GetNumElements(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
float AkReal32
32-bit floating point
AkForceInline void AK_SpeakerVolumes_Matrix_Copy(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Copy matrix.
AkForceInline void Zero(AkSpeakerVolumesMatrixPtr in_pVolumes, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void AK_SpeakerVolumes_Vector_Copy(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Copy volumes.
AkForceInline void AK_SpeakerVolumes_Vector_Min(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Get min for all elements of two volume vectors, independently.
AkForceInline void Max(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void AK_SpeakerVolumes_Matrix_AbsMax(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Get absolute max for all elements of two volume matrices, independently.
AkForceInline void AK_SpeakerVolumes_Vector_CopyAndApplyGain(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels, AkReal32 in_fGain)
Copy volumes with gain.
AkForceInline VectorPtr GetChannel(MatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void AbsMax(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkSpeakerVolumesVectorPtr MatrixPtr
AkForceInline AkSpeakerVolumesConstVectorPtr AK_SpeakerVolumes_Matrix_GetChannel_Const(AkSpeakerVolumesConstMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void MAdd(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
AkForceInline void Add(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline AkUInt32 AK_SpeakerVolumes_Matrix_GetNumElements(AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Compute size (in number of elements) required for given channel configurations.
AkForceInline void AK_SpeakerVolumes_Matrix_Max(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Get max for all elements of two volume matrices, independently.
AkSpeakerVolumesConstVectorPtr ConstVectorPtr
AkForceInline void Min(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline void Max(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkReal32 * AkSpeakerVolumesVectorPtr
Constant volume vector. Access each element with the standard bracket [] operator.
AkForceInline void AK_SpeakerVolumes_Vector_Mul(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Multiply two volume vectors.
AkForceInline void AK_SpeakerVolumes_Matrix_Mul(AkSpeakerVolumesMatrixPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Multiply a matrix with a scalar.
AkSpeakerVolumesConstMatrixPtr ConstMatrixPtr
AkForceInline void AK_SpeakerVolumes_Vector_Max(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Get max for all elements of two volume vectors, independently.
AkForceInline void AK_SpeakerVolumes_Vector_Add(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
Accumulate two volume vectors.
AkForceInline AkReal32 AK_SpeakerVolumes_Vector_L1Norm(AkSpeakerVolumesConstVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
Compute the sum of all components of a volume vector.
uint32_t AkUInt32
Unsigned 32-bit integer
AkForceInline void Copy(MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline AkReal32 L1Norm(AkSpeakerVolumesConstVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
const AkReal32 * AkSpeakerVolumesConstMatrixPtr
Opaque data structure for storing a collection of external sources. Refer to API in AK/SoundEngine/Co...
AkForceInline void Mul(AkSpeakerVolumesMatrixPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
AkForceInline void Add(AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkForceInline void AK_SpeakerVolumes_Matrix_Add(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
Add all elements of two volume matrices, independently.
AkForceInline void Copy(AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
AkSpeakerVolumesMatrixPtr VectorPtr
const AkReal32 * AkSpeakerVolumesConstVectorPtr
Constant volume matrix. Access each input channel vector with AK::SpeakerVolumes::Matrix::GetChannel(...
AkForceInline void Zero(AkSpeakerVolumesVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
AkForceInline void Mul(VectorPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannels)
AkForceInline void AK_SpeakerVolumes_Matrix_CopyAndApplyGain(AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
Copy matrix with gain.
지원이 필요하신가요?
질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!
지원 페이지를 방문해 주세요
작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요