omxil/omxilapi/shai/OMX_Symbian_AudioExt.h
branchOpenMAX-IL_SHAI
changeset 16 eedf2dcd43c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omxil/omxilapi/shai/OMX_Symbian_AudioExt.h	Fri May 07 16:25:23 2010 +0100
@@ -0,0 +1,1254 @@
+/*
+  OMX_Symbian_AudioExt.h
+  
+  Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
+  All rights reserved.
+
+  This program and the accompanying materials are made available 
+  under the terms of the Eclipse Public License v1.0 which accompanies 
+  this distribution, and is available at 
+  http://www.eclipse.org/legal/epl-v10.html
+
+  Initial Contributors:
+  Nokia Corporation - initial contribution.
+*/
+
+/** @file
+@brief Symbian OpenMAX IL Extension Data Structures in the Audio Domain.
+
+This file contains the extension structures for the Symbian IL extensions that
+pertain to audio components.
+
+@publishedDeviceAbstraction
+*/
+
+#ifndef OMX_Symbian_AudioExt_h
+#define OMX_Symbian_AudioExt_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* Each OMX header must include all required header files to allow the
+ * header to compile without errors.  The includes below are required
+ * for this header file to compile successfully 
+ */
+#include <OMX_Types.h>
+#include <OMX_Audio.h>
+#include <OMX_Symbian_OtherExt.h>
+
+
+/** @name Generic Audio Control Definitions. */
+
+/*@{*/
+
+/**  Simple effect enable/disable switch control.
+
+This struct can be used to control all effects that only require an on/off
+type of control.
+
+This data structure is currently used for:
+- Earpiece Active Noise Control (EANC) settings with extension string 
+  "OMX.Symbian.Index.Config.Audio.EANC"
+- Algorithm for Preventing System Shutdown by Audio System (APSSAS) params
+  with extension string "OMX.Symbian.Index.Param.Audio.APSSAS".
+- Uplink algorithms configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.UplinkAlgorithms".
+- Downlink algorithms configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.DownlinkAlgorithms".
+- Automatic volume control configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.AutomaticVolumeControl".
+- Comfort noise generation configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.ComfortNoiseGeneration".
+- Multimicrophone noise control configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.MultiMicrophoneNoiseControl".
+- Transducer dynamic range control (DRC) configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.TransducerDRC".
+- Uplink level normalization configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.UplinkLevelNormalization".
+- Voice clarity configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.VoiceClarity".
+- Sidetone howling control configuration parameters with extension string
+  "OMX.Symbian.Index.Config.Audio.SidetoneHowlingControl"
+- Automatic gain control configuration parameters with extension string 
+  "OMX.Symbian.Index.Config.Audio.AutomaticGainControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_EFFECTENABLETYPE { 
+    OMX_U32 nSize;              /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
+    OMX_U32 nPortIndex;         /**< port that this structure applies to */
+    OMX_BOOL bEnable;           /**< enable (OMX_TRUE) or disable (OMX_FALSE) the effect */
+} OMX_SYMBIAN_AUDIO_CONFIG_EFFECTENABLETYPE;
+
+/*@}*/
+
+/** @name Audio Codecs Extensions */
+
+/*@{*/
+
+/** WMA params.
+
+The OMX_AUDIO_PARAM_WMAAVGBYTESTYPE structure is used to set or query
+the WMA codec related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.WMAAvgBytes".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_WMAAVGBYTESTYPE { 
+    OMX_U32 nSize; 
+    OMX_VERSIONTYPE nVersion; 
+    OMX_U32 nPortIndex;  
+    OMX_U32 nAvgBytesPerSec;
+} OMX_SYMBIAN_AUDIO_PARAM_WMAAVGBYTESTYPE;
+
+/** The version of the Windows Media Audio Pro codec */
+typedef enum OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE {
+    OMX_SYMBIAN_AUDIO_WMAPROFormatUnused,   /**< The version of the Windows Media audio codec is
+                                               either not applicable or is unknown. */
+    OMX_SYMBIAN_AUDIO_WMAPROFormat9,        /**< Windows Media Audio Pro version 9 */
+    OMX_SYMBIAN_AUDIO_WMAPROFormat10,       /**< Windows Media Audio Pro version 10 */
+    OMX_SYMBIAN_AUDIO_WMAPROFormatMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE;
+
+/** The profile of the Windows Media Audio Pro codec */
+typedef enum OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE {
+    OMX_SYMBIAN_AUDIO_WMAPROProfileUnused,  /**< The profile of the Windows Media Audio Pro codec is
+                                               either not applicable or is unknown. */
+    OMX_SYMBIAN_AUDIO_WMAPROProfileM0,      /**< Windows Media Audio Pro profile M0. */
+    OMX_SYMBIAN_AUDIO_WMAPROProfileM1,      /**< Windows Media Audio Pro profile M1. */
+    OMX_SYMBIAN_AUDIO_WMAPROProfileM2,      /**< Windows Media Audio Pro profile M2. */
+    OMX_SYMBIAN_AUDIO_WMAPROProfileM3,      /**< Windows Media Audio Pro profile M3. */
+    OMX_SYMBIAN_AUDIO_WMAPROProfileMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE;
+
+/** WMA Pro params.
+
+The OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE structure is used to set or query
+the WMA pro codec related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.WMAPro".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE {
+    OMX_U32 nSize;                    /**< size of the structure in bytes */
+    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
+    OMX_U32 nPortIndex;               /**< port that this structure applies to */
+    OMX_U16 nChannels;                /**< Number of channels */
+    OMX_U32 nBitRate;                 /**< Bit rate of the input data.  Use 0 for variable
+                                           rate or unknown bit rates */
+    OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE eFormat;     /**< The version of the Windows Media Audio Pro codec */
+    OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE eProfile;   /**< The profile of the Windows Media Audio Pro codec */
+    OMX_U32 nSamplingRate;            /**< Sampling rate of the source data. */
+    OMX_U32 nBlockAlign;              /**< The block alignment, or block size (in bytes)
+                                           of the audio codec */
+    OMX_U32 nSuperBlockAlign;         /**< WMA Type specific data. It is used only by encoder 
+                                               and is don’t care for decoder. */
+    OMX_U32 nEncodeOptions;           /**< WMA Type specific opaque data */
+    OMX_U32 nAdvancedEncodeOptions;   /**< WMA pro specific opaque data (don’t care for others) */
+    OMX_U32 nAdvancedEncodeOptions2;  /**< WMA pro LBR specific opaque data (don’t care for others) */
+    OMX_U32 nChannelMask;             /**< Output channel configuration; used only when down mixing
+                                           is enabled. Channel mask for stereo down mix is 0x03. */
+} OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE;
+
+/** AMR configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE structure is used to set or query
+the AMR codec related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.AMRMode".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode;
+} OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE;
+
+/** SBC configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE structure is used to set or query
+the SBC codec related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.SBCBitpool".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nNewBitPool; 
+} OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE;
+
+/** iLBC params.
+
+The OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE structure is used to set or query
+the iLBC codec related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.ILBC".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;            
+    OMX_U32 nFrameLength;
+    OMX_BOOL bIsDTXCNGSupported;
+    OMX_BOOL bDTXCNGSelected;                       
+    OMX_BOOL bPLCSelected;                                                                       
+} OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE;
+
+/** iLBC configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE structure is used to set or query
+the iLBC codec related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.ILBCFrame".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nFrameLength; 
+} OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE;
+
+/** G.711 params.
+
+The OMX_SYMBIAN_AUDIO_PARAM_G711TYPE structure is used to set or query
+the G.711 codec related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.G711".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_G711TYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex; 
+    OMX_BOOL bIsDTXCNGSupported;
+    OMX_BOOL bIsPLCSupported;       
+    OMX_BOOL bDTXCNGEnabled;           
+    OMX_BOOL bPLCEnabled;
+    OMX_U32  nFrameLength;                                                                     
+} OMX_SYMBIAN_AUDIO_PARAM_G711TYPE;
+
+/*@}*/
+
+/** @name Audio Capture Extensions */
+
+/*@{*/
+
+/*@}*/
+
+/** @name Audio Rendering Extensions */
+
+/*@{*/
+
+/** Mixer port pause config.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE structure is used to set or query
+the mixer/splitter related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.PortPause".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bIsPaused;
+} OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE;
+
+/** Mixer port synchronized param.
+
+The OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE structure is used to set or query
+the mixer/splitter related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.Synchronized".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bIsSynchronized;
+} OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE;
+
+/** Output transducer setting for 3D. */
+typedef enum OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE {
+    OMX_SYMBIAN_AUDIO_3DOutputHeadphones,	    /**< Positional 3D audio for headphones */
+    OMX_SYMBIAN_AUDIO_3DOutputLoudspeakers,   /**< Positional 3D audio for two closely spaced loudspeakers */
+    OMX_SYMBIAN_AUDIO_3DOutputMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE;
+
+/** Output transducer setting for 3D.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DOutput".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE e3DOutputType;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE;
+
+/** 3D location setting.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DLocation".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_S32 nX;
+    OMX_S32 nY;
+    OMX_S32 nZ;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE;
+
+/** Doppler effect mode for 3D.
+
+The OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE structure is used to set or query
+the 3D mixer related parameters. The setting can be changed using
+the OMX_SetParam() function, and the current state can be queried using 
+the OMX_GetParam() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Param.Audio.3DDopplerMode".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnabled;
+} OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE;
+
+/** Doppler effect settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DDopplerSettings".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nSoundSpeed;
+    OMX_S32 nSourceVelocity;
+    OMX_S32 nListenerVelocity;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE;
+
+/** 3D mixer level settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DLevels".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BS32 sDirectLevel;
+    OMX_BS32 sRoomLevel;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE;
+
+/** Distance attenuation roll-off model setting for 3D. */
+typedef enum OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE {
+    OMX_SYMBIAN_AUDIO_RollOffExponential,
+    OMX_SYMBIAN_AUDIO_RollOffLinear,
+    OMX_SYMBIAN_AUDIO_RollOffMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE;
+
+/** 3D mixer distance attenuation.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DDistanceAttenuation".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BS32 sMinDistance;
+    OMX_BS32 sMaxDistance;
+    OMX_BS32 sRollOffFactor;
+    OMX_BS32 sRoomRollOffFactor;
+    OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE eRollOffModel;
+    OMX_BOOL bMuteAfterMax;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE;
+
+/** 3D mixer directivity settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DDirectivitySettings".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BS32 sInnerAngle;
+    OMX_BS32 sOuterAngle;
+    OMX_BS32 sOuterLevel;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE;
+
+/** 3D mixer orientation setting for the directivity effect.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DDirectivityOrientation".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_S32 nXFront;
+    OMX_S32 nYFront;
+    OMX_S32 nZFront;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE;
+
+/** 3D mixer orientation setting for the macroscopic effect.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DMacroscopicOrientation".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_S32 nXFront;
+    OMX_S32 nYFront;
+    OMX_S32 nZFront;
+    OMX_S32 nXAbove;
+    OMX_S32 nYAbove;
+    OMX_S32 nZAbove;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE;
+
+/** 3D mixer macroscopic effect size setting.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE structure is used to set or query
+the 3D mixer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.3DMacroscopicSize".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_S32 nWidth;
+    OMX_S32 nHeight;
+    OMX_S32 nDepth;
+} OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE;
+
+
+
+/** Audio virtualizer transducer type */
+typedef enum OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE {
+    OMX_SYMBIAN_AUDIO_VirtualizerLoudspeakers,    /**< Loudspeakers */
+    OMX_SYMBIAN_AUDIO_VirtualizerHeadphones,      /**< Headphones */
+    OMX_SYMBIAN_AUDIO_VirtualizerMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE;
+
+/** Virtualizer mode setting.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE structure is used to set or query
+the Virtualizer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.Virtualizer".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE eVirtualizationType;
+    OMX_U32 nVirtualizationStrength;
+} OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE;
+
+/** Virtualizer loudspeaker angle setting.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE structure is used to set or query
+the Virtualizer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.VirtualizerLoudspeaker".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nListeningAngle;
+} OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE;
+
+/** Audio visualizer mode type */
+typedef enum OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE {
+    OMX_SYMBIAN_AUDIO_VisualizationPresetNone,
+    OMX_SYMBIAN_AUDIO_VisualizationPresetWaveform,
+    OMX_SYMBIAN_AUDIO_VisualizationPresetSpectrum,
+    OMX_SYMBIAN_AUDIO_VisualizationPresetWaveformAndSpectrum,
+    OMX_SYMBIAN_AUDIO_VisualizationPresetMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE;
+
+/** Audio visualizer mode setting.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE structure is used to set or query
+the Audio visualizer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.Visualization".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE ePreset;
+    OMX_BU32 sRate;
+} OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE;
+
+/** Audio visualizer settings for the spectral mode.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE structure is used to set or query
+the Audio visualizer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.VisualizationSpectral".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BU32 sBandIndex;
+    OMX_BU32 sCenterFreq;
+    OMX_U32 nType;
+} OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE;
+
+/** Audio visualizer settings for the waveform mode.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE structure is used to set or query
+the Audio visualizer related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.VisualizationWaveform".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BU32 sWaveformLength;
+} OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE;
+
+/*@}*/
+
+/** @name Audio Transducer Processing Extensions */
+
+/*@{*/
+
+/** Equalizer filter type */
+typedef enum OMX_SYMBIAN_AUDIO_FILTERTYPE {
+    OMX_SYMBIAN_AUDIO_FilterNotDefined,   
+    OMX_SYMBIAN_AUDIO_FilterPeaking,	
+    OMX_SYMBIAN_AUDIO_FilterLowpass,	
+    OMX_SYMBIAN_AUDIO_FilterHighpass,
+    OMX_SYMBIAN_AUDIO_FilterLowshelf,	
+    OMX_SYMBIAN_AUDIO_FilterHighshelf,
+    OMX_SYMBIAN_AUDIO_FilterMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_FILTERTYPE;
+
+/** IIR Transducer EQ settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_IIREQUALIZERTYPE structure is used to set or query
+the Transducer EQ related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.IIREqualizer".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_IIREQTYPE  {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;  
+    OMX_U32 nPortIndex;
+    OMX_U32 nChannel;
+    OMX_BU32 sBandIndex ; 
+    OMX_SYMBIAN_AUDIO_FILTERTYPE eFilterType;
+    OMX_U32 nFilterCenterCutoffFrequency;
+    OMX_S32 nFilterGain;
+    OMX_U32 nFilterBandwidth; 
+} OMX_SYMBIAN_AUDIO_CONFIG_IIREQTYPE;
+
+
+/** The maximum number of frequency response points for the FIR EQ */
+#define OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS 100
+
+/** FIR Transducer EQ configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE structure is used to set or query
+the Transducer EQ related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.FIRResponse".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;  
+    OMX_U32 nPortIndex;
+    OMX_U32 nChannel;
+    OMX_U32 nFrequencyPoints; 
+    OMX_S32 nFrequencies[OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS];
+    OMX_S32 nGains[OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS];
+} OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE;
+
+/** Phase response enum */
+typedef enum OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE {
+    OMX_SYMBIAN_AUDIO_PhaseNotDefined,   
+    OMX_SYMBIAN_AUDIO_LinearPhase,	
+    OMX_SYMBIAN_AUDIO_MinimumPhase,
+} OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE;
+
+/** Transducer EQ main settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE structure is used to set or query
+the Transducer EQ related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.TransducerEqualizer".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;            
+    OMX_BOOL bEnableFir;
+    OMX_BOOL bEnableIir;
+    OMX_U32 nChannel;
+    OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE ePhaseResponseTargetFir;
+    OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE ePhaseResponseTargetIir;
+    OMX_U32 nIIREqualizerBlocks;
+    OMX_U32 nIIREqualizerGain;
+} OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE;
+
+/** Multi-band DRC settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE structure is used to set or query
+the MDRC related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.MDRC".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nChannel;	
+    OMX_BOOL bEnable;
+    OMX_BU32 sBandIndex;
+    OMX_BU32 sBandRange;
+    OMX_BU32 sBandLevel;
+    OMX_BU32 sKneePoints;	
+    OMX_U32 nDynamicResponse[10][2];
+    OMX_BU32 sAttackTime; 
+    OMX_BU32 sReleaseTime;	    
+} OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE;
+
+/** Transducer protection settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE structure is used to set or query
+the Transducer protection related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.LSProtection".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_AUDIO_CHANNELTYPE eChannel;
+    OMX_BOOL bEnable;
+} OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE;
+
+/** Transducer SPL limiting mode*/
+typedef enum OMX_SYMBIAN_AUDIO_SPLLIMITTYPE {
+    OMX_SYMBIAN_AUDIO_SPLLimitation,	
+    OMX_SYMBIAN_AUDIO_SPLNormalization,	
+    OMX_SYMBIAN_AUDIO_SPLMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_SPLLIMITTYPE;
+
+/** SPL Limiter configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE structure is used to set or query
+the SPL Limiter related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.SPLLimit".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_SYMBIAN_AUDIO_SPLLIMITTYPE eMode;
+    OMX_S32 nSplLimit;
+    OMX_S32 nGain;	    
+} OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE;
+
+/** Click Removal settings.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE structure is used to set or query
+the Click Removal related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.ClickRemoval".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_BU32 sClickControl;
+} OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE;
+
+/** APSSAS configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE structure is used to set or query
+the APSSAS related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.BatteryVoltage".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nBattVol;
+} OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE;
+
+/*@}*/
+
+/** HDMI related configuration structure. */
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_HDMITYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nSubFrameSize;
+    OMX_U32 nVaildBitsPerSample;
+    OMX_U32 nQFormat;
+} OMX_SYMBIAN_AUDIO_PARAM_HDMITYPE;
+
+
+/** Tone generation mode enum. */
+typedef enum OMX_SYMBIAN_AUDIO_TONEGENTONETYPE { 
+    OMX_SYMBIAN_AUDIO_TonegenNormal,  /**< Normal Tone */ 
+    OMX_SYMBIAN_AUDIO_TonegenDtmf,    /**< DTMF Tone */ 
+    OMX_SYMBIAN_AUDIO_TonegenMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_TONEGENTONETYPE; 
+
+/** Tone generator configs.
+
+The OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE structure is used to set or query
+the Tone generator related configurations. The setting can be changed using
+the OMX_SetConfig() function, and the current state can be queried using 
+the OMX_GetConfig() function. When calling either function, the index 
+specified for this structure is retrieved using OMX_GetExtensionIndex()
+with the extension string "OMX.Symbian.Index.Config.Audio.ToneGenerator".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_SYMBIAN_AUDIO_TONEGENTONETYPE eTonetype;
+    OMX_U32 nFrequency[2];
+    OMX_U32 nDigit;
+} OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE;
+
+/*@}*/
+
+/** @name Audio Telephony Extensions */
+
+/*@{*/
+
+/** Speech decoder status information.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.DecoderStatus".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_DECODERSTATUSTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion ;
+    OMX_AUDIO_CODINGTYPE nCoding;
+    OMX_U32 nBitrate;
+} OMX_SYMBIAN_AUDIO_CONFIG_DECODERSTATUSTYPE;
+
+/** Speech encoder status information.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.EncoderStatus".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ENCODERSTATUSTYPE { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion ;
+    OMX_AUDIO_CODINGTYPE nCoding;
+    OMX_U32 nBitrate;
+    OMX_BOOL bDtx;
+    OMX_BOOL bAudioActivityControl;
+    OMX_BOOL bNsync;
+} OMX_SYMBIAN_AUDIO_CONFIG_ENCODERSTATUSTYPE;
+
+/** Uplink timing control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.UplinkTiming".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGTYPE { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nDeliveryTime;
+    OMX_U32 nModemProcessingTime;
+} OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGTYPE;
+
+/** RF-TX Power information.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.RFTxPower".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_RFTXPOWERTYPE { 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPower;
+    OMX_U32 nTime;
+} OMX_SYMBIAN_AUDIO_CONFIG_RFTXPOWERTYPE;
+
+/** Uplink timing information.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.UplinkTimingInfo".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGINFOTYPE { 
+     OMX_U32 nSize;
+     OMX_VERSIONTYPE nVersion;
+     OMX_S32 nMaxTime;
+     OMX_S32 nAverageTime;
+     OMX_S32 nMinTime;
+} OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGINFOTYPE;
+
+/** Uplink delay information.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.UplinkDelayInfo".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKDELAYINFOTYPE { 
+     OMX_U32 nSize;
+     OMX_VERSIONTYPE nVersion;
+     OMX_S32 nMaxDelay;
+     OMX_S32 nAverageDelay;
+     OMX_S32 nMinDelay;
+} OMX_SYMBIAN_AUDIO_CONFIG_UPLINKDELAYINFOTYPE;
+
+/** Acoustic echo control configuration parameters.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.AcousticEchoControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ACOUSTICECHOCONTROLTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_S32 sEchoGain;
+    OMX_U32 nEchoMinDelay;
+    OMX_U32 nEchoMaxDelay;
+} OMX_SYMBIAN_AUDIO_CONFIG_ACOUSTICECHOCONTROLTYPE;
+
+/** Artificial bandwidth expansion configuration parameters.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.BandwidthExpansion".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BANDWIDTHEXPANSIONTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_BU32 nStrength;
+} OMX_SYMBIAN_AUDIO_CONFIG_BANDWIDTHEXPANSIONTYPE;
+
+/**  Background noise control configuration parameters.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.BackgroundNoiseControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BACKGROUNDNOISECONTROLTYPE { 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;            
+    OMX_BOOL bEnable;
+    OMX_BU32 nAttenuation;
+} OMX_SYMBIAN_AUDIO_CONFIG_BACKGROUNDNOISECONTROLTYPE;
+
+/** Downlink noise control configuration parameters.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.DownLinkNoiseControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_DOWNLINKNOISECONTROLTYPE { 
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;            
+    OMX_BOOL bEnable;
+    OMX_BU32 nStrength;
+} OMX_SYMBIAN_AUDIO_CONFIG_DOWNLINKNOISECONTROLTYPE;
+
+/** Wind noise control configuration parameters.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.WindNoiseControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_WINDNOISECONTROLTYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_BOOL bEnable;
+    OMX_BU32 nSensitivity;
+} OMX_SYMBIAN_AUDIO_CONFIG_WINDNOISECONTROLTYPE;
+
+
+/** Downlink speech information extra data type. */
+typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_DLSPEECHINFOTYPE {
+    OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
+    OMX_BOOL bComfortNoiseFrame;
+    OMX_BOOL bCorruptedFrame;
+} OMX_SYMBIAN_AUDIO_EXTRADATA_DLSPEECHINFOTYPE;
+
+/** DA-AD timing difference information extra data type. */
+typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_DAADTIMINGDIFFTYPE {
+    OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
+    OMX_TICKS nDaAdTimingDifference;
+} OMX_SYMBIAN_AUDIO_EXTRADATA_DAADTIMINGDIFFTYPE;
+
+/** Voice Activity Detection information extra data type. */
+typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_VADINFOTYPE {
+    OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
+    OMX_BOOL bUplinkVad;
+    OMX_BOOL bDownlinkVad;
+} OMX_SYMBIAN_AUDIO_EXTRADATA_VADINFOTYPE;
+
+/** Audio tuning data type.
+
+Audio tuning data type is used for passing tuning parameters via the OpenMAX IL 
+component API to audio algorithms. The audio tuning parameters form an opaque 
+data block, which only the sender and the algorithm understand.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.TuningData".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TUNINGDATATYPE {
+    OMX_U32 nSize;
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nChannel;
+    OMX_U8 nData[1];
+} OMX_SYMBIAN_AUDIO_CONFIG_TUNINGDATATYPE;
+
+/** Speech path loops control type.
+
+Loop control for speech signal path.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.SpeechLoops".
+*/
+
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SPEECHLOOPSTYPE { 
+     OMX_U32 nSize;
+     OMX_VERSIONTYPE nVersion;
+     OMX_BOOL bLoopUplinkDownlink;
+     OMX_BOOL bLoopUplinkDownlinkAlg;
+     OMX_BOOL bLoopDownlinkUplink;
+     OMX_BOOL bLoopDownlinkUplinkAlg;
+} OMX_SYMBIAN_AUDIO_CONFIG_SPEECHLOOPSTYPE;
+
+/**  Sidetone attenuation info type.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string "OMX.Symbian.Index.Config.Audio.SidetoneAttenuationInfo"
+*/
+typedef OMX_AUDIO_CONFIG_VOLUMETYPE OMX_AUDIO_CONFIG_SIDETONEATTENUATIONINFOTYPE;
+
+/**  Volume info type.
+
+This struct can be used to control sidetone attenuation.
+
+This data structure is currently used for reading volume info with extension string 
+  "OMX.Symbian.Index.Config.Audio.VolumeInfo"
+*/
+typedef OMX_AUDIO_CONFIG_VOLUMETYPE OMX_AUDIO_CONFIG_VOLUMEINFOTYPE;
+
+
+/*@}*/
+
+/** @name Audio HW Control Extensions */
+
+/*@{*/
+
+/** Audio power control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.Power".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_POWERTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;            
+    OMX_U32 nChannel;
+    OMX_BOOL bPower;
+} OMX_SYMBIAN_AUDIO_CONFIG_POWERTYPE;
+
+/** Audio volume ramp control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.VolumeRamp".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VOLUMERAMPTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;            
+    OMX_U32 nChannel;
+    OMX_BOOL bLinear;
+    OMX_BS32 sStartVolume;
+    OMX_BS32 sEndVolume;
+    OMX_TICKS nRampDuration;
+    OMX_BOOL bRampTerminate;
+    OMX_BS32 sCurrentVolume;
+    OMX_TICKS nRampCurrentTime;
+    OMX_TICKS nRampMinDuration;
+    OMX_TICKS nRampMaxDuration;
+    OMX_U32 nVolumeStep;
+} OMX_SYMBIAN_AUDIO_CONFIG_VOLUMERAMPTYPE;
+
+/** Audio register bank query.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.RegisterBankQuery".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKQUERYTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;   
+    OMX_U16 nNumRegisterBanks;           
+} OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKQUERYTYPE;
+
+
+typedef enum OMX_SYMBIAN_AUDIO_HWREGISTERTYPE { 
+    OMX_SYMBIAN_AUDIO_RegisterIO = 0,
+    OMX_SYMBIAN_AUDIO_RegisterI2C,
+    OMX_SYMBIAN_AUDIO_RegisterSlimbus,
+    OMX_SYMBIAN_AUDIO_RegisterCBUS = 0xFFFF,
+    OMX_SYMBIAN_AUDIO_RegisterMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_HWREGISTERTYPE;
+ 
+typedef struct OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nRegBankIndex;   
+    OMX_U32 nLogicalStartAddr;
+    OMX_U32 nLogicalEndAddr;
+    OMX_SYMBIAN_AUDIO_HWREGISTERTYPE eRegBankType;
+} OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE;
+
+/** Audio register bank table control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.RegisterBankTable".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKTABLETYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;   
+    OMX_U16 nNumRegisterBanks; 
+    OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE RegBankDescriptorTable;     
+} OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKTABLETYPE;
+
+
+typedef enum OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE { 
+    OMX_SYMBIAN_AUDIO_HWCtrlStatusOk = 0,
+    OMX_SYMBIAN_AUDIO_HWCtrlStatusFail,
+    /* if callback facility is somehow solved in OpenMAX IL for getconfig/setconfig parameter calls, it is expected */
+    /* to have here extra status information that can be returned for e.g. multi-read/write commands */
+    OMX_SYMBIAN_AUDIO_HWCtrlStatusNotSupported = 0xFFFF,
+    OMX_SYMBIAN_AUDIO_HWCtrlStatusMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE;
+
+typedef enum OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE { 
+    OMX_SYMBIAN_AUDIO_HWOperationNoOp = 0,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitSingleRead,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitSingleWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitSingleRead,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitSingleWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitSingleRead,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitSingleWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitMultiWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitMultiWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitMultiWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitBurstMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation8BitBurstMultiWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitBurstMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation16BitBurstMultiWrite,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitBurstMultiRead,
+    OMX_SYMBIAN_AUDIO_HWOperation32BitBurstMultiWrite = 0xFFFF,
+    OMX_SYMBIAN_AUDIO_HWOperationMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE;
+
+/** Custom audio HW control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.CustomHwControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;   
+    OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE eStatus;
+    OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE eHwOperation;
+    OMX_SYMBIAN_AUDIO_HWREGISTERTYPE eRegisterType;
+    OMX_U16 nDataCount;
+    OMX_U8 nAddressDataSequence[1];   
+} OMX_SYMBIAN_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE;
+
+
+typedef enum OMX_SYMBIAN_AUDIO_HWLOOPTYPE { 
+    OMX_SYMBIAN_AUDIO_HWLoopNone = 0,
+    OMX_SYMBIAN_AUDIO_HWLoopSidetone = 0xFFFF,
+    /* rest of HW loops are to be defined on a vendor specific basis */
+    OMX_SYMBIAN_AUDIO_HWLoopMax = 0x7FFFFFFF
+} OMX_SYMBIAN_AUDIO_HWLOOPTYPE;
+
+/** Audio HW loop support query.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.HwLoopSupport".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPSUPPORTTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;
+    OMX_U32 nSupportedLoops;    
+    OMX_SYMBIAN_AUDIO_HWLOOPTYPE eLoopIndex;
+} OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPSUPPORTTYPE;
+
+/** Audio HW loop control.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Config.Audio.HwLoopControl".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPCONTROLTYPE  { 
+    OMX_U32 nSize;                                    
+    OMX_VERSIONTYPE nVersion;                   
+    OMX_U32 nPortIndex;   
+    OMX_SYMBIAN_AUDIO_HWLOOPTYPE eLoopIndex;
+    OMX_U32 nChannel;
+    OMX_BOOL bControlSwitch;
+    OMX_BOOL bLinear;
+    OMX_BS32 sLoopVolume;
+} OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPCONTROLTYPE;
+
+/*@}*/
+
+/** @name Haptics Extensions */
+
+/*@{*/
+
+/** Haptics driver properties query.
+
+The index specified for this structure is retrieved using 
+OMX_GetExtensionIndex() with the extension string 
+"OMX.Symbian.Index.Param.Audio.HapticsDriverProperties".
+*/
+typedef struct OMX_SYMBIAN_AUDIO_PARAM_HAPTICSDRIVERPROPERTIESTYPE 
+{
+    OMX_U32 nSize;	
+    OMX_VERSIONTYPE nVersion;
+    OMX_U32 nPortIndex;
+    OMX_U32 nNativeSamplingRate;
+    OMX_U32 nHapticsDriverNominalVoltage;    
+    OMX_U32 nHapticsDriverImpedance;		 
+} OMX_SYMBIAN_AUDIO_PARAM_HAPTICSDRIVERPROPERTIESTYPE;
+
+/*@}*/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OMX_Symbian_AudioExt_h */