
A new audio object will implement the following functions depending on functionality. See the header files for the associated classes for detailed comments.
In the class which inherits CAudioObject – ie: CYourAudioObject.cpp
Abstract Methods (required implementation)
xUInt32 CAudioObject::getSize() const
Virtual Methods (optional implementation – depending on object features). This is not a complete list but contains the major virtual methods.
void CAudioObject::init()
void CAudioObject::calc(xFloat32** inputs, xFloat32** outputs)
void CAudioObject::tuneXTP(xSInt32 subblock, xSInt32 startMemBytes, xSInt32 sizeBytes, xBool shouldAttemptRamp)
void CAudioObject::controlSet(xSInt32 index, xFloat32 value)
xAF_Error CAudioObject::controlSet(xSInt32 index, xUInt32 sizeBytes, const void * const pValues)
void CAudioObject::assignAdditionalConfig()
xInt8* CAudioObject::getSubBlockPtr(xUInt16 subBlock)
xSInt32 CAudioObject::getSubBlockSize(xUInt16 subBlock)
In the class which inherits CAudioObjectToolbox – ie: CYourAudioObjectToolbox.cpp
const CAudioObjectToolbox::tObjectDescription* CAudioObjectToolbox::getObjectDescription() const CAudioObjectToolbox::tModeDescription* CAudioObjectToolbox::getModeDescription(xUInt32 mode) const CAudioObjectToolbox::additionalSfdVarDescription* CAudioObjectToolbox::getAdditionalSfdVarsDescription(xUInt32 index) xAF_Error CAudioObjectToolbox::getObjectIo(ioObjectConfigOutput* configOut) xUInt32 CAudioObjectToolbox::getXmlSVTemplate(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen) xUInt32 CAudioObjectToolbox::getXmlObjectTemplate(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen) xUInt32 CAudioObjectToolbox::getXmlFileInfo(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen) void CAudioObjectToolbox::createStaticMetadata() void CAudioObjectToolbox::createDynamicMetadata(ioObjectConfigInput& configIn, ioObjectConfigOutput& configOut)
In the class which inherits CMemoryRecordProperties – ie: CYourAudioObjectMemRecs.cpp
xUInt8 CMemoryRecordProperties::getMemRecords(xAF_memRec* memTable, xAF_memRec& scratchRecord, xInt8 target, xInt8 format)
External Audio Objects
The following audio objects acts as an example external audio object that shall be used as a development starting point when user requires to add a custom audio object to the extendable audio framework. It is intended to help third parties port their algorithms to AWX.
AwxAudioObjExt
GainExample
Source code for AwxAudioObjExt and GainExample audio object can be found in HarmanAudioworX installation folder. The path for the source code is
Program Files\Harman\HarmanAudioworX\ext-reference-algorithms\external\inc
Program Files\Harman\HarmanAudioworX\ext-reference-algorithms\external\src