Example 3 – AwxAudioObjExtMemRecs.cpp

/*!
*   file      AwxiAudioObjExtMemRecs.cpp
*   brief     Memory related description Source file
*   details   Implements the audio object memory related API
*   details   Project    Extendable Audio Framework
*   copyright Harman/Becker Automotive Systems GmbH
*   
       2020
*   
       All rights reserved
*   author    xAF Team
*/

/*!
*   include files required to request the dynamic memory
*/
#include "AwxAudioObjExtMemRecs.h"

xUInt8 CAwxAudioObjExtMemRecs::getMemRecords(xAF_memRec* memTable, xAF_memRec& scratchRecord, xInt8 target, xInt8 format)
{
	xUInt8 numMemRecords = (static_cast(ENABLE_BLOCK) == m_EnMemory) ? static_cast(NUM_MEM_RECORDS) : static_cast(FLOATARRAY);
	//m_Param memory
    memTable[PARAM].alignment = 4;
    memTable[PARAM].size = static_cast(static_cast(m_NumAudioIn) * NUM_PARAMS_PER_CHANNEL * sizeof(xFloat32));
	memTable[PARAM].label = "Tuning Parameters";

	//m_Coeff memory
    memTable[COEFF].size = static_cast(static_cast(m_NumAudioIn) * sizeof(xFloat32));
	memTable[COEFF].alignment = 4;
	memTable[COEFF].label = "Gain Values";

	//m_MemBlck memory(Abstracted Tuning Memory)
	if (static_cast(ENABLE_BLOCK) == m_EnMemory)
	{
		memTable[FLOATARRAY].size = FLOAT_ARRAY_SIZE * sizeof(xFloat32);
		memTable[FLOATARRAY].alignment = 4;
		memTable[FLOATARRAY].label = "Abstracted Tuning Memory values";
	}
    return numMemRecords;
}