Example 5 – AwxAudioObjExtToolbox.h

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