// ============================================================
// (C) 2017 Harman International Industries, Incorporated.
// Confidential & Proprietary. All Rights Reserved.
// ============================================================
/**
* file AwxAudioObjExtToolbox.h
* brief AwxAudioObj Audio Object Toolbox - Header file
* details Project Extendable Audio Framework
* copyright Harman/Becker Automotive Systems GmbH
*
2017
*
All rights reserved
* author xAF Team
* date March 28, 2023
*/
#ifndef AWXAUDIOOBJEXT_TOOLBOX_H
#define AWXAUDIOOBJEXT_TOOLBOX_H
/*!
* xaf mandataory includes
*/
#include "AwxAudioObjExtMemRecs.h"
#include "AudioObjectToolbox.h"
#include "XafDefs.h"
/** here you can add all required include files required for
the core functionality of your objects
**/
class CAwxAudioObjExtToolbox : public CAudioObjectToolbox, public CAwxAudioObjExtMemRecs
{
public:
/**
* Default ctor / dtor to initialite member variables of the audio object
*/
CAwxAudioObjExtToolbox();
virtual ~CAwxAudioObjExtToolbox();
/**
* Returns the object description
* return pointer to structure describing object configuration.
*/
const tObjectDescription* getObjectDescription() OVERRIDE;
/**
* Writes object template information to the buffer returns number of bytes written
* param info audio object tuning info.
* param buffer buffer for XML output.
* param maxLen maximal length of the buffer.
* return size of generated xml file.
*/
xUInt32 getXmlObjectTemplate(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen) OVERRIDE;
/**
* brief Returns the overall object description used in the object
* within the device description file
* param info pointer to TuningInfo structure
* param buffer pointer to buffer used for file creation.
* param maxlen max allowed size of generated file.
* return size of generated device.ddf file.
*/
xUInt32 getXmlFileInfo (tTuningInfo* info, xInt8* buffer, xUInt32 maxLen) OVERRIDE;
/**
* Returns the mode description of object
* param mode index of the selected mode
* return pointer to the object mode description
*/
const tModeDescription* getModeDescription (xUInt32 mode) OVERRIDE;
/**
* This function sets the object configuration based on user settings indicated in GTT
* param configOut the configuration of the object sent back to the tool
* return error code
*/
xAF_Error getObjectIo(ioObjectConfigOutput* configOut) OVERRIDE;
/**
* Returns the additional variable description
* param index index of the additional parameter
* return instance of additional variable description
*/
const additionalSfdVarDescription* getAdditionalSfdVarsDescription(xUInt32 index) OVERRIDE;
/**
* brief Creates metadata entries for the specific audio object
* this function must be overridden by each object supporting
* the metadata feature. Otherwise default data will be created.
*/
void createStaticMetadata () OVERRIDE;
/**
* brief Creates mode and configuration dependent metadata entries for the specific audio object
* this function must be overridden by each object supporting
* the metadata feature.
* param configIn the configuration of audio in, out and num elements passed in by the design tool
* param configOut the configuration of the object sent back to the tool
*/
void createDynamicMetadata(ioObjectConfigInput& configIn, ioObjectConfigOutput& configOut) OVERRIDE;
protected:
};
#endif //AWXAUDIOOBJEXT_TOOLBOX_H