diff -r c1e808730d6c -r eedf2dcd43c6 omxil/mmilapi/unittest/test_plugins/omxildummyaudiodecilif/omxildummyaudiodecilif.cpp --- 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 -#include - - -// _________________________________________________________________________________ - -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 (&aConfig); - switch (omxILStructParam->Index()) - { - case OMX_IndexParamPortDefinition: - { - OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast( - const_cast(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( - 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( - 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( - 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( - 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( - 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( - 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( - 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 (&aConfig); - switch (omxILStructParam->Index()) - { - case OMX_IndexParamPortDefinition: - { - OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast(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(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 +#include + + +// _________________________________________________________________________________ + +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 (&aConfig); + switch (omxILStructParam->Index()) + { + case OMX_IndexParamPortDefinition: + { + OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast( + const_cast(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( + 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( + 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( + 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( + 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( + 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( + 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( + 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 (&aConfig); + switch (omxILStructParam->Index()) + { + case OMX_IndexParamPortDefinition: + { + OMX_PARAM_PORTDEFINITIONTYPE* config = reinterpret_cast(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(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; + } + }