os/mm/mmlibs/mmfw/tsrc/mmfunittest/DevSoundTest/CIPlugins/src/sbcencodertestdevice.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2007-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 <mmf/server/mmfswcodecwrappercustominterfacesuids.hrh>
sl@0
    17
sl@0
    18
#include "sbcencodertestdevice.h"
sl@0
    19
sl@0
    20
sl@0
    21
/*****************************************************************************/
sl@0
    22
// Implementation
sl@0
    23
sl@0
    24
CMMFHwDevice* CSbcEncoderTestDevice::NewL()
sl@0
    25
	{
sl@0
    26
	CSbcEncoderTestDevice* self = new(ELeave) CSbcEncoderTestDevice();
sl@0
    27
	CleanupStack::PushL(self);
sl@0
    28
	self->ConstructL();
sl@0
    29
	CleanupStack::Pop(self);
sl@0
    30
	return self;
sl@0
    31
	}
sl@0
    32
sl@0
    33
/*****************************************************************************/
sl@0
    34
CSbcEncoderTestDevice::~CSbcEncoderTestDevice()
sl@0
    35
	{
sl@0
    36
	}
sl@0
    37
sl@0
    38
/*****************************************************************************/
sl@0
    39
CSbcEncoderTestDevice::CSbcEncoderTestDevice()
sl@0
    40
	{
sl@0
    41
	}
sl@0
    42
sl@0
    43
/*****************************************************************************/
sl@0
    44
void CSbcEncoderTestDevice::ConstructL()
sl@0
    45
	{
sl@0
    46
	}
sl@0
    47
	
sl@0
    48
/*****************************************************************************/
sl@0
    49
TInt CSbcEncoderTestDevice::Start(TDeviceFunc /*aFuncCmd*/, TDeviceFlow /*aFlowCmd*/) 
sl@0
    50
	{
sl@0
    51
	return 0;
sl@0
    52
	}
sl@0
    53
sl@0
    54
/*****************************************************************************/
sl@0
    55
TInt CSbcEncoderTestDevice::Stop()
sl@0
    56
	{
sl@0
    57
	return 0;
sl@0
    58
	}
sl@0
    59
	
sl@0
    60
/*****************************************************************************/
sl@0
    61
TInt CSbcEncoderTestDevice::Pause()
sl@0
    62
	{
sl@0
    63
	return 0;
sl@0
    64
	}
sl@0
    65
sl@0
    66
/*****************************************************************************/		
sl@0
    67
TInt CSbcEncoderTestDevice::Init(THwDeviceInitParams& /*aDevInfo*/)
sl@0
    68
	{
sl@0
    69
	return 0;
sl@0
    70
	}
sl@0
    71
	
sl@0
    72
/*****************************************************************************/	
sl@0
    73
TAny* CSbcEncoderTestDevice::CustomInterface(TUid aInterfaceId)
sl@0
    74
	{
sl@0
    75
	MSbcEncoderIntfc* interface = NULL;
sl@0
    76
	
sl@0
    77
	// DevSound initialisation requires something to be returned for both of
sl@0
    78
	// these two uids: KMmfPlaySettingsCustomInterface, KMmfRecordSettingsCustomInterface
sl@0
    79
	if ((aInterfaceId == KUidSbcEncoderIntfc) || // This interface
sl@0
    80
		(aInterfaceId.iUid == KMmfPlaySettingsCustomInterface) ||
sl@0
    81
		(aInterfaceId.iUid == KMmfRecordSettingsCustomInterface))
sl@0
    82
		{
sl@0
    83
		interface = this;
sl@0
    84
		}
sl@0
    85
	
sl@0
    86
	return interface;
sl@0
    87
	}
sl@0
    88
sl@0
    89
/*****************************************************************************/
sl@0
    90
TInt CSbcEncoderTestDevice::ThisHwBufferFilled(CMMFBuffer& /*aFillBufferPtr*/)
sl@0
    91
	{
sl@0
    92
	return 0;
sl@0
    93
	}
sl@0
    94
	
sl@0
    95
/*****************************************************************************/	
sl@0
    96
TInt CSbcEncoderTestDevice::ThisHwBufferEmptied(CMMFBuffer& /*aEmptyBufferPtr*/)
sl@0
    97
	{
sl@0
    98
	return 0;
sl@0
    99
	}
sl@0
   100
	
sl@0
   101
/*****************************************************************************/	
sl@0
   102
TInt CSbcEncoderTestDevice::SetConfig(TTaskConfig& /*aConfig*/)
sl@0
   103
	{
sl@0
   104
	return 0;
sl@0
   105
	}
sl@0
   106
	
sl@0
   107
/*****************************************************************************/	
sl@0
   108
TInt CSbcEncoderTestDevice::StopAndDeleteCodec()
sl@0
   109
	{
sl@0
   110
	return 0;
sl@0
   111
	}
sl@0
   112
	
sl@0
   113
/*****************************************************************************/	
sl@0
   114
TInt CSbcEncoderTestDevice::DeleteCodec()
sl@0
   115
	{
sl@0
   116
	return 0;
sl@0
   117
	}
sl@0
   118
sl@0
   119
/*****************************************************************************/
sl@0
   120
CMMFSwCodec& CSbcEncoderTestDevice::Codec()
sl@0
   121
	{
sl@0
   122
	return *iCodec;
sl@0
   123
	}
sl@0
   124
sl@0
   125
/*****************************************************************************/
sl@0
   126
TInt CSbcEncoderTestDevice::GetSupportedSamplingFrequencies ( RArray<TUint>& aSamplingFrequencies )
sl@0
   127
	{
sl@0
   128
	TInt retVal = KErrNone;
sl@0
   129
	// Assume the strategy is to hard code a set of frequencies...
sl@0
   130
	//
sl@0
   131
	// Reset the input array
sl@0
   132
	aSamplingFrequencies.Reset();
sl@0
   133
	// Populate the array
sl@0
   134
	TUint value = 0;
sl@0
   135
	for (TInt i = 0; i < 10; i++)
sl@0
   136
		{
sl@0
   137
		retVal = aSamplingFrequencies.Append(value);
sl@0
   138
		if (retVal != KErrNone)
sl@0
   139
			{
sl@0
   140
			break;
sl@0
   141
			}
sl@0
   142
		value += 1000;
sl@0
   143
		}
sl@0
   144
sl@0
   145
	return retVal;
sl@0
   146
	}
sl@0
   147
sl@0
   148
TInt CSbcEncoderTestDevice::GetSupportedChannelModes ( RArray<TSbcChannelMode>& aChannelModes )
sl@0
   149
	{
sl@0
   150
	TInt retVal = KErrNone;
sl@0
   151
	aChannelModes.Reset();
sl@0
   152
	retVal = aChannelModes.Append(ESbcChannelMono);
sl@0
   153
	if (retVal == KErrNone)
sl@0
   154
		{
sl@0
   155
		retVal = aChannelModes.Append(ESbcChannelDual);
sl@0
   156
		if (retVal == KErrNone)
sl@0
   157
			{
sl@0
   158
			retVal = aChannelModes.Append(ESbcChannelStereo);
sl@0
   159
			if (retVal == KErrNone)
sl@0
   160
				{
sl@0
   161
				retVal = aChannelModes.Append(ESbcChannelJointStereo);
sl@0
   162
				}
sl@0
   163
			}				
sl@0
   164
		}
sl@0
   165
	return retVal;
sl@0
   166
	}
sl@0
   167
sl@0
   168
TInt CSbcEncoderTestDevice::GetSupportedNumOfSubbands ( RArray<TUint>& aNumOfSubbands )
sl@0
   169
	{
sl@0
   170
	TInt retVal = KErrNone;
sl@0
   171
	aNumOfSubbands.Reset();
sl@0
   172
	TUint val = 100;
sl@0
   173
	for (TInt i = 0; i < 5; i++)
sl@0
   174
		{
sl@0
   175
		retVal = aNumOfSubbands.Append(val);
sl@0
   176
		if (retVal != KErrNone)
sl@0
   177
			{
sl@0
   178
			break;
sl@0
   179
			}
sl@0
   180
		val += 100;
sl@0
   181
		}
sl@0
   182
	return retVal;
sl@0
   183
	}
sl@0
   184
 
sl@0
   185
TInt CSbcEncoderTestDevice::GetSupportedAllocationMethods ( RArray<TSbcAllocationMethod>& aAllocationMethods )
sl@0
   186
	{
sl@0
   187
	TInt retVal = KErrNone;
sl@0
   188
	aAllocationMethods.Reset();
sl@0
   189
	retVal = aAllocationMethods.Append(ESbcAllocationSNR);
sl@0
   190
	if (retVal == KErrNone)
sl@0
   191
		{
sl@0
   192
		retVal = aAllocationMethods.Append(ESbcAllocationLoudness);
sl@0
   193
		}
sl@0
   194
	return retVal;
sl@0
   195
	}
sl@0
   196
sl@0
   197
TInt CSbcEncoderTestDevice::GetSupportedNumOfBlocks ( RArray<TUint>& aNumOfBlocks )
sl@0
   198
	{
sl@0
   199
	TInt retVal = KErrNone;
sl@0
   200
	aNumOfBlocks.Reset();
sl@0
   201
	TUint val = 1;
sl@0
   202
	for (TInt i = 0; i < 10; i++, val++)
sl@0
   203
		{
sl@0
   204
		retVal = aNumOfBlocks.Append(val);
sl@0
   205
		if (retVal != KErrNone)
sl@0
   206
			{
sl@0
   207
			break;
sl@0
   208
			}
sl@0
   209
		}
sl@0
   210
	return retVal;
sl@0
   211
	}
sl@0
   212
sl@0
   213
TInt CSbcEncoderTestDevice::GetSupportedBitpoolRange (TUint& aMinSupportedBitpoolSize, TUint& aMaxSupportedBitpoolSize)
sl@0
   214
	{
sl@0
   215
	// Arbitrary values
sl@0
   216
	aMinSupportedBitpoolSize = 1;
sl@0
   217
	aMaxSupportedBitpoolSize = 2;
sl@0
   218
	
sl@0
   219
	return KErrNone;
sl@0
   220
	}
sl@0
   221
sl@0
   222
void CSbcEncoderTestDevice::SetSamplingFrequency ( TUint aSamplingFrequency )
sl@0
   223
	{
sl@0
   224
	iSamplingFrequency = aSamplingFrequency;
sl@0
   225
	}
sl@0
   226
sl@0
   227
void CSbcEncoderTestDevice::SetChannelMode (TSbcChannelMode aChannelMode )
sl@0
   228
	{
sl@0
   229
	iChannelMode = aChannelMode;
sl@0
   230
	}
sl@0
   231
sl@0
   232
void CSbcEncoderTestDevice::SetNumOfSubbands ( TUint aNumOfSubbands )
sl@0
   233
	{
sl@0
   234
	iNumOfSubbands = aNumOfSubbands;
sl@0
   235
	}
sl@0
   236
sl@0
   237
void CSbcEncoderTestDevice::SetAllocationMethod (TSbcAllocationMethod aAllocationMethod )
sl@0
   238
	{
sl@0
   239
	iAllocMethod = aAllocationMethod;
sl@0
   240
	}
sl@0
   241
sl@0
   242
void CSbcEncoderTestDevice::SetBitpoolSize (TUint aBitpoolSize )
sl@0
   243
	{
sl@0
   244
	iBitpoolSize = aBitpoolSize;
sl@0
   245
	}
sl@0
   246
sl@0
   247
TInt CSbcEncoderTestDevice::ApplyConfig()
sl@0
   248
	{
sl@0
   249
	iApplyConfig = ETrue;
sl@0
   250
	return KErrNone;
sl@0
   251
	}
sl@0
   252
sl@0
   253
TInt CSbcEncoderTestDevice::GetSamplingFrequency ( TUint& aSamplingFrequency )
sl@0
   254
	{
sl@0
   255
	TInt retVal = KErrNone;
sl@0
   256
	aSamplingFrequency = iSamplingFrequency;
sl@0
   257
	return retVal;
sl@0
   258
	}
sl@0
   259
sl@0
   260
TInt CSbcEncoderTestDevice::GetChannelMode (TSbcChannelMode& aChannelMode )
sl@0
   261
	{
sl@0
   262
	TInt retVal = KErrNone;
sl@0
   263
	aChannelMode = iChannelMode;	
sl@0
   264
	return retVal;
sl@0
   265
	}
sl@0
   266
sl@0
   267
TInt CSbcEncoderTestDevice::GetNumOfSubbands ( TUint& aNumOfSubbands )
sl@0
   268
	{
sl@0
   269
	TInt retVal = KErrNone;
sl@0
   270
	aNumOfSubbands = iNumOfSubbands;
sl@0
   271
sl@0
   272
	return retVal;
sl@0
   273
	}
sl@0
   274
sl@0
   275
TInt CSbcEncoderTestDevice::GetAllocationMethod (TSbcAllocationMethod& aAllocationMethod )
sl@0
   276
	{
sl@0
   277
	TInt retVal = KErrNone;
sl@0
   278
	aAllocationMethod = iAllocMethod;
sl@0
   279
	return retVal;
sl@0
   280
	}
sl@0
   281
sl@0
   282
TInt CSbcEncoderTestDevice::GetBitpoolSize (TUint& aBitpoolSize )
sl@0
   283
	{
sl@0
   284
	TInt retVal = KErrNone;
sl@0
   285
	aBitpoolSize = iBitpoolSize;
sl@0
   286
	return retVal;
sl@0
   287
	}
sl@0
   288
sl@0
   289
void CSbcEncoderTestDevice::SetNumOfBlocks ( TUint aNumOfBlocks )
sl@0
   290
	{
sl@0
   291
	iNumOfBlocks = aNumOfBlocks;
sl@0
   292
	}
sl@0
   293
sl@0
   294
TInt CSbcEncoderTestDevice::GetNumOfBlocks ( TUint& aNumOfBlocks )
sl@0
   295
	{
sl@0
   296
	TInt retVal = KErrNone;
sl@0
   297
	aNumOfBlocks = iNumOfBlocks;
sl@0
   298
	return retVal;
sl@0
   299
	}
sl@0
   300