Version
menu

Wwise SDK 2025.1.0
AkSpeakerVolumes.h File Reference
#include <string.h>
#include <AK/SoundEngine/Common/AkTypes.h>
#include <AK/SoundEngine/Platforms/Generic/AkSpeakerVolumes.h>

Go to the source code of this file.

Namespaces

namespace  AK
 Definition of data structures for AkAudioObject.
 
 AK::SpeakerVolumes
 Multi-channel volume definitions and services.
 
 AK::SpeakerVolumes::Vector
 Volume vector services.
 
 AK::SpeakerVolumes::Matrix
 Volume matrix (multi-in/multi-out channel configurations) services.
 

Functions

AkForceInline void AK_SpeakerVolumes_Vector_Copy (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 Copy volumes. More...
 
AkForceInline void AK_SpeakerVolumes_Vector_CopyAndApplyGain (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels, AkReal32 in_fGain)
 Copy volumes with gain. More...
 
AkForceInline void AK_SpeakerVolumes_Vector_Zero (AkSpeakerVolumesVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
 Clear volumes. More...
 
AkForceInline void AK_SpeakerVolumes_Vector_Add (AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 Accumulate two volume vectors. More...
 
AkForceInline AkReal32 AK_SpeakerVolumes_Vector_L1Norm (AkSpeakerVolumesConstVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
 Compute the sum of all components of a volume vector. More...
 
AkForceInline void AK_SpeakerVolumes_Vector_MulScalar (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkReal32 in_fVol, AkUInt32 in_uNumChannels)
 Multiply volume vector with a scalar. More...
 
AkForceInline void AK_SpeakerVolumes_Vector_Mul (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 Multiply two volume vectors. More...
 
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. More...
 
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. More...
 
AkForceInline AkUInt32 AK_SpeakerVolumes_Matrix_GetRequiredSize (AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 Compute size (in bytes) required for given channel configurations. More...
 
AkForceInline AkUInt32 AK_SpeakerVolumes_Matrix_GetNumElements (AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 Compute size (in number of elements) required for given channel configurations. More...
 
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. More...
 
AkForceInline AkSpeakerVolumesConstVectorPtr AK_SpeakerVolumes_Matrix_GetChannel_Const (AkSpeakerVolumesConstMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK_SpeakerVolumes_Matrix_Copy (AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 Copy matrix. More...
 
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. More...
 
AkForceInline void AK_SpeakerVolumes_Matrix_Zero (AkSpeakerVolumesMatrixPtr in_pVolumes, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 Clear matrix. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
AkForceInline void AK::SpeakerVolumes::Vector::Copy (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Copy (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels, AkReal32 in_fGain)
 
AkForceInline void AK::SpeakerVolumes::Vector::Zero (AkSpeakerVolumesVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Add (AkSpeakerVolumesVectorPtr io_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 
AkForceInline AkReal32 AK::SpeakerVolumes::Vector::L1Norm (AkSpeakerVolumesConstVectorPtr in_pVolumes, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Mul (VectorPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Mul (VectorPtr in_pVolumesDst, ConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Max (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 
AkForceInline void AK::SpeakerVolumes::Vector::Min (AkSpeakerVolumesVectorPtr in_pVolumesDst, AkSpeakerVolumesConstVectorPtr in_pVolumesSrc, AkUInt32 in_uNumChannels)
 
AkForceInline AkUInt32 AK::SpeakerVolumes::Matrix::GetRequiredSize (AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline AkUInt32 AK::SpeakerVolumes::Matrix::GetNumElements (AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline VectorPtr AK::SpeakerVolumes::Matrix::GetChannel (MatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline ConstVectorPtr AK::SpeakerVolumes::Matrix::GetChannel (ConstMatrixPtr in_pVolumeMx, AkUInt32 in_uIdxChannelIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Copy (MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Copy (MatrixPtr in_pVolumesDst, ConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Zero (AkSpeakerVolumesMatrixPtr in_pVolumes, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Mul (AkSpeakerVolumesMatrixPtr in_pVolumesDst, const AkReal32 in_fVol, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Add (AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::MAdd (AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut, AkReal32 in_fGain)
 
AkForceInline void AK::SpeakerVolumes::Matrix::AbsMax (AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 
AkForceInline void AK::SpeakerVolumes::Matrix::Max (AkSpeakerVolumesMatrixPtr in_pVolumesDst, AkSpeakerVolumesConstMatrixPtr in_pVolumesSrc, AkUInt32 in_uNumChannelsIn, AkUInt32 in_uNumChannelsOut)
 

Detailed Description

Multi-channel volume definitions and services. Always associated with an AkChannelConfig. In the case of standard configurations, the volume items ordering match the bit ordering in the channel mask, except for the LFE which is skipped and placed at the end of the volume array. See Advanced Mix Customization Using the Speaker Matrix Callback for an example of how to manipulate speaker volume vectors/matrices.

Definition in file AkSpeakerVolumes.h.


Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise