omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.cpp
branchOpenMAX-IL_SHAI
changeset 16 eedf2dcd43c6
parent 0 40261b775718
--- a/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.cpp	Mon May 03 13:56:28 2010 +0300
+++ b/omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.cpp	Fri May 07 16:25:23 2010 +0100
@@ -1,512 +1,512 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-#include "omxildummyaudiodecilif.h" 
-#include "iltestuids.hrh"
-#include "omxilspecversion.h"
-#include "tilstructtypes.h"
-#include "tomxilstruct.h"
-#include "milcomponentportif.h"
-#include <ecom/implementationproxy.h>
-#include <a3f/audioformatuids.h>
-
-
-// _________________________________________________________________________________
-
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(KUidOmxILDummyAudioDecMILIFPlugin , COmxILDummyAudioDecILIF::NewL)
-    };
-
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-    return ImplementationTable;
-    };
-// _________________________________________________________________________________
-
-
-const TUint KMonoChannel     = 1;
-const TUint KStereoChannel    = 2;
-const TInt  KPcm16BitsPerSample = 16;    
-
-
-COmxILDummyAudioDecILIF* COmxILDummyAudioDecILIF::NewL()
-    {
-    COmxILDummyAudioDecILIF* self = new (ELeave) COmxILDummyAudioDecILIF;
-    return self;
-    }
-
-COmxILDummyAudioDecILIF::COmxILDummyAudioDecILIF()
-    { 
-    }
-
-COmxILDummyAudioDecILIF::~COmxILDummyAudioDecILIF()
-    {
-    }
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-
-Mandatory params across all standard components
-===============================================
-    OMX_IndexParamPortDefinition    OMX_PARAM_PORTDEFINITIONTYPE    (KUidTPortDefinitionType, TPortDefinitionType)
-    OMX_IndexParamAudioInit
-    OMX_IndexParamCompBufferSupplier
-
-Mandatory params across all audio standard components
-=====================================================
-    OMX_IndexParamAudioPortFormat    OMX_AUDIO_PARAM_PORTFORMATTYPE    (KUidTAudioPortFormatType, TAudioPortFormatType)
-
-Component role: audio_decoder.aac
-=================================
-- APB+0: Accepts encoded audio
-    OMX_IndexParamAudioAac            OMX_AUDIO_PARAM_AACPROFILETYPE    (KUidTPortAACProfileType, TPortAACProfileType)
-- APB+1: Emits decoded audio
-    OMX_IndexParamAudioPcm            OMX_AUDIO_PARAM_PCMMODETYPE       (KUidTPortPCMType, TPortPCMType)
-
-Component role: audio_renderer.pcm
-==================================
-- APB+0: Accepts audio for rendering:
-    (OMX_IndexParamAudioPcm,        OMX_AUDIO_PARAM_PCMMODETYPE)    (KUidTPortPCMType, TPortPCMType)
-    (OMX_IndexConfigAudioVolume,    OMX_AUDIO_CONFIG_VOLUMETYPE)    (KUidTPortVolumeType, TPortVolumeType)
-    (OMX_IndexConfigAudioMute,      OMX_AUDIO_CONFIG_MUTETYPE)      (KUidTPortMuteType, TPortMuteType)
-    
-* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-
-TInt COmxILDummyAudioDecILIF::SetConfig(const TILStruct& aConfig, 
-                                        const MILComponentPortIf* aComponentPort)
-    {
-
-    TInt portIndex = 0xFF; // Initialize to invalid port index
-    if (aComponentPort)
-	    {
-    	portIndex = aComponentPort->PortIndex();
-	    }
-    else
-		{
-		// All parameters and configs are targetted to the port.
-		return KErrArgument;
-		}
-		
-	TInt error = KErrNone;   
-        
-    switch (aConfig.Uid().iUid)
-        {
-        case KUidOMXILStructType:
-            {    
-            const TOMXILStructParam* omxILStructParam = static_cast<const TOMXILStructParam*> (&aConfig);
-            switch (omxILStructParam->Index())
-                {
-                case OMX_IndexParamPortDefinition:
-                    {
-                    OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(
-                    									   const_cast<TOMXILStructParam*>(omxILStructParam)->Param());    
-            		ASSERT(config);
-                    config->nPortIndex = portIndex;
-                    config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-                    error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
-                    break;
-                    }
-                default:
-                    {
-                    error = KErrNotSupported;
-                    }
-                }
-            break;            
-            }
-            
-        case KUidMMFTTaskConfig:
-            {
-            const TTaskConfig* config = TILTaskConfig::GetStructure(aConfig);    
-            ASSERT(config);
-
-            TInt sampleRate = config->iRate;
-            TInt channels = (config->iStereoMode & ETaskMono)? KMonoChannel : KStereoChannel;
-            TBool interleaved = (config->iStereoMode & ETaskInterleaved)?ETrue : EFalse;
-
-            TUid format;
-            error = GetComponentIfRole(format);
-            if (error != KErrNone)
-                {
-                break;
-                }
-            
-            if (format == KUidFormatOGG)
-                {
-                if (aComponentPort->PortDirection()== EDirOutput)
-                    {
-                    // Set Output Port (PCM16)
-                    OMX_AUDIO_PARAM_PCMMODETYPE pcm;
-                    pcm.nVersion = KOMXILSpecVersion;
-                    pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
-                    pcm.nPortIndex = portIndex;
-                    pcm.nSamplingRate = sampleRate;
-                    pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
-                    pcm.eNumData = OMX_NumericalDataSigned; 
-                    pcm.nBitPerSample = KPcm16BitsPerSample;
-                    pcm.nChannels = channels;
-                    pcm.bInterleaved = (OMX_BOOL)interleaved;
-                    
-                    error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
-                    }                        
-                else if (aComponentPort->PortDirection() == EDirInput)
-                    {
-                    // Set Input Port (Vorbis)
-                    OMX_AUDIO_PARAM_VORBISTYPE vorbis;
-                    vorbis.nVersion = KOMXILSpecVersion;
-                    vorbis.nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
-                    vorbis.nPortIndex = portIndex;
-                    
-                    error = OmxSetParameter(OMX_IndexParamAudioVorbis, &vorbis);
-                    }
-                }
-            else if (format == KUidFormatPCM16)
-                {
-                if (aComponentPort->PortDirection()== EDirInput)
-                    {
-                    // Set Input Port (PCM16)
-                    OMX_AUDIO_PARAM_PCMMODETYPE pcm;
-                    pcm.nVersion = KOMXILSpecVersion;
-                    pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
-                    pcm.nPortIndex = portIndex;
-                    pcm.nSamplingRate = sampleRate;
-                    pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
-                    pcm.eNumData = OMX_NumericalDataSigned; 
-                    pcm.nBitPerSample = KPcm16BitsPerSample;
-                    pcm.nChannels = channels;
-                    pcm.bInterleaved = (OMX_BOOL)interleaved;
-                    
-                    error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
-                    }
-                else
-                    {
-                    error = KErrNotSupported;    
-                    }
-                }
-            else
-                {
-                error = KErrNotSupported;
-                }
-            break;    
-            }
-        case KUidTPortDefinitionType:
-            {
-            OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(    
-															  TILPortDefinition::GetStructure(aConfig));
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
-            break;
-            }
-        case KUidTAudioPortFormatType:
-            {
-            OMX_AUDIO_PARAM_PORTFORMATTYPE* config = const_cast<OMX_AUDIO_PARAM_PORTFORMATTYPE*>(
-            													TILAudioPortFormat::GetStructure(aConfig));    
-            ASSERT(config);
-	        config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetParameter(OMX_IndexParamAudioPortFormat, config);
-            break;
-            }
-        case KUidTPortPCMModeType:
-            {
-            OMX_AUDIO_PARAM_PCMMODETYPE* config = const_cast<OMX_AUDIO_PARAM_PCMMODETYPE*>(
-            												 TILPortPCMMode::GetStructure(aConfig));    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetParameter(OMX_IndexParamAudioPcm, config);
-            break;
-            }
-        case KUidTPortAACProfileType:
-            {
-            OMX_AUDIO_PARAM_AACPROFILETYPE* config = const_cast<OMX_AUDIO_PARAM_AACPROFILETYPE*>(
-            													TILPortAACProfile::GetStructure(aConfig));    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetParameter(OMX_IndexParamAudioAac, config);
-            break;
-            }
-        case KUidTPortVorbisType:
-            {
-            OMX_AUDIO_PARAM_VORBISTYPE* config = const_cast<OMX_AUDIO_PARAM_VORBISTYPE*>(
-            												TILPortVorbis::GetStructure(aConfig));    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetParameter(OMX_IndexParamAudioVorbis, config);
-            break;
-            }
-        case KUidTPortVolumeType:
-            {
-            OMX_AUDIO_CONFIG_VOLUMETYPE* config = const_cast<OMX_AUDIO_CONFIG_VOLUMETYPE*>(
-            												 TILPortVolume::GetStructure(aConfig));    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetConfig(OMX_IndexConfigAudioVolume, config);
-            break;
-            }
-        case KUidTPortMuteType:
-            {
-            OMX_AUDIO_CONFIG_MUTETYPE* config = const_cast<OMX_AUDIO_CONFIG_MUTETYPE*>(
-            											   TILPortMute::GetStructure(aConfig));    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxSetConfig(OMX_IndexConfigAudioMute, config);
-            break;
-            }
-        default:
-            {
-            error = KErrNotSupported;
-            }        
-        }
-    return error;
-    }
-    
-
-TInt COmxILDummyAudioDecILIF::GetConfig(TILStruct& aConfig, 
-                                        const MILComponentPortIf* aComponentPort) const
-    {
-    TInt portIndex = 0xFF; // Initialize to invalid port index
-    if (aComponentPort)
-	    {
-    	portIndex = aComponentPort->PortIndex();
-	    }
-    else
-		{
-		// All parameters and configs are targetted to the port.
-		return KErrArgument;
-		}
-
-    TInt error = KErrNone;
-
-    switch (aConfig.Uid().iUid)
-        {
-        case KUidOMXILStructType:
-            {    
-            TOMXILStructParam* omxILStructParam = static_cast<TOMXILStructParam*> (&aConfig);
-            switch (omxILStructParam->Index())
-                {
-                case OMX_IndexParamPortDefinition:
-                    {
-                    OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(omxILStructParam->Param());    
-		            ASSERT(config);
-                    config->nVersion = KOMXILSpecVersion;
-                    config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-                    config->nPortIndex = portIndex;
-                    error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
-                    break;
-                    }
-                default:
-                    {
-                    error = KErrNotSupported;
-                    }
-                }
-            break;            
-            }
-
-        case KUidTPortDefinitionType:
-            {
-            OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
-            break;
-            }
-        case KUidTAudioPortFormatType:
-            {
-            OMX_AUDIO_PARAM_PORTFORMATTYPE* config = TILAudioPortFormat::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetParameter(OMX_IndexParamAudioPortFormat, config);
-            break;
-            }
-        case KUidTPortPCMModeType:
-            {
-            OMX_AUDIO_PARAM_PCMMODETYPE* config = TILPortPCMMode::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetParameter(OMX_IndexParamAudioPcm, config);
-            break;
-            }
-        case KUidTPortAACProfileType:
-            {
-            OMX_AUDIO_PARAM_AACPROFILETYPE* config = TILPortAACProfile::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetParameter(OMX_IndexParamAudioAac, config);
-            break;
-            }
-        case KUidTPortVorbisType:
-            {
-            OMX_AUDIO_PARAM_VORBISTYPE* config = TILPortVorbis::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetParameter(OMX_IndexParamAudioVorbis, config);
-            break;
-            }
-        case KUidTPortVolumeType:
-            {
-            OMX_AUDIO_CONFIG_VOLUMETYPE* config = TILPortVolume::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetConfig(OMX_IndexConfigAudioVolume, config);
-            break;
-            }
-        case KUidTPortMuteType:
-            {
-            OMX_AUDIO_CONFIG_MUTETYPE* config = TILPortMute::GetStructure(aConfig);    
-            ASSERT(config);
-            config->nVersion = KOMXILSpecVersion;
-            config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
-            config->nPortIndex = portIndex;
-            error = OmxGetConfig(OMX_IndexConfigAudioMute, config);
-            break;
-            }
-        default:
-            {
-            error = KErrNotSupported;
-            }
-        }
-
-    return error;    
-    }
-    
-TInt COmxILDummyAudioDecILIF::SetExtConfig(const TDesC8& aParameterName, 
-                                           const TILStruct& aConfig, 
-                                           const MILComponentPortIf* aComponentPort)
-    {
-    TInt portIndex = 0xFF; // Initialize to invalid port index
-    if (aComponentPort)
-	    {
-    	portIndex = aComponentPort->PortIndex();
-	    }
-    else
-		{
-		// All parameters and configs are targetted to the port.
-		return KErrArgument;
-		}
-
-    OMX_INDEXTYPE indexType;
-    TInt error = KErrNone;
-    error = OmxGetExtensionIndex(aParameterName, &indexType);
-
-    if (error == KErrNone)
-        {
-        switch (aConfig.Uid().iUid)
-            {
-            case KUidTPortDefinitionType:
-                {
-                OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(TILPortDefinition::GetStructure(aConfig));    
-	            ASSERT(config);
-                config->nVersion = KOMXILSpecVersion;
-                config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-                config->nPortIndex = portIndex;
-                error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
-                break;                
-                }
-            default:
-                {
-                error = KErrNotSupported;
-                }
-            }
-        }
-
-
-    return error;    
-    }
-    
-TInt COmxILDummyAudioDecILIF::GetExtConfig(const TDesC8& aParameterName, 
-                                           TILStruct& aConfig, 
-                                           const MILComponentPortIf* aComponentPort) const
-    {
-    TInt portIndex = 0xFF; // Initialize to invalid port index
-    if (aComponentPort)
-	    {
-    	portIndex = aComponentPort->PortIndex();
-	    }
-    else
-		{
-		// All parameters and configs are targetted to the port.
-		return KErrArgument;
-		}
-
-    OMX_INDEXTYPE indexType;
-
-    TInt error = KErrNone;
-    error = OmxGetExtensionIndex(aParameterName, &indexType);
-
-    if (error == KErrNone)
-        {
-        switch (aConfig.Uid().iUid)
-            {
-            case KUidTPortDefinitionType:
-                {
-                OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);    
-	            ASSERT(config);
-                config->nVersion = KOMXILSpecVersion;
-                config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
-                config->nPortIndex = portIndex;
-                error = OmxGetParameter(indexType, config);
-                break;
-                }
-            default:
-                {
-                error = KErrNotSupported;
-                }
-            }
-        }
-    return error;    
-    }
-
-TInt COmxILDummyAudioDecILIF::SetComponentIfRole(const TUid& aComponentRole)
-    {
-    if ((aComponentRole == KUidFormatAAC) ||
-        (aComponentRole == KUidFormatOGG) ||
-        (aComponentRole == KUidFormatPCM16))
-        {
-        return (COmxILDummyBaseILIF::SetComponentIfRole(aComponentRole));
-        }
-    else
-        {
-        return KErrNotSupported;
-        }
-    }
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#include "omxildummyaudiodecilif.h" 
+#include "iltestuids.hrh"
+#include "omxilspecversion.h"
+#include "tilstructtypes.h"
+#include "tomxilstruct.h"
+#include "milcomponentportif.h"
+#include <ecom/implementationproxy.h>
+#include <a3f/audioformatuids.h>
+
+
+// _________________________________________________________________________________
+
+const TImplementationProxy ImplementationTable[] = 
+    {
+    IMPLEMENTATION_PROXY_ENTRY(KUidOmxILDummyAudioDecMILIFPlugin , COmxILDummyAudioDecILIF::NewL)
+    };
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+
+    return ImplementationTable;
+    };
+// _________________________________________________________________________________
+
+
+const TUint KMonoChannel     = 1;
+const TUint KStereoChannel    = 2;
+const TInt  KPcm16BitsPerSample = 16;    
+
+
+COmxILDummyAudioDecILIF* COmxILDummyAudioDecILIF::NewL()
+    {
+    COmxILDummyAudioDecILIF* self = new (ELeave) COmxILDummyAudioDecILIF;
+    return self;
+    }
+
+COmxILDummyAudioDecILIF::COmxILDummyAudioDecILIF()
+    { 
+    }
+
+COmxILDummyAudioDecILIF::~COmxILDummyAudioDecILIF()
+    {
+    }
+
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+
+Mandatory params across all standard components
+===============================================
+    OMX_IndexParamPortDefinition    OMX_PARAM_PORTDEFINITIONTYPE    (KUidTPortDefinitionType, TPortDefinitionType)
+    OMX_IndexParamAudioInit
+    OMX_IndexParamCompBufferSupplier
+
+Mandatory params across all audio standard components
+=====================================================
+    OMX_IndexParamAudioPortFormat    OMX_AUDIO_PARAM_PORTFORMATTYPE    (KUidTAudioPortFormatType, TAudioPortFormatType)
+
+Component role: audio_decoder.aac
+=================================
+- APB+0: Accepts encoded audio
+    OMX_IndexParamAudioAac            OMX_AUDIO_PARAM_AACPROFILETYPE    (KUidTPortAACProfileType, TPortAACProfileType)
+- APB+1: Emits decoded audio
+    OMX_IndexParamAudioPcm            OMX_AUDIO_PARAM_PCMMODETYPE       (KUidTPortPCMType, TPortPCMType)
+
+Component role: audio_renderer.pcm
+==================================
+- APB+0: Accepts audio for rendering:
+    (OMX_IndexParamAudioPcm,        OMX_AUDIO_PARAM_PCMMODETYPE)    (KUidTPortPCMType, TPortPCMType)
+    (OMX_IndexConfigAudioVolume,    OMX_AUDIO_CONFIG_VOLUMETYPE)    (KUidTPortVolumeType, TPortVolumeType)
+    (OMX_IndexConfigAudioMute,      OMX_AUDIO_CONFIG_MUTETYPE)      (KUidTPortMuteType, TPortMuteType)
+    
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+TInt COmxILDummyAudioDecILIF::SetConfig(const TILStruct& aConfig, 
+                                        const MILComponentPortIf* aComponentPort)
+    {
+
+    TInt portIndex = 0xFF; // Initialize to invalid port index
+    if (aComponentPort)
+	    {
+    	portIndex = aComponentPort->PortIndex();
+	    }
+    else
+		{
+		// All parameters and configs are targetted to the port.
+		return KErrArgument;
+		}
+		
+	TInt error = KErrNone;   
+        
+    switch (aConfig.Uid().iUid)
+        {
+        case KUidOMXILStructType:
+            {    
+            const TOMXILStructParam* omxILStructParam = static_cast<const TOMXILStructParam*> (&aConfig);
+            switch (omxILStructParam->Index())
+                {
+                case OMX_IndexParamPortDefinition:
+                    {
+                    OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(
+                    									   const_cast<TOMXILStructParam*>(omxILStructParam)->Param());    
+            		ASSERT(config);
+                    config->nPortIndex = portIndex;
+                    config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+                    error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
+                    break;
+                    }
+                default:
+                    {
+                    error = KErrNotSupported;
+                    }
+                }
+            break;            
+            }
+            
+        case KUidMMFTTaskConfig:
+            {
+            const TTaskConfig* config = TILTaskConfig::GetStructure(aConfig);    
+            ASSERT(config);
+
+            TInt sampleRate = config->iRate;
+            TInt channels = (config->iStereoMode & ETaskMono)? KMonoChannel : KStereoChannel;
+            TBool interleaved = (config->iStereoMode & ETaskInterleaved)?ETrue : EFalse;
+
+            TUid format;
+            error = GetComponentIfRole(format);
+            if (error != KErrNone)
+                {
+                break;
+                }
+            
+            if (format == KUidFormatOGG)
+                {
+                if (aComponentPort->PortDirection()== EDirOutput)
+                    {
+                    // Set Output Port (PCM16)
+                    OMX_AUDIO_PARAM_PCMMODETYPE pcm;
+                    pcm.nVersion = KOMXILSpecVersion;
+                    pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
+                    pcm.nPortIndex = portIndex;
+                    pcm.nSamplingRate = sampleRate;
+                    pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
+                    pcm.eNumData = OMX_NumericalDataSigned; 
+                    pcm.nBitPerSample = KPcm16BitsPerSample;
+                    pcm.nChannels = channels;
+                    pcm.bInterleaved = (OMX_BOOL)interleaved;
+                    
+                    error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
+                    }                        
+                else if (aComponentPort->PortDirection() == EDirInput)
+                    {
+                    // Set Input Port (Vorbis)
+                    OMX_AUDIO_PARAM_VORBISTYPE vorbis;
+                    vorbis.nVersion = KOMXILSpecVersion;
+                    vorbis.nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
+                    vorbis.nPortIndex = portIndex;
+                    
+                    error = OmxSetParameter(OMX_IndexParamAudioVorbis, &vorbis);
+                    }
+                }
+            else if (format == KUidFormatPCM16)
+                {
+                if (aComponentPort->PortDirection()== EDirInput)
+                    {
+                    // Set Input Port (PCM16)
+                    OMX_AUDIO_PARAM_PCMMODETYPE pcm;
+                    pcm.nVersion = KOMXILSpecVersion;
+                    pcm.nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
+                    pcm.nPortIndex = portIndex;
+                    pcm.nSamplingRate = sampleRate;
+                    pcm.ePCMMode = OMX_AUDIO_PCMModeLinear;
+                    pcm.eNumData = OMX_NumericalDataSigned; 
+                    pcm.nBitPerSample = KPcm16BitsPerSample;
+                    pcm.nChannels = channels;
+                    pcm.bInterleaved = (OMX_BOOL)interleaved;
+                    
+                    error = OmxSetParameter(OMX_IndexParamAudioPcm, &pcm);
+                    }
+                else
+                    {
+                    error = KErrNotSupported;    
+                    }
+                }
+            else
+                {
+                error = KErrNotSupported;
+                }
+            break;    
+            }
+        case KUidTPortDefinitionType:
+            {
+            OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(    
+															  TILPortDefinition::GetStructure(aConfig));
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
+            break;
+            }
+        case KUidTAudioPortFormatType:
+            {
+            OMX_AUDIO_PARAM_PORTFORMATTYPE* config = const_cast<OMX_AUDIO_PARAM_PORTFORMATTYPE*>(
+            													TILAudioPortFormat::GetStructure(aConfig));    
+            ASSERT(config);
+	        config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetParameter(OMX_IndexParamAudioPortFormat, config);
+            break;
+            }
+        case KUidTPortPCMModeType:
+            {
+            OMX_AUDIO_PARAM_PCMMODETYPE* config = const_cast<OMX_AUDIO_PARAM_PCMMODETYPE*>(
+            												 TILPortPCMMode::GetStructure(aConfig));    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetParameter(OMX_IndexParamAudioPcm, config);
+            break;
+            }
+        case KUidTPortAACProfileType:
+            {
+            OMX_AUDIO_PARAM_AACPROFILETYPE* config = const_cast<OMX_AUDIO_PARAM_AACPROFILETYPE*>(
+            													TILPortAACProfile::GetStructure(aConfig));    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetParameter(OMX_IndexParamAudioAac, config);
+            break;
+            }
+        case KUidTPortVorbisType:
+            {
+            OMX_AUDIO_PARAM_VORBISTYPE* config = const_cast<OMX_AUDIO_PARAM_VORBISTYPE*>(
+            												TILPortVorbis::GetStructure(aConfig));    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetParameter(OMX_IndexParamAudioVorbis, config);
+            break;
+            }
+        case KUidTPortVolumeType:
+            {
+            OMX_AUDIO_CONFIG_VOLUMETYPE* config = const_cast<OMX_AUDIO_CONFIG_VOLUMETYPE*>(
+            												 TILPortVolume::GetStructure(aConfig));    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetConfig(OMX_IndexConfigAudioVolume, config);
+            break;
+            }
+        case KUidTPortMuteType:
+            {
+            OMX_AUDIO_CONFIG_MUTETYPE* config = const_cast<OMX_AUDIO_CONFIG_MUTETYPE*>(
+            											   TILPortMute::GetStructure(aConfig));    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxSetConfig(OMX_IndexConfigAudioMute, config);
+            break;
+            }
+        default:
+            {
+            error = KErrNotSupported;
+            }        
+        }
+    return error;
+    }
+    
+
+TInt COmxILDummyAudioDecILIF::GetConfig(TILStruct& aConfig, 
+                                        const MILComponentPortIf* aComponentPort) const
+    {
+    TInt portIndex = 0xFF; // Initialize to invalid port index
+    if (aComponentPort)
+	    {
+    	portIndex = aComponentPort->PortIndex();
+	    }
+    else
+		{
+		// All parameters and configs are targetted to the port.
+		return KErrArgument;
+		}
+
+    TInt error = KErrNone;
+
+    switch (aConfig.Uid().iUid)
+        {
+        case KUidOMXILStructType:
+            {    
+            TOMXILStructParam* omxILStructParam = static_cast<TOMXILStructParam*> (&aConfig);
+            switch (omxILStructParam->Index())
+                {
+                case OMX_IndexParamPortDefinition:
+                    {
+                    OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(omxILStructParam->Param());    
+		            ASSERT(config);
+                    config->nVersion = KOMXILSpecVersion;
+                    config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+                    config->nPortIndex = portIndex;
+                    error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
+                    break;
+                    }
+                default:
+                    {
+                    error = KErrNotSupported;
+                    }
+                }
+            break;            
+            }
+
+        case KUidTPortDefinitionType:
+            {
+            OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetParameter(OMX_IndexParamPortDefinition, config);
+            break;
+            }
+        case KUidTAudioPortFormatType:
+            {
+            OMX_AUDIO_PARAM_PORTFORMATTYPE* config = TILAudioPortFormat::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetParameter(OMX_IndexParamAudioPortFormat, config);
+            break;
+            }
+        case KUidTPortPCMModeType:
+            {
+            OMX_AUDIO_PARAM_PCMMODETYPE* config = TILPortPCMMode::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_PCMMODETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetParameter(OMX_IndexParamAudioPcm, config);
+            break;
+            }
+        case KUidTPortAACProfileType:
+            {
+            OMX_AUDIO_PARAM_AACPROFILETYPE* config = TILPortAACProfile::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_AACPROFILETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetParameter(OMX_IndexParamAudioAac, config);
+            break;
+            }
+        case KUidTPortVorbisType:
+            {
+            OMX_AUDIO_PARAM_VORBISTYPE* config = TILPortVorbis::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_PARAM_VORBISTYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetParameter(OMX_IndexParamAudioVorbis, config);
+            break;
+            }
+        case KUidTPortVolumeType:
+            {
+            OMX_AUDIO_CONFIG_VOLUMETYPE* config = TILPortVolume::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_CONFIG_VOLUMETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetConfig(OMX_IndexConfigAudioVolume, config);
+            break;
+            }
+        case KUidTPortMuteType:
+            {
+            OMX_AUDIO_CONFIG_MUTETYPE* config = TILPortMute::GetStructure(aConfig);    
+            ASSERT(config);
+            config->nVersion = KOMXILSpecVersion;
+            config->nSize = sizeof(OMX_AUDIO_CONFIG_MUTETYPE);
+            config->nPortIndex = portIndex;
+            error = OmxGetConfig(OMX_IndexConfigAudioMute, config);
+            break;
+            }
+        default:
+            {
+            error = KErrNotSupported;
+            }
+        }
+
+    return error;    
+    }
+    
+TInt COmxILDummyAudioDecILIF::SetExtConfig(const TDesC8& aParameterName, 
+                                           const TILStruct& aConfig, 
+                                           const MILComponentPortIf* aComponentPort)
+    {
+    TInt portIndex = 0xFF; // Initialize to invalid port index
+    if (aComponentPort)
+	    {
+    	portIndex = aComponentPort->PortIndex();
+	    }
+    else
+		{
+		// All parameters and configs are targetted to the port.
+		return KErrArgument;
+		}
+
+    OMX_INDEXTYPE indexType;
+    TInt error = KErrNone;
+    error = OmxGetExtensionIndex(aParameterName, &indexType);
+
+    if (error == KErrNone)
+        {
+        switch (aConfig.Uid().iUid)
+            {
+            case KUidTPortDefinitionType:
+                {
+                OMX_PARAM_PORTDEFINITIONTYPE* config = const_cast<OMX_PARAM_PORTDEFINITIONTYPE*>(TILPortDefinition::GetStructure(aConfig));    
+	            ASSERT(config);
+                config->nVersion = KOMXILSpecVersion;
+                config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+                config->nPortIndex = portIndex;
+                error = OmxSetParameter(OMX_IndexParamPortDefinition, config);
+                break;                
+                }
+            default:
+                {
+                error = KErrNotSupported;
+                }
+            }
+        }
+
+
+    return error;    
+    }
+    
+TInt COmxILDummyAudioDecILIF::GetExtConfig(const TDesC8& aParameterName, 
+                                           TILStruct& aConfig, 
+                                           const MILComponentPortIf* aComponentPort) const
+    {
+    TInt portIndex = 0xFF; // Initialize to invalid port index
+    if (aComponentPort)
+	    {
+    	portIndex = aComponentPort->PortIndex();
+	    }
+    else
+		{
+		// All parameters and configs are targetted to the port.
+		return KErrArgument;
+		}
+
+    OMX_INDEXTYPE indexType;
+
+    TInt error = KErrNone;
+    error = OmxGetExtensionIndex(aParameterName, &indexType);
+
+    if (error == KErrNone)
+        {
+        switch (aConfig.Uid().iUid)
+            {
+            case KUidTPortDefinitionType:
+                {
+                OMX_PARAM_PORTDEFINITIONTYPE* config = TILPortDefinition::GetStructure(aConfig);    
+	            ASSERT(config);
+                config->nVersion = KOMXILSpecVersion;
+                config->nSize = sizeof(OMX_PARAM_PORTDEFINITIONTYPE);
+                config->nPortIndex = portIndex;
+                error = OmxGetParameter(indexType, config);
+                break;
+                }
+            default:
+                {
+                error = KErrNotSupported;
+                }
+            }
+        }
+    return error;    
+    }
+
+TInt COmxILDummyAudioDecILIF::SetComponentIfRole(const TUid& aComponentRole)
+    {
+    if ((aComponentRole == KUidFormatAAC) ||
+        (aComponentRole == KUidFormatOGG) ||
+        (aComponentRole == KUidFormatPCM16))
+        {
+        return (COmxILDummyBaseILIF::SetComponentIfRole(aComponentRole));
+        }
+    else
+        {
+        return KErrNotSupported;
+        }
+    }