omxil/omxilapi/shai/OMX_Symbian_AudioExt.h
branchOpenMAX-IL_SHAI
changeset 16 eedf2dcd43c6
equal deleted inserted replaced
15:c1e808730d6c 16:eedf2dcd43c6
       
     1 /*
       
     2   OMX_Symbian_AudioExt.h
       
     3   
       
     4   Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
       
     5   All rights reserved.
       
     6 
       
     7   This program and the accompanying materials are made available 
       
     8   under the terms of the Eclipse Public License v1.0 which accompanies 
       
     9   this distribution, and is available at 
       
    10   http://www.eclipse.org/legal/epl-v10.html
       
    11 
       
    12   Initial Contributors:
       
    13   Nokia Corporation - initial contribution.
       
    14 */
       
    15 
       
    16 /** @file
       
    17 @brief Symbian OpenMAX IL Extension Data Structures in the Audio Domain.
       
    18 
       
    19 This file contains the extension structures for the Symbian IL extensions that
       
    20 pertain to audio components.
       
    21 
       
    22 @publishedDeviceAbstraction
       
    23 */
       
    24 
       
    25 #ifndef OMX_Symbian_AudioExt_h
       
    26 #define OMX_Symbian_AudioExt_h
       
    27 
       
    28 #ifdef __cplusplus
       
    29 extern "C" {
       
    30 #endif /* __cplusplus */
       
    31 
       
    32 /* Each OMX header must include all required header files to allow the
       
    33  * header to compile without errors.  The includes below are required
       
    34  * for this header file to compile successfully 
       
    35  */
       
    36 #include <OMX_Types.h>
       
    37 #include <OMX_Audio.h>
       
    38 #include <OMX_Symbian_OtherExt.h>
       
    39 
       
    40 
       
    41 /** @name Generic Audio Control Definitions. */
       
    42 
       
    43 /*@{*/
       
    44 
       
    45 /**  Simple effect enable/disable switch control.
       
    46 
       
    47 This struct can be used to control all effects that only require an on/off
       
    48 type of control.
       
    49 
       
    50 This data structure is currently used for:
       
    51 - Earpiece Active Noise Control (EANC) settings with extension string 
       
    52   "OMX.Symbian.Index.Config.Audio.EANC"
       
    53 - Algorithm for Preventing System Shutdown by Audio System (APSSAS) params
       
    54   with extension string "OMX.Symbian.Index.Param.Audio.APSSAS".
       
    55 - Uplink algorithms configuration parameters with extension string 
       
    56   "OMX.Symbian.Index.Config.Audio.UplinkAlgorithms".
       
    57 - Downlink algorithms configuration parameters with extension string 
       
    58   "OMX.Symbian.Index.Config.Audio.DownlinkAlgorithms".
       
    59 - Automatic volume control configuration parameters with extension string 
       
    60   "OMX.Symbian.Index.Config.Audio.AutomaticVolumeControl".
       
    61 - Comfort noise generation configuration parameters with extension string 
       
    62   "OMX.Symbian.Index.Config.Audio.ComfortNoiseGeneration".
       
    63 - Multimicrophone noise control configuration parameters with extension string 
       
    64   "OMX.Symbian.Index.Config.Audio.MultiMicrophoneNoiseControl".
       
    65 - Transducer dynamic range control (DRC) configuration parameters with extension string 
       
    66   "OMX.Symbian.Index.Config.Audio.TransducerDRC".
       
    67 - Uplink level normalization configuration parameters with extension string 
       
    68   "OMX.Symbian.Index.Config.Audio.UplinkLevelNormalization".
       
    69 - Voice clarity configuration parameters with extension string 
       
    70   "OMX.Symbian.Index.Config.Audio.VoiceClarity".
       
    71 - Sidetone howling control configuration parameters with extension string
       
    72   "OMX.Symbian.Index.Config.Audio.SidetoneHowlingControl"
       
    73 - Automatic gain control configuration parameters with extension string 
       
    74   "OMX.Symbian.Index.Config.Audio.AutomaticGainControl".
       
    75 */
       
    76 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_EFFECTENABLETYPE { 
       
    77     OMX_U32 nSize;              /**< size of the structure in bytes */
       
    78     OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
       
    79     OMX_U32 nPortIndex;         /**< port that this structure applies to */
       
    80     OMX_BOOL bEnable;           /**< enable (OMX_TRUE) or disable (OMX_FALSE) the effect */
       
    81 } OMX_SYMBIAN_AUDIO_CONFIG_EFFECTENABLETYPE;
       
    82 
       
    83 /*@}*/
       
    84 
       
    85 /** @name Audio Codecs Extensions */
       
    86 
       
    87 /*@{*/
       
    88 
       
    89 /** WMA params.
       
    90 
       
    91 The OMX_AUDIO_PARAM_WMAAVGBYTESTYPE structure is used to set or query
       
    92 the WMA codec related parameters. The setting can be changed using
       
    93 the OMX_SetParam() function, and the current state can be queried using 
       
    94 the OMX_GetParam() function. When calling either function, the index 
       
    95 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
    96 with the extension string "OMX.Symbian.Index.Param.Audio.WMAAvgBytes".
       
    97 */
       
    98 typedef struct OMX_SYMBIAN_AUDIO_PARAM_WMAAVGBYTESTYPE { 
       
    99     OMX_U32 nSize; 
       
   100     OMX_VERSIONTYPE nVersion; 
       
   101     OMX_U32 nPortIndex;  
       
   102     OMX_U32 nAvgBytesPerSec;
       
   103 } OMX_SYMBIAN_AUDIO_PARAM_WMAAVGBYTESTYPE;
       
   104 
       
   105 /** The version of the Windows Media Audio Pro codec */
       
   106 typedef enum OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE {
       
   107     OMX_SYMBIAN_AUDIO_WMAPROFormatUnused,   /**< The version of the Windows Media audio codec is
       
   108                                                either not applicable or is unknown. */
       
   109     OMX_SYMBIAN_AUDIO_WMAPROFormat9,        /**< Windows Media Audio Pro version 9 */
       
   110     OMX_SYMBIAN_AUDIO_WMAPROFormat10,       /**< Windows Media Audio Pro version 10 */
       
   111     OMX_SYMBIAN_AUDIO_WMAPROFormatMax = 0x7FFFFFFF
       
   112 } OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE;
       
   113 
       
   114 /** The profile of the Windows Media Audio Pro codec */
       
   115 typedef enum OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE {
       
   116     OMX_SYMBIAN_AUDIO_WMAPROProfileUnused,  /**< The profile of the Windows Media Audio Pro codec is
       
   117                                                either not applicable or is unknown. */
       
   118     OMX_SYMBIAN_AUDIO_WMAPROProfileM0,      /**< Windows Media Audio Pro profile M0. */
       
   119     OMX_SYMBIAN_AUDIO_WMAPROProfileM1,      /**< Windows Media Audio Pro profile M1. */
       
   120     OMX_SYMBIAN_AUDIO_WMAPROProfileM2,      /**< Windows Media Audio Pro profile M2. */
       
   121     OMX_SYMBIAN_AUDIO_WMAPROProfileM3,      /**< Windows Media Audio Pro profile M3. */
       
   122     OMX_SYMBIAN_AUDIO_WMAPROProfileMax = 0x7FFFFFFF
       
   123 } OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE;
       
   124 
       
   125 /** WMA Pro params.
       
   126 
       
   127 The OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE structure is used to set or query
       
   128 the WMA pro codec related parameters. The setting can be changed using
       
   129 the OMX_SetParam() function, and the current state can be queried using 
       
   130 the OMX_GetParam() function. When calling either function, the index 
       
   131 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   132 with the extension string "OMX.Symbian.Index.Param.Audio.WMAPro".
       
   133 */
       
   134 typedef struct OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE {
       
   135     OMX_U32 nSize;                    /**< size of the structure in bytes */
       
   136     OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
       
   137     OMX_U32 nPortIndex;               /**< port that this structure applies to */
       
   138     OMX_U16 nChannels;                /**< Number of channels */
       
   139     OMX_U32 nBitRate;                 /**< Bit rate of the input data.  Use 0 for variable
       
   140                                            rate or unknown bit rates */
       
   141     OMX_SYMBIAN_AUDIO_WMAPROFORMATTYPE eFormat;     /**< The version of the Windows Media Audio Pro codec */
       
   142     OMX_SYMBIAN_AUDIO_WMAPROPROFILETYPE eProfile;   /**< The profile of the Windows Media Audio Pro codec */
       
   143     OMX_U32 nSamplingRate;            /**< Sampling rate of the source data. */
       
   144     OMX_U32 nBlockAlign;              /**< The block alignment, or block size (in bytes)
       
   145                                            of the audio codec */
       
   146     OMX_U32 nSuperBlockAlign;         /**< WMA Type specific data. It is used only by encoder 
       
   147                                                and is don’t care for decoder. */
       
   148     OMX_U32 nEncodeOptions;           /**< WMA Type specific opaque data */
       
   149     OMX_U32 nAdvancedEncodeOptions;   /**< WMA pro specific opaque data (don’t care for others) */
       
   150     OMX_U32 nAdvancedEncodeOptions2;  /**< WMA pro LBR specific opaque data (don’t care for others) */
       
   151     OMX_U32 nChannelMask;             /**< Output channel configuration; used only when down mixing
       
   152                                            is enabled. Channel mask for stereo down mix is 0x03. */
       
   153 } OMX_SYMBIAN_AUDIO_PARAM_WMAPROTYPE;
       
   154 
       
   155 /** AMR configs.
       
   156 
       
   157 The OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE structure is used to set or query
       
   158 the AMR codec related configurations. The setting can be changed using
       
   159 the OMX_SetConfig() function, and the current state can be queried using 
       
   160 the OMX_GetConfig() function. When calling either function, the index 
       
   161 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   162 with the extension string "OMX.Symbian.Index.Config.Audio.AMRMode".
       
   163 */
       
   164 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE {
       
   165     OMX_U32 nSize;
       
   166     OMX_VERSIONTYPE nVersion;
       
   167     OMX_U32 nPortIndex;
       
   168     OMX_AUDIO_AMRBANDMODETYPE eAMRBandMode;
       
   169 } OMX_SYMBIAN_AUDIO_CONFIG_AMRMODETYPE;
       
   170 
       
   171 /** SBC configs.
       
   172 
       
   173 The OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE structure is used to set or query
       
   174 the SBC codec related configurations. The setting can be changed using
       
   175 the OMX_SetConfig() function, and the current state can be queried using 
       
   176 the OMX_GetConfig() function. When calling either function, the index 
       
   177 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   178 with the extension string "OMX.Symbian.Index.Config.Audio.SBCBitpool".
       
   179 */
       
   180 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE {
       
   181     OMX_U32 nSize;
       
   182     OMX_VERSIONTYPE nVersion;
       
   183     OMX_U32 nPortIndex;
       
   184     OMX_U32 nNewBitPool; 
       
   185 } OMX_SYMBIAN_AUDIO_CONFIG_SBCBITPOOLTYPE;
       
   186 
       
   187 /** iLBC params.
       
   188 
       
   189 The OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE structure is used to set or query
       
   190 the iLBC codec related parameters. The setting can be changed using
       
   191 the OMX_SetParam() function, and the current state can be queried using 
       
   192 the OMX_GetParam() function. When calling either function, the index 
       
   193 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   194 with the extension string "OMX.Symbian.Index.Param.Audio.ILBC".
       
   195 */
       
   196 typedef struct OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE  { 
       
   197     OMX_U32 nSize;                                    
       
   198     OMX_VERSIONTYPE nVersion;                   
       
   199     OMX_U32 nPortIndex;            
       
   200     OMX_U32 nFrameLength;
       
   201     OMX_BOOL bIsDTXCNGSupported;
       
   202     OMX_BOOL bDTXCNGSelected;                       
       
   203     OMX_BOOL bPLCSelected;                                                                       
       
   204 } OMX_SYMBIAN_AUDIO_PARAM_ILBCTYPE;
       
   205 
       
   206 /** iLBC configs.
       
   207 
       
   208 The OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE structure is used to set or query
       
   209 the iLBC codec related configurations. The setting can be changed using
       
   210 the OMX_SetConfig() function, and the current state can be queried using 
       
   211 the OMX_GetConfig() function. When calling either function, the index 
       
   212 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   213 with the extension string "OMX.Symbian.Index.Config.Audio.ILBCFrame".
       
   214 */
       
   215 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE {
       
   216     OMX_U32 nSize;
       
   217     OMX_VERSIONTYPE nVersion;
       
   218     OMX_U32 nPortIndex;
       
   219     OMX_U32 nFrameLength; 
       
   220 } OMX_SYMBIAN_AUDIO_CONFIG_ILBCFRAMETYPE;
       
   221 
       
   222 /** G.711 params.
       
   223 
       
   224 The OMX_SYMBIAN_AUDIO_PARAM_G711TYPE structure is used to set or query
       
   225 the G.711 codec related parameters. The setting can be changed using
       
   226 the OMX_SetParam() function, and the current state can be queried using 
       
   227 the OMX_GetParam() function. When calling either function, the index 
       
   228 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   229 with the extension string "OMX.Symbian.Index.Param.Audio.G711".
       
   230 */
       
   231 typedef struct OMX_SYMBIAN_AUDIO_PARAM_G711TYPE  { 
       
   232     OMX_U32 nSize;                                    
       
   233     OMX_VERSIONTYPE nVersion;                   
       
   234     OMX_U32 nPortIndex; 
       
   235     OMX_BOOL bIsDTXCNGSupported;
       
   236     OMX_BOOL bIsPLCSupported;       
       
   237     OMX_BOOL bDTXCNGEnabled;           
       
   238     OMX_BOOL bPLCEnabled;
       
   239     OMX_U32  nFrameLength;                                                                     
       
   240 } OMX_SYMBIAN_AUDIO_PARAM_G711TYPE;
       
   241 
       
   242 /*@}*/
       
   243 
       
   244 /** @name Audio Capture Extensions */
       
   245 
       
   246 /*@{*/
       
   247 
       
   248 /*@}*/
       
   249 
       
   250 /** @name Audio Rendering Extensions */
       
   251 
       
   252 /*@{*/
       
   253 
       
   254 /** Mixer port pause config.
       
   255 
       
   256 The OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE structure is used to set or query
       
   257 the mixer/splitter related configurations. The setting can be changed using
       
   258 the OMX_SetConfig() function, and the current state can be queried using 
       
   259 the OMX_GetConfig() function. When calling either function, the index 
       
   260 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   261 with the extension string "OMX.Symbian.Index.Config.Audio.PortPause".
       
   262 */
       
   263 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE {
       
   264     OMX_U32 nSize;
       
   265     OMX_VERSIONTYPE nVersion;
       
   266     OMX_U32 nPortIndex;
       
   267     OMX_BOOL bIsPaused;
       
   268 } OMX_SYMBIAN_AUDIO_CONFIG_PORTPAUSETYPE;
       
   269 
       
   270 /** Mixer port synchronized param.
       
   271 
       
   272 The OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE structure is used to set or query
       
   273 the mixer/splitter related parameters. The setting can be changed using
       
   274 the OMX_SetParam() function, and the current state can be queried using 
       
   275 the OMX_GetParam() function. When calling either function, the index 
       
   276 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   277 with the extension string "OMX.Symbian.Index.Param.Audio.Synchronized".
       
   278 */
       
   279 typedef struct OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE {
       
   280     OMX_U32 nSize;
       
   281     OMX_VERSIONTYPE nVersion;
       
   282     OMX_U32 nPortIndex;
       
   283     OMX_BOOL bIsSynchronized;
       
   284 } OMX_SYMBIAN_AUDIO_PARAM_SYNCHRONIZEDTYPE;
       
   285 
       
   286 /** Output transducer setting for 3D. */
       
   287 typedef enum OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE {
       
   288     OMX_SYMBIAN_AUDIO_3DOutputHeadphones,	    /**< Positional 3D audio for headphones */
       
   289     OMX_SYMBIAN_AUDIO_3DOutputLoudspeakers,   /**< Positional 3D audio for two closely spaced loudspeakers */
       
   290     OMX_SYMBIAN_AUDIO_3DOutputMax = 0x7FFFFFFF
       
   291 } OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE;
       
   292 
       
   293 /** Output transducer setting for 3D.
       
   294 
       
   295 The OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE structure is used to set or query
       
   296 the 3D mixer related configurations. The setting can be changed using
       
   297 the OMX_SetConfig() function, and the current state can be queried using 
       
   298 the OMX_GetConfig() function. When calling either function, the index 
       
   299 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   300 with the extension string "OMX.Symbian.Index.Config.Audio.3DOutput".
       
   301 */
       
   302 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE {
       
   303     OMX_U32 nSize;
       
   304     OMX_VERSIONTYPE nVersion;
       
   305     OMX_U32 nPortIndex;
       
   306     OMX_SYMBIAN_AUDIO_3DOUTPUTTYPE e3DOutputType;
       
   307 } OMX_SYMBIAN_AUDIO_CONFIG_3DOUTPUTTYPE;
       
   308 
       
   309 /** 3D location setting.
       
   310 
       
   311 The OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE structure is used to set or query
       
   312 the 3D mixer related configurations. The setting can be changed using
       
   313 the OMX_SetConfig() function, and the current state can be queried using 
       
   314 the OMX_GetConfig() function. When calling either function, the index 
       
   315 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   316 with the extension string "OMX.Symbian.Index.Config.Audio.3DLocation".
       
   317 */
       
   318 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE {
       
   319     OMX_U32 nSize;
       
   320     OMX_VERSIONTYPE nVersion;
       
   321     OMX_U32 nPortIndex;
       
   322     OMX_S32 nX;
       
   323     OMX_S32 nY;
       
   324     OMX_S32 nZ;
       
   325 } OMX_SYMBIAN_AUDIO_CONFIG_3DLOCATIONTYPE;
       
   326 
       
   327 /** Doppler effect mode for 3D.
       
   328 
       
   329 The OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE structure is used to set or query
       
   330 the 3D mixer related parameters. The setting can be changed using
       
   331 the OMX_SetParam() function, and the current state can be queried using 
       
   332 the OMX_GetParam() function. When calling either function, the index 
       
   333 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   334 with the extension string "OMX.Symbian.Index.Param.Audio.3DDopplerMode".
       
   335 */
       
   336 typedef struct OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE {
       
   337     OMX_U32 nSize;
       
   338     OMX_VERSIONTYPE nVersion;
       
   339     OMX_U32 nPortIndex;
       
   340     OMX_BOOL bEnabled;
       
   341 } OMX_SYMBIAN_AUDIO_PARAM_3DDOPPLERMODETYPE;
       
   342 
       
   343 /** Doppler effect settings.
       
   344 
       
   345 The OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE structure is used to set or query
       
   346 the 3D mixer related configurations. The setting can be changed using
       
   347 the OMX_SetConfig() function, and the current state can be queried using 
       
   348 the OMX_GetConfig() function. When calling either function, the index 
       
   349 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   350 with the extension string "OMX.Symbian.Index.Config.Audio.3DDopplerSettings".
       
   351 */
       
   352 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE {
       
   353     OMX_U32 nSize;
       
   354     OMX_VERSIONTYPE nVersion;
       
   355     OMX_U32 nPortIndex;
       
   356     OMX_U32 nSoundSpeed;
       
   357     OMX_S32 nSourceVelocity;
       
   358     OMX_S32 nListenerVelocity;
       
   359 } OMX_SYMBIAN_AUDIO_CONFIG_3DDOPPLERSETTINGSTYPE;
       
   360 
       
   361 /** 3D mixer level settings.
       
   362 
       
   363 The OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE structure is used to set or query
       
   364 the 3D mixer related configurations. The setting can be changed using
       
   365 the OMX_SetConfig() function, and the current state can be queried using 
       
   366 the OMX_GetConfig() function. When calling either function, the index 
       
   367 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   368 with the extension string "OMX.Symbian.Index.Config.Audio.3DLevels".
       
   369 */
       
   370 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE {
       
   371     OMX_U32 nSize;
       
   372     OMX_VERSIONTYPE nVersion;
       
   373     OMX_U32 nPortIndex;
       
   374     OMX_BS32 sDirectLevel;
       
   375     OMX_BS32 sRoomLevel;
       
   376 } OMX_SYMBIAN_AUDIO_CONFIG_3DLEVELSTYPE;
       
   377 
       
   378 /** Distance attenuation roll-off model setting for 3D. */
       
   379 typedef enum OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE {
       
   380     OMX_SYMBIAN_AUDIO_RollOffExponential,
       
   381     OMX_SYMBIAN_AUDIO_RollOffLinear,
       
   382     OMX_SYMBIAN_AUDIO_RollOffMax = 0x7FFFFFFF
       
   383 } OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE;
       
   384 
       
   385 /** 3D mixer distance attenuation.
       
   386 
       
   387 The OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE structure is used to set or query
       
   388 the 3D mixer related configurations. The setting can be changed using
       
   389 the OMX_SetConfig() function, and the current state can be queried using 
       
   390 the OMX_GetConfig() function. When calling either function, the index 
       
   391 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   392 with the extension string "OMX.Symbian.Index.Config.Audio.3DDistanceAttenuation".
       
   393 */
       
   394 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE {
       
   395     OMX_U32 nSize;
       
   396     OMX_VERSIONTYPE nVersion;
       
   397     OMX_U32 nPortIndex;
       
   398     OMX_BS32 sMinDistance;
       
   399     OMX_BS32 sMaxDistance;
       
   400     OMX_BS32 sRollOffFactor;
       
   401     OMX_BS32 sRoomRollOffFactor;
       
   402     OMX_SYMBIAN_AUDIO_ROLLOFFMODELTYPE eRollOffModel;
       
   403     OMX_BOOL bMuteAfterMax;
       
   404 } OMX_SYMBIAN_AUDIO_CONFIG_3DDISTANCEATTENUATIONTYPE;
       
   405 
       
   406 /** 3D mixer directivity settings.
       
   407 
       
   408 The OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE structure is used to set or query
       
   409 the 3D mixer related configurations. The setting can be changed using
       
   410 the OMX_SetConfig() function, and the current state can be queried using 
       
   411 the OMX_GetConfig() function. When calling either function, the index 
       
   412 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   413 with the extension string "OMX.Symbian.Index.Config.Audio.3DDirectivitySettings".
       
   414 */
       
   415 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE {
       
   416     OMX_U32 nSize;
       
   417     OMX_VERSIONTYPE nVersion;
       
   418     OMX_U32 nPortIndex;
       
   419     OMX_BS32 sInnerAngle;
       
   420     OMX_BS32 sOuterAngle;
       
   421     OMX_BS32 sOuterLevel;
       
   422 } OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYSETTINGSTYPE;
       
   423 
       
   424 /** 3D mixer orientation setting for the directivity effect.
       
   425 
       
   426 The OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE structure is used to set or query
       
   427 the 3D mixer related configurations. The setting can be changed using
       
   428 the OMX_SetConfig() function, and the current state can be queried using 
       
   429 the OMX_GetConfig() function. When calling either function, the index 
       
   430 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   431 with the extension string "OMX.Symbian.Index.Config.Audio.3DDirectivityOrientation".
       
   432 */
       
   433 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE {
       
   434     OMX_U32 nSize;
       
   435     OMX_VERSIONTYPE nVersion;
       
   436     OMX_U32 nPortIndex;
       
   437     OMX_S32 nXFront;
       
   438     OMX_S32 nYFront;
       
   439     OMX_S32 nZFront;
       
   440 } OMX_SYMBIAN_AUDIO_CONFIG_3DDIRECTIVITYORIENTATIONTYPE;
       
   441 
       
   442 /** 3D mixer orientation setting for the macroscopic effect.
       
   443 
       
   444 The OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE structure is used to set or query
       
   445 the 3D mixer related configurations. The setting can be changed using
       
   446 the OMX_SetConfig() function, and the current state can be queried using 
       
   447 the OMX_GetConfig() function. When calling either function, the index 
       
   448 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   449 with the extension string "OMX.Symbian.Index.Config.Audio.3DMacroscopicOrientation".
       
   450 */
       
   451 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE {
       
   452     OMX_U32 nSize;
       
   453     OMX_VERSIONTYPE nVersion;
       
   454     OMX_U32 nPortIndex;
       
   455     OMX_S32 nXFront;
       
   456     OMX_S32 nYFront;
       
   457     OMX_S32 nZFront;
       
   458     OMX_S32 nXAbove;
       
   459     OMX_S32 nYAbove;
       
   460     OMX_S32 nZAbove;
       
   461 } OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICORIENTATIONTYPE;
       
   462 
       
   463 /** 3D mixer macroscopic effect size setting.
       
   464 
       
   465 The OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE structure is used to set or query
       
   466 the 3D mixer related configurations. The setting can be changed using
       
   467 the OMX_SetConfig() function, and the current state can be queried using 
       
   468 the OMX_GetConfig() function. When calling either function, the index 
       
   469 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   470 with the extension string "OMX.Symbian.Index.Config.Audio.3DMacroscopicSize".
       
   471 */
       
   472 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE {
       
   473     OMX_U32 nSize;
       
   474     OMX_VERSIONTYPE nVersion;
       
   475     OMX_U32 nPortIndex;
       
   476     OMX_S32 nWidth;
       
   477     OMX_S32 nHeight;
       
   478     OMX_S32 nDepth;
       
   479 } OMX_SYMBIAN_AUDIO_CONFIG_3DMACROSCOPICSIZETYPE;
       
   480 
       
   481 
       
   482 
       
   483 /** Audio virtualizer transducer type */
       
   484 typedef enum OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE {
       
   485     OMX_SYMBIAN_AUDIO_VirtualizerLoudspeakers,    /**< Loudspeakers */
       
   486     OMX_SYMBIAN_AUDIO_VirtualizerHeadphones,      /**< Headphones */
       
   487     OMX_SYMBIAN_AUDIO_VirtualizerMax = 0x7FFFFFFF
       
   488 } OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE;
       
   489 
       
   490 /** Virtualizer mode setting.
       
   491 
       
   492 The OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE structure is used to set or query
       
   493 the Virtualizer related configurations. The setting can be changed using
       
   494 the OMX_SetConfig() function, and the current state can be queried using 
       
   495 the OMX_GetConfig() function. When calling either function, the index 
       
   496 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   497 with the extension string "OMX.Symbian.Index.Config.Audio.Virtualizer".
       
   498 */
       
   499 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE {
       
   500     OMX_U32 nSize;
       
   501     OMX_VERSIONTYPE nVersion;
       
   502     OMX_U32 nPortIndex;
       
   503     OMX_BOOL bEnable;
       
   504     OMX_SYMBIAN_AUDIO_VIRTUALIZERTYPE eVirtualizationType;
       
   505     OMX_U32 nVirtualizationStrength;
       
   506 } OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERTYPE;
       
   507 
       
   508 /** Virtualizer loudspeaker angle setting.
       
   509 
       
   510 The OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE structure is used to set or query
       
   511 the Virtualizer related configurations. The setting can be changed using
       
   512 the OMX_SetConfig() function, and the current state can be queried using 
       
   513 the OMX_GetConfig() function. When calling either function, the index 
       
   514 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   515 with the extension string "OMX.Symbian.Index.Config.Audio.VirtualizerLoudspeaker".
       
   516 */
       
   517 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE {
       
   518     OMX_U32 nSize;
       
   519     OMX_VERSIONTYPE nVersion;
       
   520     OMX_U32 nPortIndex;
       
   521     OMX_U32 nListeningAngle;
       
   522 } OMX_SYMBIAN_AUDIO_CONFIG_VIRTUALIZERLOUDSPEAKERTYPE;
       
   523 
       
   524 /** Audio visualizer mode type */
       
   525 typedef enum OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE {
       
   526     OMX_SYMBIAN_AUDIO_VisualizationPresetNone,
       
   527     OMX_SYMBIAN_AUDIO_VisualizationPresetWaveform,
       
   528     OMX_SYMBIAN_AUDIO_VisualizationPresetSpectrum,
       
   529     OMX_SYMBIAN_AUDIO_VisualizationPresetWaveformAndSpectrum,
       
   530     OMX_SYMBIAN_AUDIO_VisualizationPresetMax = 0x7FFFFFFF
       
   531 } OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE;
       
   532 
       
   533 /** Audio visualizer mode setting.
       
   534 
       
   535 The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE structure is used to set or query
       
   536 the Audio visualizer related configurations. The setting can be changed using
       
   537 the OMX_SetConfig() function, and the current state can be queried using 
       
   538 the OMX_GetConfig() function. When calling either function, the index 
       
   539 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   540 with the extension string "OMX.Symbian.Index.Config.Audio.Visualization".
       
   541 */
       
   542 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE {
       
   543     OMX_U32 nSize;
       
   544     OMX_VERSIONTYPE nVersion;
       
   545     OMX_U32 nPortIndex;
       
   546     OMX_BOOL bEnable;
       
   547     OMX_SYMBIAN_AUDIO_VISUALIZATIONTYPE ePreset;
       
   548     OMX_BU32 sRate;
       
   549 } OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONTYPE;
       
   550 
       
   551 /** Audio visualizer settings for the spectral mode.
       
   552 
       
   553 The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE structure is used to set or query
       
   554 the Audio visualizer related configurations. The setting can be changed using
       
   555 the OMX_SetConfig() function, and the current state can be queried using 
       
   556 the OMX_GetConfig() function. When calling either function, the index 
       
   557 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   558 with the extension string "OMX.Symbian.Index.Config.Audio.VisualizationSpectral".
       
   559 */
       
   560 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE {
       
   561     OMX_U32 nSize;
       
   562     OMX_VERSIONTYPE nVersion;
       
   563     OMX_U32 nPortIndex;
       
   564     OMX_BU32 sBandIndex;
       
   565     OMX_BU32 sCenterFreq;
       
   566     OMX_U32 nType;
       
   567 } OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONSPECTRALTYPE;
       
   568 
       
   569 /** Audio visualizer settings for the waveform mode.
       
   570 
       
   571 The OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE structure is used to set or query
       
   572 the Audio visualizer related configurations. The setting can be changed using
       
   573 the OMX_SetConfig() function, and the current state can be queried using 
       
   574 the OMX_GetConfig() function. When calling either function, the index 
       
   575 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   576 with the extension string "OMX.Symbian.Index.Config.Audio.VisualizationWaveform".
       
   577 */
       
   578 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE {
       
   579     OMX_U32 nSize;
       
   580     OMX_VERSIONTYPE nVersion;
       
   581     OMX_U32 nPortIndex;
       
   582     OMX_BU32 sWaveformLength;
       
   583 } OMX_SYMBIAN_AUDIO_CONFIG_VISUALIZATIONWAVEFORMTYPE;
       
   584 
       
   585 /*@}*/
       
   586 
       
   587 /** @name Audio Transducer Processing Extensions */
       
   588 
       
   589 /*@{*/
       
   590 
       
   591 /** Equalizer filter type */
       
   592 typedef enum OMX_SYMBIAN_AUDIO_FILTERTYPE {
       
   593     OMX_SYMBIAN_AUDIO_FilterNotDefined,   
       
   594     OMX_SYMBIAN_AUDIO_FilterPeaking,	
       
   595     OMX_SYMBIAN_AUDIO_FilterLowpass,	
       
   596     OMX_SYMBIAN_AUDIO_FilterHighpass,
       
   597     OMX_SYMBIAN_AUDIO_FilterLowshelf,	
       
   598     OMX_SYMBIAN_AUDIO_FilterHighshelf,
       
   599     OMX_SYMBIAN_AUDIO_FilterMax = 0x7FFFFFFF
       
   600 } OMX_SYMBIAN_AUDIO_FILTERTYPE;
       
   601 
       
   602 /** IIR Transducer EQ settings.
       
   603 
       
   604 The OMX_SYMBIAN_AUDIO_CONFIG_IIREQUALIZERTYPE structure is used to set or query
       
   605 the Transducer EQ related configurations. The setting can be changed using
       
   606 the OMX_SetConfig() function, and the current state can be queried using 
       
   607 the OMX_GetConfig() function. When calling either function, the index 
       
   608 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   609 with the extension string "OMX.Symbian.Index.Config.Audio.IIREqualizer".
       
   610 */
       
   611 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_IIREQTYPE  {
       
   612     OMX_U32 nSize;
       
   613     OMX_VERSIONTYPE nVersion;  
       
   614     OMX_U32 nPortIndex;
       
   615     OMX_U32 nChannel;
       
   616     OMX_BU32 sBandIndex ; 
       
   617     OMX_SYMBIAN_AUDIO_FILTERTYPE eFilterType;
       
   618     OMX_U32 nFilterCenterCutoffFrequency;
       
   619     OMX_S32 nFilterGain;
       
   620     OMX_U32 nFilterBandwidth; 
       
   621 } OMX_SYMBIAN_AUDIO_CONFIG_IIREQTYPE;
       
   622 
       
   623 
       
   624 /** The maximum number of frequency response points for the FIR EQ */
       
   625 #define OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS 100
       
   626 
       
   627 /** FIR Transducer EQ configs.
       
   628 
       
   629 The OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE structure is used to set or query
       
   630 the Transducer EQ related configurations. The setting can be changed using
       
   631 the OMX_SetConfig() function, and the current state can be queried using 
       
   632 the OMX_GetConfig() function. When calling either function, the index 
       
   633 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   634 with the extension string "OMX.Symbian.Index.Config.Audio.FIRResponse".
       
   635 */
       
   636 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE {
       
   637     OMX_U32 nSize;
       
   638     OMX_VERSIONTYPE nVersion;  
       
   639     OMX_U32 nPortIndex;
       
   640     OMX_U32 nChannel;
       
   641     OMX_U32 nFrequencyPoints; 
       
   642     OMX_S32 nFrequencies[OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS];
       
   643     OMX_S32 nGains[OMX_SYMBIAN_AUDIO_MAX_FIR_RESPONSE_POINTS];
       
   644 } OMX_SYMBIAN_AUDIO_CONFIG_FIRRESPONSETYPE;
       
   645 
       
   646 /** Phase response enum */
       
   647 typedef enum OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE {
       
   648     OMX_SYMBIAN_AUDIO_PhaseNotDefined,   
       
   649     OMX_SYMBIAN_AUDIO_LinearPhase,	
       
   650     OMX_SYMBIAN_AUDIO_MinimumPhase,
       
   651 } OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE;
       
   652 
       
   653 /** Transducer EQ main settings.
       
   654 
       
   655 The OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE structure is used to set or query
       
   656 the Transducer EQ related configurations. The setting can be changed using
       
   657 the OMX_SetConfig() function, and the current state can be queried using 
       
   658 the OMX_GetConfig() function. When calling either function, the index 
       
   659 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   660 with the extension string "OMX.Symbian.Index.Config.Audio.TransducerEqualizer".
       
   661 */
       
   662 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE  { 
       
   663     OMX_U32 nSize;                                    
       
   664     OMX_VERSIONTYPE nVersion;                   
       
   665     OMX_U32 nPortIndex;            
       
   666     OMX_BOOL bEnableFir;
       
   667     OMX_BOOL bEnableIir;
       
   668     OMX_U32 nChannel;
       
   669     OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE ePhaseResponseTargetFir;
       
   670     OMX_SYMBIAN_AUDIO_PHASERESPONSETYPE ePhaseResponseTargetIir;
       
   671     OMX_U32 nIIREqualizerBlocks;
       
   672     OMX_U32 nIIREqualizerGain;
       
   673 } OMX_SYMBIAN_AUDIO_CONFIG_TRANSDUCEREQUALIZERTYPE;
       
   674 
       
   675 /** Multi-band DRC settings.
       
   676 
       
   677 The OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE structure is used to set or query
       
   678 the MDRC related configurations. The setting can be changed using
       
   679 the OMX_SetConfig() function, and the current state can be queried using 
       
   680 the OMX_GetConfig() function. When calling either function, the index 
       
   681 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   682 with the extension string "OMX.Symbian.Index.Config.Audio.MDRC".
       
   683 */
       
   684 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE {
       
   685     OMX_U32 nSize;
       
   686     OMX_VERSIONTYPE nVersion;
       
   687     OMX_U32 nPortIndex;
       
   688     OMX_U32 nChannel;	
       
   689     OMX_BOOL bEnable;
       
   690     OMX_BU32 sBandIndex;
       
   691     OMX_BU32 sBandRange;
       
   692     OMX_BU32 sBandLevel;
       
   693     OMX_BU32 sKneePoints;	
       
   694     OMX_U32 nDynamicResponse[10][2];
       
   695     OMX_BU32 sAttackTime; 
       
   696     OMX_BU32 sReleaseTime;	    
       
   697 } OMX_SYMBIAN_AUDIO_CONFIG_MDRCTYPE;
       
   698 
       
   699 /** Transducer protection settings.
       
   700 
       
   701 The OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE structure is used to set or query
       
   702 the Transducer protection related configurations. The setting can be changed using
       
   703 the OMX_SetConfig() function, and the current state can be queried using 
       
   704 the OMX_GetConfig() function. When calling either function, the index 
       
   705 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   706 with the extension string "OMX.Symbian.Index.Config.Audio.LSProtection".
       
   707 */
       
   708 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE {
       
   709     OMX_U32 nSize;
       
   710     OMX_VERSIONTYPE nVersion;
       
   711     OMX_U32 nPortIndex;
       
   712     OMX_AUDIO_CHANNELTYPE eChannel;
       
   713     OMX_BOOL bEnable;
       
   714 } OMX_SYMBIAN_AUDIO_CONFIG_LSPROTECTIONTYPE;
       
   715 
       
   716 /** Transducer SPL limiting mode*/
       
   717 typedef enum OMX_SYMBIAN_AUDIO_SPLLIMITTYPE {
       
   718     OMX_SYMBIAN_AUDIO_SPLLimitation,	
       
   719     OMX_SYMBIAN_AUDIO_SPLNormalization,	
       
   720     OMX_SYMBIAN_AUDIO_SPLMax = 0x7FFFFFFF
       
   721 } OMX_SYMBIAN_AUDIO_SPLLIMITTYPE;
       
   722 
       
   723 /** SPL Limiter configs.
       
   724 
       
   725 The OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE structure is used to set or query
       
   726 the SPL Limiter related configurations. The setting can be changed using
       
   727 the OMX_SetConfig() function, and the current state can be queried using 
       
   728 the OMX_GetConfig() function. When calling either function, the index 
       
   729 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   730 with the extension string "OMX.Symbian.Index.Config.Audio.SPLLimit".
       
   731 */
       
   732 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE {
       
   733     OMX_U32 nSize;
       
   734     OMX_VERSIONTYPE nVersion;
       
   735     OMX_U32 nPortIndex;
       
   736     OMX_BOOL bEnable;
       
   737     OMX_SYMBIAN_AUDIO_SPLLIMITTYPE eMode;
       
   738     OMX_S32 nSplLimit;
       
   739     OMX_S32 nGain;	    
       
   740 } OMX_SYMBIAN_AUDIO_CONFIG_SPLLIMITTYPE;
       
   741 
       
   742 /** Click Removal settings.
       
   743 
       
   744 The OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE structure is used to set or query
       
   745 the Click Removal related configurations. The setting can be changed using
       
   746 the OMX_SetConfig() function, and the current state can be queried using 
       
   747 the OMX_GetConfig() function. When calling either function, the index 
       
   748 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   749 with the extension string "OMX.Symbian.Index.Config.Audio.ClickRemoval".
       
   750 */
       
   751 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE {
       
   752     OMX_U32 nSize;
       
   753     OMX_VERSIONTYPE nVersion;
       
   754     OMX_U32 nPortIndex;
       
   755     OMX_BOOL bEnable;
       
   756     OMX_BU32 sClickControl;
       
   757 } OMX_SYMBIAN_AUDIO_CONFIG_CLICKREMOVALTYPE;
       
   758 
       
   759 /** APSSAS configs.
       
   760 
       
   761 The OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE structure is used to set or query
       
   762 the APSSAS related configurations. The setting can be changed using
       
   763 the OMX_SetConfig() function, and the current state can be queried using 
       
   764 the OMX_GetConfig() function. When calling either function, the index 
       
   765 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   766 with the extension string "OMX.Symbian.Index.Config.Audio.BatteryVoltage".
       
   767 */
       
   768 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE {
       
   769     OMX_U32 nSize;
       
   770     OMX_VERSIONTYPE nVersion;
       
   771     OMX_U32 nPortIndex;
       
   772     OMX_U32 nBattVol;
       
   773 } OMX_SYMBIAN_AUDIO_CONFIG_BATTERYVOLTAGETYPE;
       
   774 
       
   775 /*@}*/
       
   776 
       
   777 /** HDMI related configuration structure. */
       
   778 typedef struct OMX_SYMBIAN_AUDIO_PARAM_HDMITYPE {
       
   779     OMX_U32 nSize;
       
   780     OMX_VERSIONTYPE nVersion;
       
   781     OMX_U32 nPortIndex;
       
   782     OMX_U32 nSubFrameSize;
       
   783     OMX_U32 nVaildBitsPerSample;
       
   784     OMX_U32 nQFormat;
       
   785 } OMX_SYMBIAN_AUDIO_PARAM_HDMITYPE;
       
   786 
       
   787 
       
   788 /** Tone generation mode enum. */
       
   789 typedef enum OMX_SYMBIAN_AUDIO_TONEGENTONETYPE { 
       
   790     OMX_SYMBIAN_AUDIO_TonegenNormal,  /**< Normal Tone */ 
       
   791     OMX_SYMBIAN_AUDIO_TonegenDtmf,    /**< DTMF Tone */ 
       
   792     OMX_SYMBIAN_AUDIO_TonegenMax = 0x7FFFFFFF
       
   793 } OMX_SYMBIAN_AUDIO_TONEGENTONETYPE; 
       
   794 
       
   795 /** Tone generator configs.
       
   796 
       
   797 The OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE structure is used to set or query
       
   798 the Tone generator related configurations. The setting can be changed using
       
   799 the OMX_SetConfig() function, and the current state can be queried using 
       
   800 the OMX_GetConfig() function. When calling either function, the index 
       
   801 specified for this structure is retrieved using OMX_GetExtensionIndex()
       
   802 with the extension string "OMX.Symbian.Index.Config.Audio.ToneGenerator".
       
   803 */
       
   804 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE {
       
   805     OMX_U32 nSize;
       
   806     OMX_VERSIONTYPE nVersion;
       
   807     OMX_U32 nPortIndex;
       
   808     OMX_BOOL bEnable;
       
   809     OMX_SYMBIAN_AUDIO_TONEGENTONETYPE eTonetype;
       
   810     OMX_U32 nFrequency[2];
       
   811     OMX_U32 nDigit;
       
   812 } OMX_SYMBIAN_AUDIO_CONFIG_TONEGENERATORTYPE;
       
   813 
       
   814 /*@}*/
       
   815 
       
   816 /** @name Audio Telephony Extensions */
       
   817 
       
   818 /*@{*/
       
   819 
       
   820 /** Speech decoder status information.
       
   821 
       
   822 The index specified for this structure is retrieved using 
       
   823 OMX_GetExtensionIndex() with the extension string 
       
   824 "OMX.Symbian.Index.Config.Audio.DecoderStatus".
       
   825 */
       
   826 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_DECODERSTATUSTYPE {
       
   827     OMX_U32 nSize;
       
   828     OMX_VERSIONTYPE nVersion ;
       
   829     OMX_AUDIO_CODINGTYPE nCoding;
       
   830     OMX_U32 nBitrate;
       
   831 } OMX_SYMBIAN_AUDIO_CONFIG_DECODERSTATUSTYPE;
       
   832 
       
   833 /** Speech encoder status information.
       
   834 
       
   835 The index specified for this structure is retrieved using 
       
   836 OMX_GetExtensionIndex() with the extension string 
       
   837 "OMX.Symbian.Index.Config.Audio.EncoderStatus".
       
   838 */
       
   839 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ENCODERSTATUSTYPE { 
       
   840     OMX_U32 nSize;                                    
       
   841     OMX_VERSIONTYPE nVersion ;
       
   842     OMX_AUDIO_CODINGTYPE nCoding;
       
   843     OMX_U32 nBitrate;
       
   844     OMX_BOOL bDtx;
       
   845     OMX_BOOL bAudioActivityControl;
       
   846     OMX_BOOL bNsync;
       
   847 } OMX_SYMBIAN_AUDIO_CONFIG_ENCODERSTATUSTYPE;
       
   848 
       
   849 /** Uplink timing control.
       
   850 
       
   851 The index specified for this structure is retrieved using 
       
   852 OMX_GetExtensionIndex() with the extension string 
       
   853 "OMX.Symbian.Index.Config.Audio.UplinkTiming".
       
   854 */
       
   855 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGTYPE { 
       
   856     OMX_U32 nSize;                                    
       
   857     OMX_VERSIONTYPE nVersion;                   
       
   858     OMX_U32 nDeliveryTime;
       
   859     OMX_U32 nModemProcessingTime;
       
   860 } OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGTYPE;
       
   861 
       
   862 /** RF-TX Power information.
       
   863 
       
   864 The index specified for this structure is retrieved using 
       
   865 OMX_GetExtensionIndex() with the extension string 
       
   866 "OMX.Symbian.Index.Config.Audio.RFTxPower".
       
   867 */
       
   868 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_RFTXPOWERTYPE { 
       
   869     OMX_U32 nSize;
       
   870     OMX_VERSIONTYPE nVersion;
       
   871     OMX_U32 nPower;
       
   872     OMX_U32 nTime;
       
   873 } OMX_SYMBIAN_AUDIO_CONFIG_RFTXPOWERTYPE;
       
   874 
       
   875 /** Uplink timing information.
       
   876 
       
   877 The index specified for this structure is retrieved using 
       
   878 OMX_GetExtensionIndex() with the extension string 
       
   879 "OMX.Symbian.Index.Config.Audio.UplinkTimingInfo".
       
   880 */
       
   881 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGINFOTYPE { 
       
   882      OMX_U32 nSize;
       
   883      OMX_VERSIONTYPE nVersion;
       
   884      OMX_S32 nMaxTime;
       
   885      OMX_S32 nAverageTime;
       
   886      OMX_S32 nMinTime;
       
   887 } OMX_SYMBIAN_AUDIO_CONFIG_UPLINKTIMINGINFOTYPE;
       
   888 
       
   889 /** Uplink delay information.
       
   890 
       
   891 The index specified for this structure is retrieved using 
       
   892 OMX_GetExtensionIndex() with the extension string 
       
   893 "OMX.Symbian.Index.Config.Audio.UplinkDelayInfo".
       
   894 */
       
   895 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_UPLINKDELAYINFOTYPE { 
       
   896      OMX_U32 nSize;
       
   897      OMX_VERSIONTYPE nVersion;
       
   898      OMX_S32 nMaxDelay;
       
   899      OMX_S32 nAverageDelay;
       
   900      OMX_S32 nMinDelay;
       
   901 } OMX_SYMBIAN_AUDIO_CONFIG_UPLINKDELAYINFOTYPE;
       
   902 
       
   903 /** Acoustic echo control configuration parameters.
       
   904 
       
   905 The index specified for this structure is retrieved using 
       
   906 OMX_GetExtensionIndex() with the extension string 
       
   907 "OMX.Symbian.Index.Config.Audio.AcousticEchoControl".
       
   908 */
       
   909 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_ACOUSTICECHOCONTROLTYPE {
       
   910     OMX_U32 nSize;
       
   911     OMX_VERSIONTYPE nVersion;
       
   912     OMX_U32 nPortIndex;
       
   913     OMX_BOOL bEnable;
       
   914     OMX_S32 sEchoGain;
       
   915     OMX_U32 nEchoMinDelay;
       
   916     OMX_U32 nEchoMaxDelay;
       
   917 } OMX_SYMBIAN_AUDIO_CONFIG_ACOUSTICECHOCONTROLTYPE;
       
   918 
       
   919 /** Artificial bandwidth expansion configuration parameters.
       
   920 
       
   921 The index specified for this structure is retrieved using 
       
   922 OMX_GetExtensionIndex() with the extension string 
       
   923 "OMX.Symbian.Index.Config.Audio.BandwidthExpansion".
       
   924 */
       
   925 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BANDWIDTHEXPANSIONTYPE {
       
   926     OMX_U32 nSize;
       
   927     OMX_VERSIONTYPE nVersion;
       
   928     OMX_U32 nPortIndex;
       
   929     OMX_BOOL bEnable;
       
   930     OMX_BU32 nStrength;
       
   931 } OMX_SYMBIAN_AUDIO_CONFIG_BANDWIDTHEXPANSIONTYPE;
       
   932 
       
   933 /**  Background noise control configuration parameters.
       
   934 
       
   935 The index specified for this structure is retrieved using 
       
   936 OMX_GetExtensionIndex() with the extension string 
       
   937 "OMX.Symbian.Index.Config.Audio.BackgroundNoiseControl".
       
   938 */
       
   939 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_BACKGROUNDNOISECONTROLTYPE { 
       
   940     OMX_U32 nSize;
       
   941     OMX_VERSIONTYPE nVersion;
       
   942     OMX_U32 nPortIndex;            
       
   943     OMX_BOOL bEnable;
       
   944     OMX_BU32 nAttenuation;
       
   945 } OMX_SYMBIAN_AUDIO_CONFIG_BACKGROUNDNOISECONTROLTYPE;
       
   946 
       
   947 /** Downlink noise control configuration parameters.
       
   948 
       
   949 The index specified for this structure is retrieved using 
       
   950 OMX_GetExtensionIndex() with the extension string 
       
   951 "OMX.Symbian.Index.Config.Audio.DownLinkNoiseControl".
       
   952 */
       
   953 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_DOWNLINKNOISECONTROLTYPE { 
       
   954     OMX_U32 nSize;
       
   955     OMX_VERSIONTYPE nVersion;
       
   956     OMX_U32 nPortIndex;            
       
   957     OMX_BOOL bEnable;
       
   958     OMX_BU32 nStrength;
       
   959 } OMX_SYMBIAN_AUDIO_CONFIG_DOWNLINKNOISECONTROLTYPE;
       
   960 
       
   961 /** Wind noise control configuration parameters.
       
   962 
       
   963 The index specified for this structure is retrieved using 
       
   964 OMX_GetExtensionIndex() with the extension string 
       
   965 "OMX.Symbian.Index.Config.Audio.WindNoiseControl".
       
   966 */
       
   967 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_WINDNOISECONTROLTYPE {
       
   968     OMX_U32 nSize;
       
   969     OMX_VERSIONTYPE nVersion;
       
   970     OMX_U32 nPortIndex;
       
   971     OMX_BOOL bEnable;
       
   972     OMX_BU32 nSensitivity;
       
   973 } OMX_SYMBIAN_AUDIO_CONFIG_WINDNOISECONTROLTYPE;
       
   974 
       
   975 
       
   976 /** Downlink speech information extra data type. */
       
   977 typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_DLSPEECHINFOTYPE {
       
   978     OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
       
   979     OMX_BOOL bComfortNoiseFrame;
       
   980     OMX_BOOL bCorruptedFrame;
       
   981 } OMX_SYMBIAN_AUDIO_EXTRADATA_DLSPEECHINFOTYPE;
       
   982 
       
   983 /** DA-AD timing difference information extra data type. */
       
   984 typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_DAADTIMINGDIFFTYPE {
       
   985     OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
       
   986     OMX_TICKS nDaAdTimingDifference;
       
   987 } OMX_SYMBIAN_AUDIO_EXTRADATA_DAADTIMINGDIFFTYPE;
       
   988 
       
   989 /** Voice Activity Detection information extra data type. */
       
   990 typedef struct OMX_SYMBIAN_AUDIO_EXTRADATA_VADINFOTYPE {
       
   991     OMX_SYMBIAN_OTHER_EXTRADATABASETYPE base;
       
   992     OMX_BOOL bUplinkVad;
       
   993     OMX_BOOL bDownlinkVad;
       
   994 } OMX_SYMBIAN_AUDIO_EXTRADATA_VADINFOTYPE;
       
   995 
       
   996 /** Audio tuning data type.
       
   997 
       
   998 Audio tuning data type is used for passing tuning parameters via the OpenMAX IL 
       
   999 component API to audio algorithms. The audio tuning parameters form an opaque 
       
  1000 data block, which only the sender and the algorithm understand.
       
  1001 
       
  1002 The index specified for this structure is retrieved using 
       
  1003 OMX_GetExtensionIndex() with the extension string 
       
  1004 "OMX.Symbian.Index.Config.Audio.TuningData".
       
  1005 */
       
  1006 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_TUNINGDATATYPE {
       
  1007     OMX_U32 nSize;
       
  1008     OMX_VERSIONTYPE nVersion;
       
  1009     OMX_U32 nPortIndex;
       
  1010     OMX_U32 nChannel;
       
  1011     OMX_U8 nData[1];
       
  1012 } OMX_SYMBIAN_AUDIO_CONFIG_TUNINGDATATYPE;
       
  1013 
       
  1014 /** Speech path loops control type.
       
  1015 
       
  1016 Loop control for speech signal path.
       
  1017 
       
  1018 The index specified for this structure is retrieved using 
       
  1019 OMX_GetExtensionIndex() with the extension string 
       
  1020 "OMX.Symbian.Index.Config.Audio.SpeechLoops".
       
  1021 */
       
  1022 
       
  1023 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_SPEECHLOOPSTYPE { 
       
  1024      OMX_U32 nSize;
       
  1025      OMX_VERSIONTYPE nVersion;
       
  1026      OMX_BOOL bLoopUplinkDownlink;
       
  1027      OMX_BOOL bLoopUplinkDownlinkAlg;
       
  1028      OMX_BOOL bLoopDownlinkUplink;
       
  1029      OMX_BOOL bLoopDownlinkUplinkAlg;
       
  1030 } OMX_SYMBIAN_AUDIO_CONFIG_SPEECHLOOPSTYPE;
       
  1031 
       
  1032 /**  Sidetone attenuation info type.
       
  1033 
       
  1034 The index specified for this structure is retrieved using 
       
  1035 OMX_GetExtensionIndex() with the extension string "OMX.Symbian.Index.Config.Audio.SidetoneAttenuationInfo"
       
  1036 */
       
  1037 typedef OMX_AUDIO_CONFIG_VOLUMETYPE OMX_AUDIO_CONFIG_SIDETONEATTENUATIONINFOTYPE;
       
  1038 
       
  1039 /**  Volume info type.
       
  1040 
       
  1041 This struct can be used to control sidetone attenuation.
       
  1042 
       
  1043 This data structure is currently used for reading volume info with extension string 
       
  1044   "OMX.Symbian.Index.Config.Audio.VolumeInfo"
       
  1045 */
       
  1046 typedef OMX_AUDIO_CONFIG_VOLUMETYPE OMX_AUDIO_CONFIG_VOLUMEINFOTYPE;
       
  1047 
       
  1048 
       
  1049 /*@}*/
       
  1050 
       
  1051 /** @name Audio HW Control Extensions */
       
  1052 
       
  1053 /*@{*/
       
  1054 
       
  1055 /** Audio power control.
       
  1056 
       
  1057 The index specified for this structure is retrieved using 
       
  1058 OMX_GetExtensionIndex() with the extension string 
       
  1059 "OMX.Symbian.Index.Config.Audio.Power".
       
  1060 */
       
  1061 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_POWERTYPE  { 
       
  1062     OMX_U32 nSize;                                    
       
  1063     OMX_VERSIONTYPE nVersion;                   
       
  1064     OMX_U32 nPortIndex;            
       
  1065     OMX_U32 nChannel;
       
  1066     OMX_BOOL bPower;
       
  1067 } OMX_SYMBIAN_AUDIO_CONFIG_POWERTYPE;
       
  1068 
       
  1069 /** Audio volume ramp control.
       
  1070 
       
  1071 The index specified for this structure is retrieved using 
       
  1072 OMX_GetExtensionIndex() with the extension string 
       
  1073 "OMX.Symbian.Index.Config.Audio.VolumeRamp".
       
  1074 */
       
  1075 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_VOLUMERAMPTYPE  { 
       
  1076     OMX_U32 nSize;                                    
       
  1077     OMX_VERSIONTYPE nVersion;                   
       
  1078     OMX_U32 nPortIndex;            
       
  1079     OMX_U32 nChannel;
       
  1080     OMX_BOOL bLinear;
       
  1081     OMX_BS32 sStartVolume;
       
  1082     OMX_BS32 sEndVolume;
       
  1083     OMX_TICKS nRampDuration;
       
  1084     OMX_BOOL bRampTerminate;
       
  1085     OMX_BS32 sCurrentVolume;
       
  1086     OMX_TICKS nRampCurrentTime;
       
  1087     OMX_TICKS nRampMinDuration;
       
  1088     OMX_TICKS nRampMaxDuration;
       
  1089     OMX_U32 nVolumeStep;
       
  1090 } OMX_SYMBIAN_AUDIO_CONFIG_VOLUMERAMPTYPE;
       
  1091 
       
  1092 /** Audio register bank query.
       
  1093 
       
  1094 The index specified for this structure is retrieved using 
       
  1095 OMX_GetExtensionIndex() with the extension string 
       
  1096 "OMX.Symbian.Index.Config.Audio.RegisterBankQuery".
       
  1097 */
       
  1098 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKQUERYTYPE  { 
       
  1099     OMX_U32 nSize;                                    
       
  1100     OMX_VERSIONTYPE nVersion;                   
       
  1101     OMX_U32 nPortIndex;   
       
  1102     OMX_U16 nNumRegisterBanks;           
       
  1103 } OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKQUERYTYPE;
       
  1104 
       
  1105 
       
  1106 typedef enum OMX_SYMBIAN_AUDIO_HWREGISTERTYPE { 
       
  1107     OMX_SYMBIAN_AUDIO_RegisterIO = 0,
       
  1108     OMX_SYMBIAN_AUDIO_RegisterI2C,
       
  1109     OMX_SYMBIAN_AUDIO_RegisterSlimbus,
       
  1110     OMX_SYMBIAN_AUDIO_RegisterCBUS = 0xFFFF,
       
  1111     OMX_SYMBIAN_AUDIO_RegisterMax = 0x7FFFFFFF
       
  1112 } OMX_SYMBIAN_AUDIO_HWREGISTERTYPE;
       
  1113  
       
  1114 typedef struct OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE { 
       
  1115     OMX_U32 nSize;                                    
       
  1116     OMX_VERSIONTYPE nVersion;                   
       
  1117     OMX_U32 nRegBankIndex;   
       
  1118     OMX_U32 nLogicalStartAddr;
       
  1119     OMX_U32 nLogicalEndAddr;
       
  1120     OMX_SYMBIAN_AUDIO_HWREGISTERTYPE eRegBankType;
       
  1121 } OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE;
       
  1122 
       
  1123 /** Audio register bank table control.
       
  1124 
       
  1125 The index specified for this structure is retrieved using 
       
  1126 OMX_GetExtensionIndex() with the extension string 
       
  1127 "OMX.Symbian.Index.Config.Audio.RegisterBankTable".
       
  1128 */
       
  1129 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKTABLETYPE  { 
       
  1130     OMX_U32 nSize;                                    
       
  1131     OMX_VERSIONTYPE nVersion;                   
       
  1132     OMX_U32 nPortIndex;   
       
  1133     OMX_U16 nNumRegisterBanks; 
       
  1134     OMX_SYMBIAN_AUDIO_REGBANKDESCRIPTORTYPE RegBankDescriptorTable;     
       
  1135 } OMX_SYMBIAN_AUDIO_CONFIG_REGISTERBANKTABLETYPE;
       
  1136 
       
  1137 
       
  1138 typedef enum OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE { 
       
  1139     OMX_SYMBIAN_AUDIO_HWCtrlStatusOk = 0,
       
  1140     OMX_SYMBIAN_AUDIO_HWCtrlStatusFail,
       
  1141     /* if callback facility is somehow solved in OpenMAX IL for getconfig/setconfig parameter calls, it is expected */
       
  1142     /* to have here extra status information that can be returned for e.g. multi-read/write commands */
       
  1143     OMX_SYMBIAN_AUDIO_HWCtrlStatusNotSupported = 0xFFFF,
       
  1144     OMX_SYMBIAN_AUDIO_HWCtrlStatusMax = 0x7FFFFFFF
       
  1145 } OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE;
       
  1146 
       
  1147 typedef enum OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE { 
       
  1148     OMX_SYMBIAN_AUDIO_HWOperationNoOp = 0,
       
  1149     OMX_SYMBIAN_AUDIO_HWOperation8BitSingleRead,
       
  1150     OMX_SYMBIAN_AUDIO_HWOperation8BitSingleWrite,
       
  1151     OMX_SYMBIAN_AUDIO_HWOperation16BitSingleRead,
       
  1152     OMX_SYMBIAN_AUDIO_HWOperation16BitSingleWrite,
       
  1153     OMX_SYMBIAN_AUDIO_HWOperation32BitSingleRead,
       
  1154     OMX_SYMBIAN_AUDIO_HWOperation32BitSingleWrite,
       
  1155     OMX_SYMBIAN_AUDIO_HWOperation8BitMultiRead,
       
  1156     OMX_SYMBIAN_AUDIO_HWOperation8BitMultiWrite,
       
  1157     OMX_SYMBIAN_AUDIO_HWOperation16BitMultiRead,
       
  1158     OMX_SYMBIAN_AUDIO_HWOperation16BitMultiWrite,
       
  1159     OMX_SYMBIAN_AUDIO_HWOperation32BitMultiRead,
       
  1160     OMX_SYMBIAN_AUDIO_HWOperation32BitMultiWrite,
       
  1161     OMX_SYMBIAN_AUDIO_HWOperation8BitBurstMultiRead,
       
  1162     OMX_SYMBIAN_AUDIO_HWOperation8BitBurstMultiWrite,
       
  1163     OMX_SYMBIAN_AUDIO_HWOperation16BitBurstMultiRead,
       
  1164     OMX_SYMBIAN_AUDIO_HWOperation16BitBurstMultiWrite,
       
  1165     OMX_SYMBIAN_AUDIO_HWOperation32BitBurstMultiRead,
       
  1166     OMX_SYMBIAN_AUDIO_HWOperation32BitBurstMultiWrite = 0xFFFF,
       
  1167     OMX_SYMBIAN_AUDIO_HWOperationMax = 0x7FFFFFFF
       
  1168 } OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE;
       
  1169 
       
  1170 /** Custom audio HW control.
       
  1171 
       
  1172 The index specified for this structure is retrieved using 
       
  1173 OMX_GetExtensionIndex() with the extension string 
       
  1174 "OMX.Symbian.Index.Config.Audio.CustomHwControl".
       
  1175 */
       
  1176 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE  { 
       
  1177     OMX_U32 nSize;                                    
       
  1178     OMX_VERSIONTYPE nVersion;                   
       
  1179     OMX_U32 nPortIndex;   
       
  1180     OMX_SYMBIAN_AUDIO_HWCTRLSTATUSTYPE eStatus;
       
  1181     OMX_SYMBIAN_AUDIO_HWOPERATIONTYPE eHwOperation;
       
  1182     OMX_SYMBIAN_AUDIO_HWREGISTERTYPE eRegisterType;
       
  1183     OMX_U16 nDataCount;
       
  1184     OMX_U8 nAddressDataSequence[1];   
       
  1185 } OMX_SYMBIAN_AUDIO_CONFIG_CUSTOMHWCONTROLTYPE;
       
  1186 
       
  1187 
       
  1188 typedef enum OMX_SYMBIAN_AUDIO_HWLOOPTYPE { 
       
  1189     OMX_SYMBIAN_AUDIO_HWLoopNone = 0,
       
  1190     OMX_SYMBIAN_AUDIO_HWLoopSidetone = 0xFFFF,
       
  1191     /* rest of HW loops are to be defined on a vendor specific basis */
       
  1192     OMX_SYMBIAN_AUDIO_HWLoopMax = 0x7FFFFFFF
       
  1193 } OMX_SYMBIAN_AUDIO_HWLOOPTYPE;
       
  1194 
       
  1195 /** Audio HW loop support query.
       
  1196 
       
  1197 The index specified for this structure is retrieved using 
       
  1198 OMX_GetExtensionIndex() with the extension string 
       
  1199 "OMX.Symbian.Index.Config.Audio.HwLoopSupport".
       
  1200 */
       
  1201 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPSUPPORTTYPE  { 
       
  1202     OMX_U32 nSize;                                    
       
  1203     OMX_VERSIONTYPE nVersion;                   
       
  1204     OMX_U32 nPortIndex;
       
  1205     OMX_U32 nSupportedLoops;    
       
  1206     OMX_SYMBIAN_AUDIO_HWLOOPTYPE eLoopIndex;
       
  1207 } OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPSUPPORTTYPE;
       
  1208 
       
  1209 /** Audio HW loop control.
       
  1210 
       
  1211 The index specified for this structure is retrieved using 
       
  1212 OMX_GetExtensionIndex() with the extension string 
       
  1213 "OMX.Symbian.Index.Config.Audio.HwLoopControl".
       
  1214 */
       
  1215 typedef struct OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPCONTROLTYPE  { 
       
  1216     OMX_U32 nSize;                                    
       
  1217     OMX_VERSIONTYPE nVersion;                   
       
  1218     OMX_U32 nPortIndex;   
       
  1219     OMX_SYMBIAN_AUDIO_HWLOOPTYPE eLoopIndex;
       
  1220     OMX_U32 nChannel;
       
  1221     OMX_BOOL bControlSwitch;
       
  1222     OMX_BOOL bLinear;
       
  1223     OMX_BS32 sLoopVolume;
       
  1224 } OMX_SYMBIAN_AUDIO_CONFIG_HWLOOPCONTROLTYPE;
       
  1225 
       
  1226 /*@}*/
       
  1227 
       
  1228 /** @name Haptics Extensions */
       
  1229 
       
  1230 /*@{*/
       
  1231 
       
  1232 /** Haptics driver properties query.
       
  1233 
       
  1234 The index specified for this structure is retrieved using 
       
  1235 OMX_GetExtensionIndex() with the extension string 
       
  1236 "OMX.Symbian.Index.Param.Audio.HapticsDriverProperties".
       
  1237 */
       
  1238 typedef struct OMX_SYMBIAN_AUDIO_PARAM_HAPTICSDRIVERPROPERTIESTYPE 
       
  1239 {
       
  1240     OMX_U32 nSize;	
       
  1241     OMX_VERSIONTYPE nVersion;
       
  1242     OMX_U32 nPortIndex;
       
  1243     OMX_U32 nNativeSamplingRate;
       
  1244     OMX_U32 nHapticsDriverNominalVoltage;    
       
  1245     OMX_U32 nHapticsDriverImpedance;		 
       
  1246 } OMX_SYMBIAN_AUDIO_PARAM_HAPTICSDRIVERPROPERTIESTYPE;
       
  1247 
       
  1248 /*@}*/
       
  1249 
       
  1250 #ifdef __cplusplus
       
  1251 }
       
  1252 #endif /* __cplusplus */
       
  1253 
       
  1254 #endif /* OMX_Symbian_AudioExt_h */