sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "TestGlobalEffectPlugin.h" sl@0: sl@0: #include sl@0: #include sl@0: #include "../src/TestGlobalEffect.hrh" sl@0: sl@0: const TUid KUidTestGlbCustomCall = {KUidTestGlbCustomCallDefine}; sl@0: const TInt KPresetsCount = 3; sl@0: sl@0: // sl@0: // CTestEffect sl@0: // sl@0: sl@0: CTestEffect::CTestEffect() sl@0: { sl@0: } sl@0: sl@0: CTestEffect::~CTestEffect() sl@0: { sl@0: delete iSettingsDes; sl@0: delete iPresetList; sl@0: REComSession::DestroyedImplementation(iDestructorKey); sl@0: } sl@0: sl@0: MMmfGlobalAudioImpl* CTestEffect::NewL() sl@0: { sl@0: return new (ELeave) CTestEffect; sl@0: } sl@0: sl@0: void CTestEffect::Release() sl@0: { sl@0: // this is effectively delete sl@0: delete this; sl@0: } sl@0: sl@0: TUint CTestEffect::Capability(TBool aCurrentOnly) sl@0: { sl@0: // not totally clear what to do for testing purposes, so just return 0 or -1 depending on param sl@0: return aCurrentOnly ? 0xffff : 0; sl@0: } sl@0: sl@0: void CTestEffect::RequestNotificationL(TUid aEventUid) sl@0: { sl@0: // for test, just remember the pass event uid and use in test GenCallbackL() call sl@0: iNotifyUid = aEventUid; sl@0: } sl@0: sl@0: void CTestEffect::GenCallbackL() sl@0: { sl@0: iObserver->GAEEventNotificationL(iParent, iNotifyUid, KNullDesC8); sl@0: } sl@0: sl@0: TBool CTestEffect::IsEnabled() const sl@0: { sl@0: return iEnabled; sl@0: } sl@0: sl@0: void CTestEffect::SetEnabledL(TBool aBool) sl@0: { sl@0: iEnabled = aBool; sl@0: } sl@0: sl@0: TBool CTestEffect::IsActive() const sl@0: { sl@0: return iIsActive; sl@0: } sl@0: sl@0: void CTestEffect::SetActive(TBool aValue) sl@0: { sl@0: iIsActive = aValue; sl@0: } sl@0: sl@0: TUid CTestEffect::SettingsByUidL() const sl@0: { sl@0: if (iValueState!=ESetByUid) sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: return iSettingsUid; sl@0: } sl@0: sl@0: void CTestEffect::SetSettingsByUidL(TUid aPresetUid) sl@0: { sl@0: iSettingsUid = aPresetUid; sl@0: iValueState = ESetByUid; sl@0: } sl@0: sl@0: HBufC8* CTestEffect::SettingsByDesL() const sl@0: { sl@0: // for test, if we've not set via Des then return default value - except for SetByValue sl@0: _LIT8(KDefaultDes, "1234"); sl@0: if (iValueState==ESetByDes) sl@0: { sl@0: return iSettingsDes->AllocL(); sl@0: } sl@0: else if (iValueState!=ESetByValue) sl@0: { sl@0: return KDefaultDes().AllocL(); sl@0: } sl@0: else sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: return NULL; sl@0: } sl@0: } sl@0: sl@0: void CTestEffect::SetSettingsByDesL(const TDesC8& aParam) sl@0: { sl@0: delete iSettingsDes; sl@0: iSettingsDes = NULL; sl@0: iSettingsDes = aParam.Alloc(); sl@0: iValueState = ESetByDes; sl@0: } sl@0: sl@0: MMmfGlobalAudioPresetList* CTestEffect::KnownPresetsL() sl@0: { sl@0: delete iPresetList; sl@0: iPresetList = NULL; sl@0: iPresetList = CPresetList::NewL(); sl@0: sl@0: // produce list of num in numeric and readable form, upto count sl@0: for (TInt index=0; index name; sl@0: name.Num(index); sl@0: TUid tempUid={index}; sl@0: iPresetList->AppendL(tempUid, name); sl@0: } sl@0: return iPresetList; sl@0: } sl@0: sl@0: void CTestEffect::ExtractValuesL(TDes8& aPackageBuf) sl@0: { sl@0: if (iValueState!=ESetByValue) sl@0: { sl@0: User::LeaveIfError(KErrNotSupported); sl@0: } sl@0: TPckgC packageBuf(iSettingsValue); sl@0: aPackageBuf = packageBuf; sl@0: } sl@0: sl@0: void CTestEffect::SetByValuesL(const TDesC8& aPackageBuf) sl@0: { sl@0: TPckg packageBuf(iSettingsValue); sl@0: packageBuf.Copy(aPackageBuf); sl@0: iValueState = ESetByValue; sl@0: } sl@0: sl@0: TInt CTestEffect::CreateCustomInterface(TUid aInterfaceUid) sl@0: { sl@0: if (aInterfaceUid==KUidTestGlbCustomCall) sl@0: { sl@0: // we derive from this anyway, so just return KErrNone to say supported sl@0: return KErrNone; sl@0: } sl@0: return KErrNotSupported; sl@0: } sl@0: sl@0: sl@0: TAny* CTestEffect::CustomInterface(TUid aInterfaceUid) sl@0: { sl@0: if (aInterfaceUid==KUidTestGlbCustomCall) sl@0: { sl@0: MTestEffectCustomIf* castedThis = this; sl@0: return castedThis; sl@0: } sl@0: return NULL; sl@0: } sl@0: sl@0: void CTestEffect::PassDestructorKey(TUid aDestructorKey) sl@0: { sl@0: iDestructorKey = aDestructorKey; sl@0: } sl@0: sl@0: void CTestEffect::CompleteConstructL(CMmfGlobalAudioEffect* aParent, MMmfGlobalAudioEffectObserver* aObserver) sl@0: { sl@0: iParent = aParent; sl@0: iObserver = aObserver; sl@0: } sl@0: sl@0: sl@0: sl@0: sl@0: // __________________________________________________________________________ sl@0: // Exported proxy for instantiation method resolution sl@0: // Define the interface UIDs sl@0: const TImplementationProxy ImplementationTable[] = sl@0: { sl@0: IMPLEMENTATION_PROXY_ENTRY(KUidTestGlblPluginImpDefine, CTestEffect::NewL), sl@0: }; sl@0: sl@0: EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount) sl@0: { sl@0: aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy); sl@0: sl@0: return ImplementationTable; sl@0: } sl@0: