os/mm/mmlibs/mmfw/tsrc/mmfunittest/GEF/Plugin/TestGlobalEffectPlugin.cpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
#include "TestGlobalEffectPlugin.h"
sl@0
    17
sl@0
    18
#include <ecom/ecom.h>
sl@0
    19
#include <ecom/implementationproxy.h>
sl@0
    20
#include "../src/TestGlobalEffect.hrh"
sl@0
    21
sl@0
    22
const TUid KUidTestGlbCustomCall = {KUidTestGlbCustomCallDefine};
sl@0
    23
const TInt KPresetsCount = 3;
sl@0
    24
sl@0
    25
//
sl@0
    26
// CTestEffect
sl@0
    27
//
sl@0
    28
sl@0
    29
CTestEffect::CTestEffect()
sl@0
    30
	{
sl@0
    31
	}
sl@0
    32
	
sl@0
    33
CTestEffect::~CTestEffect()
sl@0
    34
	{
sl@0
    35
	delete iSettingsDes;
sl@0
    36
	delete iPresetList;
sl@0
    37
	REComSession::DestroyedImplementation(iDestructorKey);
sl@0
    38
	}
sl@0
    39
	
sl@0
    40
MMmfGlobalAudioImpl* CTestEffect::NewL()
sl@0
    41
	{
sl@0
    42
	return new (ELeave) CTestEffect;
sl@0
    43
	}
sl@0
    44
sl@0
    45
void CTestEffect::Release()
sl@0
    46
	{
sl@0
    47
	// this is effectively delete
sl@0
    48
	delete this;
sl@0
    49
	}
sl@0
    50
	
sl@0
    51
TUint CTestEffect::Capability(TBool aCurrentOnly)
sl@0
    52
	{
sl@0
    53
	// not totally clear what to do for testing purposes, so just return 0 or -1 depending on param
sl@0
    54
	return aCurrentOnly ? 0xffff : 0;
sl@0
    55
	}
sl@0
    56
	
sl@0
    57
void CTestEffect::RequestNotificationL(TUid aEventUid)
sl@0
    58
	{
sl@0
    59
	// for test, just remember the pass event uid and use in test GenCallbackL() call
sl@0
    60
	iNotifyUid = aEventUid;
sl@0
    61
	}
sl@0
    62
	
sl@0
    63
void CTestEffect::GenCallbackL()
sl@0
    64
	{
sl@0
    65
	iObserver->GAEEventNotificationL(iParent, iNotifyUid, KNullDesC8);
sl@0
    66
	}
sl@0
    67
	
sl@0
    68
TBool CTestEffect::IsEnabled() const
sl@0
    69
	{
sl@0
    70
	return iEnabled;
sl@0
    71
	}
sl@0
    72
	
sl@0
    73
void CTestEffect::SetEnabledL(TBool aBool)
sl@0
    74
	{
sl@0
    75
	iEnabled = aBool;
sl@0
    76
	}
sl@0
    77
	
sl@0
    78
TBool CTestEffect::IsActive() const
sl@0
    79
	{
sl@0
    80
	return iIsActive;
sl@0
    81
	}
sl@0
    82
	
sl@0
    83
void CTestEffect::SetActive(TBool aValue)
sl@0
    84
	{
sl@0
    85
	iIsActive = aValue;
sl@0
    86
	}
sl@0
    87
	
sl@0
    88
TUid CTestEffect::SettingsByUidL() const
sl@0
    89
	{
sl@0
    90
	if (iValueState!=ESetByUid)
sl@0
    91
		{
sl@0
    92
		User::Leave(KErrNotSupported);
sl@0
    93
		}
sl@0
    94
	return iSettingsUid;
sl@0
    95
	}
sl@0
    96
	
sl@0
    97
void CTestEffect::SetSettingsByUidL(TUid aPresetUid)
sl@0
    98
	{
sl@0
    99
	iSettingsUid = aPresetUid;
sl@0
   100
	iValueState = ESetByUid;
sl@0
   101
	}
sl@0
   102
	
sl@0
   103
HBufC8* CTestEffect::SettingsByDesL() const
sl@0
   104
	{
sl@0
   105
	// for test, if we've not set via Des then return default value - except for SetByValue
sl@0
   106
	_LIT8(KDefaultDes, "1234");
sl@0
   107
	if (iValueState==ESetByDes)
sl@0
   108
		{
sl@0
   109
		return iSettingsDes->AllocL();
sl@0
   110
		}
sl@0
   111
	else if (iValueState!=ESetByValue)
sl@0
   112
		{
sl@0
   113
		return KDefaultDes().AllocL();
sl@0
   114
		}
sl@0
   115
	else
sl@0
   116
		{
sl@0
   117
		User::Leave(KErrNotSupported);
sl@0
   118
		return NULL;
sl@0
   119
		}
sl@0
   120
	}
sl@0
   121
	
sl@0
   122
void CTestEffect::SetSettingsByDesL(const TDesC8& aParam)
sl@0
   123
	{
sl@0
   124
	delete iSettingsDes;
sl@0
   125
	iSettingsDes = NULL;
sl@0
   126
	iSettingsDes = aParam.Alloc();
sl@0
   127
	iValueState = ESetByDes;
sl@0
   128
	}
sl@0
   129
	
sl@0
   130
MMmfGlobalAudioPresetList* CTestEffect::KnownPresetsL()
sl@0
   131
	{
sl@0
   132
	delete iPresetList;
sl@0
   133
	iPresetList = NULL;
sl@0
   134
	iPresetList = CPresetList::NewL();
sl@0
   135
	
sl@0
   136
	// produce list of num in numeric and readable form, upto count
sl@0
   137
	for (TInt index=0; index<KPresetsCount; index++)
sl@0
   138
		{
sl@0
   139
		TBuf<10> name;
sl@0
   140
		name.Num(index);
sl@0
   141
		TUid tempUid={index};
sl@0
   142
		iPresetList->AppendL(tempUid, name);
sl@0
   143
		}
sl@0
   144
	return iPresetList;
sl@0
   145
	}
sl@0
   146
	
sl@0
   147
void CTestEffect::ExtractValuesL(TDes8& aPackageBuf)
sl@0
   148
	{
sl@0
   149
	if (iValueState!=ESetByValue)
sl@0
   150
		{
sl@0
   151
		User::LeaveIfError(KErrNotSupported);
sl@0
   152
		}
sl@0
   153
	TPckgC<TInt> packageBuf(iSettingsValue);
sl@0
   154
	aPackageBuf = packageBuf;
sl@0
   155
	}
sl@0
   156
	
sl@0
   157
void CTestEffect::SetByValuesL(const TDesC8& aPackageBuf)
sl@0
   158
	{
sl@0
   159
	TPckg<TInt> packageBuf(iSettingsValue);
sl@0
   160
	packageBuf.Copy(aPackageBuf);
sl@0
   161
	iValueState = ESetByValue;
sl@0
   162
	}
sl@0
   163
	
sl@0
   164
TInt CTestEffect::CreateCustomInterface(TUid aInterfaceUid)
sl@0
   165
	{
sl@0
   166
	if (aInterfaceUid==KUidTestGlbCustomCall)
sl@0
   167
		{
sl@0
   168
		// we derive from this anyway, so just return KErrNone to say supported
sl@0
   169
		return KErrNone;
sl@0
   170
		}
sl@0
   171
	return KErrNotSupported;
sl@0
   172
	}
sl@0
   173
sl@0
   174
sl@0
   175
TAny* CTestEffect::CustomInterface(TUid aInterfaceUid)
sl@0
   176
	{
sl@0
   177
	if (aInterfaceUid==KUidTestGlbCustomCall)
sl@0
   178
		{
sl@0
   179
		MTestEffectCustomIf* castedThis = this;
sl@0
   180
		return castedThis;
sl@0
   181
		}
sl@0
   182
	return NULL;
sl@0
   183
	}
sl@0
   184
		
sl@0
   185
void CTestEffect::PassDestructorKey(TUid aDestructorKey)
sl@0
   186
	{
sl@0
   187
	iDestructorKey = aDestructorKey;
sl@0
   188
	}
sl@0
   189
	
sl@0
   190
void CTestEffect::CompleteConstructL(CMmfGlobalAudioEffect* aParent, MMmfGlobalAudioEffectObserver* aObserver)
sl@0
   191
	{
sl@0
   192
	iParent = aParent;
sl@0
   193
	iObserver = aObserver;
sl@0
   194
	}
sl@0
   195
sl@0
   196
sl@0
   197
sl@0
   198
sl@0
   199
// __________________________________________________________________________
sl@0
   200
// Exported proxy for instantiation method resolution
sl@0
   201
// Define the interface UIDs
sl@0
   202
const TImplementationProxy ImplementationTable[] = 
sl@0
   203
	{
sl@0
   204
		IMPLEMENTATION_PROXY_ENTRY(KUidTestGlblPluginImpDefine,	CTestEffect::NewL),
sl@0
   205
	};
sl@0
   206
sl@0
   207
EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
sl@0
   208
	{
sl@0
   209
	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
sl@0
   210
sl@0
   211
	return ImplementationTable;
sl@0
   212
	}
sl@0
   213