// ============================================================
// (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