os/mm/mmlibs/mmfw/tsrc/mmfunittest/ctlfrm/TSU_MMF_CTLFRM.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) 2002-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
// NB: these includes are added here to pull in includes from MmfControllerFramework.h
sl@0
    15
// They are placed here as we are messing aroung with private (see below) to allow access to 
sl@0
    16
// the private member iSubThread in RMMFControllerProxy for test 152 without resorting to friend 
sl@0
    17
// classes. This was done to test INC038123.
sl@0
    18
// +++++++++  Start of playing around with private block. +++++++++++++
sl@0
    19
// 
sl@0
    20
//
sl@0
    21
sl@0
    22
#include <e32base.h>
sl@0
    23
#include <e32std.h>
sl@0
    24
#include <mmf/common/mmfutilities.h>
sl@0
    25
#include <mmf/common/mmfcontrollerframeworkbase.h>
sl@0
    26
sl@0
    27
#define private public
sl@0
    28
#include <mmf/common/mmfcontrollerframework.h>
sl@0
    29
#undef private
sl@0
    30
//++++++++ End of playing around with private block. +++++++++++
sl@0
    31
sl@0
    32
sl@0
    33
// Test system includes
sl@0
    34
#include <testframework.h>
sl@0
    35
sl@0
    36
#include <mmf/plugin/mmfformatimplementationuids.hrh>
sl@0
    37
#include <mmf/plugin/mmfcontrollerimplementationuids.hrh>
sl@0
    38
sl@0
    39
#include "CmmfTestControllerUIDs.hrh"
sl@0
    40
#include "cmmftestterminationcontrolleruids.hrh"
sl@0
    41
#include "TSU_MMF_CTLFRM.h"
sl@0
    42
#include "TSU_MMF_CTLFRMSuite.h"
sl@0
    43
sl@0
    44
//const TUid KMmfUidControllerAudioUid = {KMmfUidControllerAudio};	// EABI warning removal
sl@0
    45
const TUid KTstControllerUid = {KMmfTestControllerUid}; //(0x101F88D8)
sl@0
    46
const TUid KTestDataSourceUid = {KMmfTestDataSourceUid};
sl@0
    47
const TUid KTestDataSourceBUid = {KMmfTestDataSourceBUid};
sl@0
    48
const TUid KTestDataSinkUid = {KMmfTestDataSinkUid};
sl@0
    49
const TUid KTestDataSinkBUid = 	{KMmfTestDataSinkBUid};
sl@0
    50
const TUid KTestTerminationControllerUid = {KMmfTestTerminationControllerUid};
sl@0
    51
sl@0
    52
// Expected results in Test 0140s.
sl@0
    53
// 'KMmfUidControllerAudio' is the preferred Controller used in these tests
sl@0
    54
const TUid KExpectedMediaIDUid140 = {0x101F7D8D};//{0x101F5D07};
sl@0
    55
                                    
sl@0
    56
const TUid KMmfUidFormatPAVReadUid = {KMmfUidFormatPAVRead};
sl@0
    57
const TUid KMmfUidFormatFAWReadUid = {KMmfUidFormatFAWRead};
sl@0
    58
const TUid KMmfUidFormatAIReadUid = {KMmfUidFormatAIRead};
sl@0
    59
const TUid KMmfUidFormatMBEGReadUid = {KMmfUidFormatMBEGRead};
sl@0
    60
sl@0
    61
const TUid KMmfUidFormatPAVWriteUid = {KMmfUidFormatPAVWrite};
sl@0
    62
const TUid KMmfUidFormatFAWWriteUid = {KMmfUidFormatFAWWrite};
sl@0
    63
const TUid KMmfUidFormatAIWriteUid = {KMmfUidFormatAIWrite};
sl@0
    64
sl@0
    65
const TUid KMmfUidPluginInterfaceFormatEncodeUid = {KMmfUidPluginInterfaceFormatEncode};
sl@0
    66
const TUid KMmfUidPluginInterfaceFormatDecodeUid = {KMmfUidPluginInterfaceFormatDecode};
sl@0
    67
sl@0
    68
_LIT(KTestControllerSupplier, "TSU_MMF_CTLFRM");
sl@0
    69
sl@0
    70
// Used as dummy data to pass to sources, sinks etc
sl@0
    71
_LIT8(KInitData,"TEST");
sl@0
    72
sl@0
    73
/**
sl@0
    74
 *
sl@0
    75
 * CTestStepSelfTest constructor
sl@0
    76
 *
sl@0
    77
 * @xxxx
sl@0
    78
 * 
sl@0
    79
 */
sl@0
    80
CTestStep_MMF_CTLFRM::CTestStep_MMF_CTLFRM() 
sl@0
    81
	{
sl@0
    82
	}
sl@0
    83
sl@0
    84
/**
sl@0
    85
 *
sl@0
    86
 * CTestStepSelfTest destructor
sl@0
    87
 *
sl@0
    88
 * @xxxx
sl@0
    89
 * 
sl@0
    90
 */
sl@0
    91
CTestStep_MMF_CTLFRM::~CTestStep_MMF_CTLFRM()
sl@0
    92
	{
sl@0
    93
	}
sl@0
    94
sl@0
    95
TVerdict CTestStep_MMF_CTLFRM::DoTestStepPreambleL()
sl@0
    96
	{
sl@0
    97
	TVerdict verdict = EPass;
sl@0
    98
sl@0
    99
	return verdict;
sl@0
   100
	}
sl@0
   101
sl@0
   102
TVerdict CTestStep_MMF_CTLFRM::DoTestStepPostambleL()
sl@0
   103
	{
sl@0
   104
	TVerdict verdict = EPass;
sl@0
   105
sl@0
   106
	return verdict;
sl@0
   107
	}
sl@0
   108
sl@0
   109
sl@0
   110
CTestStep_MMF_CTLFRM_U_0001::CTestStep_MMF_CTLFRM_U_0001()
sl@0
   111
	/** Constructor
sl@0
   112
	*/
sl@0
   113
	{
sl@0
   114
	// store the name of this test case
sl@0
   115
	// this is the name that is used by the script file
sl@0
   116
	// Each test step initialises it's own name
sl@0
   117
	iTestStepName = _L("MM-MMF-CTLFRM-U-0001");
sl@0
   118
sl@0
   119
	
sl@0
   120
	}
sl@0
   121
sl@0
   122
sl@0
   123
TVerdict CTestStep_MMF_CTLFRM_U_0001::DoTestStepL( void )
sl@0
   124
/** 
sl@0
   125
 * Call the RMMFController::Open(..) with the parameters specified, 
sl@0
   126
 * varify the return value is 0. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   127
 * Varify 'error' is 0.
sl@0
   128
sl@0
   129
 * Use case: N/A
sl@0
   130
 * @test Req. under test REQ172.5.1 REQ172.5.2 REQ172.5.5.12
sl@0
   131
 */
sl@0
   132
	{
sl@0
   133
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   134
	__MM_HEAP_MARK;
sl@0
   135
sl@0
   136
	TVerdict verdict = EPass;
sl@0
   137
sl@0
   138
	TMMFPrioritySettings settings;
sl@0
   139
	TInt error = KErrNone;
sl@0
   140
	RMMFController controller;
sl@0
   141
sl@0
   142
	settings.iPriority = 1;
sl@0
   143
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   144
	settings.iState = EMMFStateIdle;
sl@0
   145
sl@0
   146
	INFO_PRINTF1(_L("Attempting to Open Controller"));
sl@0
   147
sl@0
   148
	// Open a Custom Controller
sl@0
   149
	error = controller.Open(KTstControllerUid,settings);
sl@0
   150
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   151
sl@0
   152
	if (error)
sl@0
   153
		{
sl@0
   154
		verdict = EFail;
sl@0
   155
		}
sl@0
   156
sl@0
   157
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   158
	controller.Close();
sl@0
   159
sl@0
   160
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   161
	__MM_HEAP_MARKEND;
sl@0
   162
 
sl@0
   163
	return verdict;
sl@0
   164
	}
sl@0
   165
sl@0
   166
sl@0
   167
//------------------------------------------------------------------
sl@0
   168
sl@0
   169
sl@0
   170
CTestStep_MMF_CTLFRM_U_0007::CTestStep_MMF_CTLFRM_U_0007()
sl@0
   171
	/** Constructor
sl@0
   172
	*/
sl@0
   173
	{
sl@0
   174
	// store the name of this test case
sl@0
   175
	// this is the name that is used by the script file
sl@0
   176
	// Each test step initialises it's own name
sl@0
   177
	iTestStepName = _L("MM-MMF-CTLFRM-U-0007");
sl@0
   178
sl@0
   179
	
sl@0
   180
	}
sl@0
   181
sl@0
   182
sl@0
   183
TVerdict CTestStep_MMF_CTLFRM_U_0007::DoTestStepL( void )
sl@0
   184
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001), 
sl@0
   185
 *  varify the return value is 0. Instantiate a Custom DataSource Object and add  it to 
sl@0
   186
 *  the Custom Controller using RMMFController::AddDataSource(..), with the specified 
sl@0
   187
 *  parameters. Call Custom Command 'KLogFunction' and varify the text value returned is 
sl@0
   188
 *  equal to the specifed text in Test Step. Call the RMMFController::Close() on the Custom 
sl@0
   189
 *  Controller. Varify 'error' is 0.
sl@0
   190
sl@0
   191
 * Use case: N/A
sl@0
   192
 * @test Req. under test REQ172.5.5 REQ172.5.5.1
sl@0
   193
 */
sl@0
   194
	{
sl@0
   195
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   196
	__MM_HEAP_MARK;
sl@0
   197
sl@0
   198
	TVerdict verdict = EPass;
sl@0
   199
	_LIT8(KExpectedResult, "AddDataSourceL Called");
sl@0
   200
sl@0
   201
	TMMFPrioritySettings settings;
sl@0
   202
	TInt error = KErrNone;
sl@0
   203
	RMMFController controller;
sl@0
   204
sl@0
   205
	settings.iPriority = 1;
sl@0
   206
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   207
	settings.iState = EMMFStateIdle;
sl@0
   208
sl@0
   209
	error = controller.Open(KTstControllerUid,settings);
sl@0
   210
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   211
sl@0
   212
	const TDesC8& initData = KInitData;
sl@0
   213
sl@0
   214
	// Add Source
sl@0
   215
	INFO_PRINTF1(_L("Attempting to add a Source and a Sink to Controller"));
sl@0
   216
	if (!error)
sl@0
   217
		{
sl@0
   218
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
   219
		error = controller.AddDataSource(KTestDataSourceUid, initData);
sl@0
   220
		error = controller.AddDataSource(KTestDataSourceBUid, initData);
sl@0
   221
		}
sl@0
   222
sl@0
   223
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   224
sl@0
   225
	//------------------------------------//
sl@0
   226
	// Getting Log from Custom Controller //
sl@0
   227
	//------------------------------------//
sl@0
   228
	if (!error)
sl@0
   229
		{
sl@0
   230
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   231
sl@0
   232
		TBuf8<64> memFunctionText;
sl@0
   233
	
sl@0
   234
		TUid uid = {KMmfTestControllerUid};
sl@0
   235
		TMMFMessageDestination handleInfo(uid);
sl@0
   236
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   237
sl@0
   238
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   239
		
sl@0
   240
		TBuf<64> memFunctionText16;
sl@0
   241
		memFunctionText16.Copy(memFunctionText);
sl@0
   242
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   243
sl@0
   244
sl@0
   245
		if (memFunctionText != KExpectedResult)
sl@0
   246
			{
sl@0
   247
			verdict = EFail;
sl@0
   248
			}
sl@0
   249
sl@0
   250
		}
sl@0
   251
	//------------------------------------//
sl@0
   252
	
sl@0
   253
	
sl@0
   254
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   255
	controller.Close();
sl@0
   256
sl@0
   257
	if (error)
sl@0
   258
		{
sl@0
   259
		verdict = EFail;
sl@0
   260
		}
sl@0
   261
sl@0
   262
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   263
	__MM_HEAP_MARKEND;
sl@0
   264
 
sl@0
   265
	return verdict;
sl@0
   266
	}
sl@0
   267
sl@0
   268
//------------------------------------------------------------------
sl@0
   269
sl@0
   270
CTestStep_MMF_CTLFRM_U_0008::CTestStep_MMF_CTLFRM_U_0008()
sl@0
   271
	/** Constructor
sl@0
   272
	*/
sl@0
   273
	{
sl@0
   274
	// store the name of this test case
sl@0
   275
	// this is the name that is used by the script file
sl@0
   276
	// Each test step initialises it's own name
sl@0
   277
	iTestStepName = _L("MM-MMF-CTLFRM-U-0008");
sl@0
   278
sl@0
   279
	
sl@0
   280
	}
sl@0
   281
sl@0
   282
TVerdict CTestStep_MMF_CTLFRM_U_0008::DoTestStepL( void )
sl@0
   283
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001), 
sl@0
   284
 *  varify the return value is 0. Instantiate a Custom DataSink Object and add it to the 
sl@0
   285
 *  Custom Controller using RMMFController::AddDataSink(..), with the specified parameters. 
sl@0
   286
 *  Call Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
   287
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   288
 *  Varify 'error' is 0.
sl@0
   289
sl@0
   290
 * Use case: N/A
sl@0
   291
 * @test Req. under test REQ172.5.5 REQ172.5.5.3
sl@0
   292
 */
sl@0
   293
	{
sl@0
   294
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   295
	__MM_HEAP_MARK;
sl@0
   296
sl@0
   297
	TVerdict verdict = EPass;
sl@0
   298
	_LIT8(KExpectedResult, "AddDataSinkL Called");
sl@0
   299
sl@0
   300
	TMMFPrioritySettings settings;
sl@0
   301
	TInt error = KErrNone;
sl@0
   302
	RMMFController controller;
sl@0
   303
sl@0
   304
	settings.iPriority = 1;
sl@0
   305
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   306
	settings.iState = EMMFStateIdle;
sl@0
   307
sl@0
   308
	error = controller.Open(KTstControllerUid,settings);
sl@0
   309
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   310
sl@0
   311
	const TDesC8& initData = KInitData;
sl@0
   312
sl@0
   313
	// Add Sink
sl@0
   314
	if (!error)
sl@0
   315
		{
sl@0
   316
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
   317
		error = controller.AddDataSink(KTestDataSinkUid, initData);
sl@0
   318
		error = controller.AddDataSink(KTestDataSinkBUid, initData);
sl@0
   319
		}
sl@0
   320
sl@0
   321
		
sl@0
   322
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   323
sl@0
   324
	//------------------------------------//
sl@0
   325
	// Getting Log from Custom Controller //
sl@0
   326
	//------------------------------------//
sl@0
   327
	if (!error)
sl@0
   328
		{
sl@0
   329
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   330
sl@0
   331
		TBuf8<64> memFunctionText;
sl@0
   332
	
sl@0
   333
		TUid uid = {KMmfTestControllerUid};
sl@0
   334
		TMMFMessageDestination handleInfo(uid);
sl@0
   335
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   336
sl@0
   337
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   338
		
sl@0
   339
		TBuf<64> memFunctionText16;
sl@0
   340
		memFunctionText16.Copy(memFunctionText);
sl@0
   341
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   342
sl@0
   343
		if (memFunctionText != KExpectedResult)
sl@0
   344
			{
sl@0
   345
			verdict = EFail;
sl@0
   346
			}
sl@0
   347
sl@0
   348
		}
sl@0
   349
	//------------------------------------//
sl@0
   350
sl@0
   351
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   352
	controller.Close();
sl@0
   353
sl@0
   354
	if (error)
sl@0
   355
		{
sl@0
   356
		verdict = EFail;
sl@0
   357
		}
sl@0
   358
sl@0
   359
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   360
	__MM_HEAP_MARKEND;
sl@0
   361
 
sl@0
   362
	return verdict;
sl@0
   363
	}
sl@0
   364
sl@0
   365
//------------------------------------------------------------------
sl@0
   366
sl@0
   367
CTestStep_MMF_CTLFRM_U_0009::CTestStep_MMF_CTLFRM_U_0009()
sl@0
   368
	/** Constructor
sl@0
   369
	*/
sl@0
   370
	{
sl@0
   371
	// store the name of this test case
sl@0
   372
	// this is the name that is used by the script file
sl@0
   373
	// Each test step initialises it's own name
sl@0
   374
	iTestStepName = _L("MM-MMF-CTLFRM-U-0009");
sl@0
   375
sl@0
   376
	
sl@0
   377
	}
sl@0
   378
sl@0
   379
TVerdict CTestStep_MMF_CTLFRM_U_0009::DoTestStepL( void )
sl@0
   380
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001), 
sl@0
   381
 *  varify the return value is 0. Instantiate a Custom DataSource Object and add it to the 
sl@0
   382
 *  Custom Controller using RMMFController::AddDataSource(..), with the specified parameters.
sl@0
   383
 *  Call Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
   384
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   385
 *  Varify 'error' is 0.
sl@0
   386
sl@0
   387
 * Use case: N/A
sl@0
   388
 * @test Req. under test REQ172.5.5 REQ172.5.5.1
sl@0
   389
 */
sl@0
   390
	{
sl@0
   391
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   392
	__MM_HEAP_MARK;
sl@0
   393
sl@0
   394
	TVerdict verdict = EPass;
sl@0
   395
	_LIT8(KExpectedResult, "AddDataSourceL Called");
sl@0
   396
sl@0
   397
	TMMFPrioritySettings settings;
sl@0
   398
	TInt error = KErrNone;
sl@0
   399
	RMMFController controller;
sl@0
   400
sl@0
   401
	settings.iPriority = 1;
sl@0
   402
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   403
	settings.iState = EMMFStateIdle;
sl@0
   404
sl@0
   405
	error = controller.Open(KTstControllerUid,settings);
sl@0
   406
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   407
sl@0
   408
	const TDesC8& initData = KInitData;
sl@0
   409
sl@0
   410
	TMMFMessageDestination sourceHandlePtr;
sl@0
   411
	TMMFMessageDestination& sourceHandle = sourceHandlePtr;
sl@0
   412
sl@0
   413
	// Add Source
sl@0
   414
	INFO_PRINTF1(_L("Attempting to add a Source and a Sink to Controller"));
sl@0
   415
	if (!error)
sl@0
   416
		{
sl@0
   417
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
   418
		error = controller.AddDataSource(KTestDataSourceUid, initData, sourceHandle);
sl@0
   419
		}
sl@0
   420
		
sl@0
   421
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   422
sl@0
   423
	//------------------------------------//
sl@0
   424
	// Getting Log from Custom Controller //
sl@0
   425
	//------------------------------------//
sl@0
   426
	if (!error)
sl@0
   427
		{
sl@0
   428
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   429
sl@0
   430
		TBuf8<64> memFunctionText;
sl@0
   431
	
sl@0
   432
		TUid uid = {KMmfTestControllerUid};
sl@0
   433
		TMMFMessageDestination handleInfo(uid);
sl@0
   434
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   435
sl@0
   436
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   437
		
sl@0
   438
		TBuf<64> memFunctionText16;
sl@0
   439
		memFunctionText16.Copy(memFunctionText);
sl@0
   440
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   441
sl@0
   442
		if (memFunctionText != KExpectedResult)
sl@0
   443
			{
sl@0
   444
			verdict = EFail;
sl@0
   445
			}
sl@0
   446
sl@0
   447
		}
sl@0
   448
	//------------------------------------//
sl@0
   449
sl@0
   450
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   451
	controller.Close();
sl@0
   452
sl@0
   453
	if (error)
sl@0
   454
		{
sl@0
   455
		verdict = EFail;
sl@0
   456
		}
sl@0
   457
sl@0
   458
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   459
	__MM_HEAP_MARKEND;
sl@0
   460
 
sl@0
   461
	return verdict;
sl@0
   462
	}
sl@0
   463
sl@0
   464
//------------------------------------------------------------------
sl@0
   465
sl@0
   466
CTestStep_MMF_CTLFRM_U_0010::CTestStep_MMF_CTLFRM_U_0010()
sl@0
   467
	/** Constructor
sl@0
   468
	*/
sl@0
   469
	{
sl@0
   470
	// store the name of this test case
sl@0
   471
	// this is the name that is used by the script file
sl@0
   472
	// Each test step initialises it's own name
sl@0
   473
	iTestStepName = _L("MM-MMF-CTLFRM-U-0010");
sl@0
   474
sl@0
   475
	
sl@0
   476
	}
sl@0
   477
sl@0
   478
TVerdict CTestStep_MMF_CTLFRM_U_0010::DoTestStepL( void )
sl@0
   479
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001), 
sl@0
   480
 *  varify the return value is 0. Instantiate a Custom DataSink Object and add it to the 
sl@0
   481
 *  Custom Controller using RMMFController::AddDataSink(..), with the specified parameters. 
sl@0
   482
 *  Call Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
   483
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   484
 *  Varify 'error' is 0.
sl@0
   485
sl@0
   486
 * Use case: N/A
sl@0
   487
 * @test Req. under test REQ172.5.5 REQ172.5.5.3
sl@0
   488
 */
sl@0
   489
	{
sl@0
   490
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   491
	__MM_HEAP_MARK;
sl@0
   492
sl@0
   493
	TVerdict verdict = EPass;
sl@0
   494
	_LIT8(KExpectedResult, "AddDataSinkL Called");
sl@0
   495
sl@0
   496
	TMMFPrioritySettings settings;
sl@0
   497
	TInt error = KErrNone;
sl@0
   498
	RMMFController controller;
sl@0
   499
sl@0
   500
	settings.iPriority = 1;
sl@0
   501
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   502
	settings.iState = EMMFStateIdle;
sl@0
   503
sl@0
   504
	error = controller.Open(KTstControllerUid,settings);
sl@0
   505
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   506
sl@0
   507
	const TDesC8& initData = KInitData;
sl@0
   508
	TMMFMessageDestination sinkHandlePtr;
sl@0
   509
	TMMFMessageDestination& sinkHandle = sinkHandlePtr;
sl@0
   510
sl@0
   511
	// Add Sink
sl@0
   512
	if (!error)
sl@0
   513
		{
sl@0
   514
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
   515
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle);
sl@0
   516
		}
sl@0
   517
sl@0
   518
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   519
sl@0
   520
	//------------------------------------//
sl@0
   521
	// Getting Log from Custom Controller //
sl@0
   522
	//------------------------------------//
sl@0
   523
	if (!error)
sl@0
   524
		{
sl@0
   525
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   526
sl@0
   527
		TBuf8<64> memFunctionText;
sl@0
   528
	
sl@0
   529
		TUid uid = {KMmfTestControllerUid};
sl@0
   530
		TMMFMessageDestination handleInfo(uid);
sl@0
   531
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   532
sl@0
   533
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   534
		
sl@0
   535
		TBuf<64> memFunctionText16;
sl@0
   536
		memFunctionText16.Copy(memFunctionText);
sl@0
   537
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   538
sl@0
   539
		if (memFunctionText != KExpectedResult)
sl@0
   540
			{
sl@0
   541
			verdict = EFail;
sl@0
   542
			}
sl@0
   543
sl@0
   544
		}
sl@0
   545
	//------------------------------------//
sl@0
   546
	
sl@0
   547
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   548
	controller.Close();
sl@0
   549
sl@0
   550
	if (error)
sl@0
   551
		{
sl@0
   552
		verdict = EFail;
sl@0
   553
		}
sl@0
   554
sl@0
   555
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   556
	__MM_HEAP_MARKEND;
sl@0
   557
 
sl@0
   558
	return verdict;
sl@0
   559
	}
sl@0
   560
sl@0
   561
sl@0
   562
//------------------------------------------------------------------
sl@0
   563
sl@0
   564
CTestStep_MMF_CTLFRM_U_0011::CTestStep_MMF_CTLFRM_U_0011()
sl@0
   565
	/** Constructor
sl@0
   566
	*/
sl@0
   567
	{
sl@0
   568
	// store the name of this test case
sl@0
   569
	// this is the name that is used by the script file
sl@0
   570
	// Each test step initialises it's own name
sl@0
   571
	iTestStepName = _L("MM-MMF-CTLFRM-U-0011");
sl@0
   572
sl@0
   573
	
sl@0
   574
	}
sl@0
   575
sl@0
   576
TVerdict CTestStep_MMF_CTLFRM_U_0011::DoTestStepL( void )
sl@0
   577
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001),
sl@0
   578
 *  varify the return value is 0. Instantiate a Custom DataSource Object and add it to the 
sl@0
   579
 *  Custom Controller using RMMFController::AddDataSource(..), with the specified parameters.
sl@0
   580
 *  Call Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
   581
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   582
 *  Varify 'error' is 0.
sl@0
   583
sl@0
   584
 * Use case: N/A
sl@0
   585
 * @test Req. under test REQ172.5.5 REQ172.5.5.2
sl@0
   586
 */
sl@0
   587
	{
sl@0
   588
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   589
	__MM_HEAP_MARK;
sl@0
   590
sl@0
   591
	TVerdict verdict = EPass;
sl@0
   592
	_LIT8(KExpectedResult,"RemoveDataSourceL Called");
sl@0
   593
sl@0
   594
	TMMFPrioritySettings settings;
sl@0
   595
	TInt error = KErrNone;
sl@0
   596
	RMMFController controller;
sl@0
   597
sl@0
   598
	settings.iPriority = 1;
sl@0
   599
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   600
	settings.iState = EMMFStateIdle;
sl@0
   601
sl@0
   602
	error = controller.Open(KTstControllerUid,settings);
sl@0
   603
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   604
sl@0
   605
	const TDesC8& initData = KInitData;
sl@0
   606
sl@0
   607
	TMMFMessageDestination sourceHandlePtr;
sl@0
   608
	TMMFMessageDestination& sourceHandle = sourceHandlePtr;
sl@0
   609
sl@0
   610
	// Add and Remove Source
sl@0
   611
	INFO_PRINTF1(_L("Attempting to add a Source and a Sink to Controller"));
sl@0
   612
	if (!error)
sl@0
   613
		{
sl@0
   614
		error = controller.AddDataSource(KTestDataSourceUid, initData, sourceHandle);
sl@0
   615
		INFO_PRINTF1(_L("API TEST: Calling RemoveDataSource"));
sl@0
   616
		error = controller.RemoveDataSource(sourceHandle);
sl@0
   617
		}
sl@0
   618
sl@0
   619
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   620
sl@0
   621
		//------------------------------------//
sl@0
   622
	// Getting Log from Custom Controller //
sl@0
   623
	//------------------------------------//
sl@0
   624
	if (!error)
sl@0
   625
		{
sl@0
   626
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   627
sl@0
   628
		TBuf8<64> memFunctionText;
sl@0
   629
	
sl@0
   630
		TUid uid = {KMmfTestControllerUid};
sl@0
   631
		TMMFMessageDestination handleInfo(uid);
sl@0
   632
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   633
sl@0
   634
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   635
		
sl@0
   636
		TBuf<64> memFunctionText16;
sl@0
   637
		memFunctionText16.Copy(memFunctionText);
sl@0
   638
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   639
sl@0
   640
		if (memFunctionText != KExpectedResult)
sl@0
   641
			{
sl@0
   642
			verdict = EFail;
sl@0
   643
			}
sl@0
   644
sl@0
   645
		}
sl@0
   646
	//------------------------------------//
sl@0
   647
	
sl@0
   648
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   649
	controller.Close();
sl@0
   650
sl@0
   651
	if (error)
sl@0
   652
		{
sl@0
   653
		verdict = EFail;
sl@0
   654
		}
sl@0
   655
sl@0
   656
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   657
	__MM_HEAP_MARKEND;
sl@0
   658
 
sl@0
   659
	return verdict;
sl@0
   660
	}
sl@0
   661
sl@0
   662
sl@0
   663
//------------------------------------------------------------------
sl@0
   664
sl@0
   665
CTestStep_MMF_CTLFRM_U_0012::CTestStep_MMF_CTLFRM_U_0012()
sl@0
   666
	/** Constructor
sl@0
   667
	*/
sl@0
   668
	{
sl@0
   669
	// store the name of this test case
sl@0
   670
	// this is the name that is used by the script file
sl@0
   671
	// Each test step initialises it's own name
sl@0
   672
	iTestStepName = _L("MM-MMF-CTLFRM-U-0012");
sl@0
   673
sl@0
   674
	
sl@0
   675
	}
sl@0
   676
sl@0
   677
TVerdict CTestStep_MMF_CTLFRM_U_0012::DoTestStepL( void )
sl@0
   678
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001),
sl@0
   679
 *  varify the return value is 0. Instantiate a Custom DataSink Object and add it to the 
sl@0
   680
 *  Custom Controller using RMMFController::AddDataSink(..), with the specified parameters. 
sl@0
   681
 *  Call Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
   682
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
   683
 *  Varify 'error' is 0.
sl@0
   684
sl@0
   685
 * Use case: N/A
sl@0
   686
 * @test Req. under test REQ172.5.5 REQ172.5.5.4
sl@0
   687
 */
sl@0
   688
	{
sl@0
   689
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   690
	__MM_HEAP_MARK;
sl@0
   691
sl@0
   692
	TVerdict verdict = EPass;
sl@0
   693
	_LIT8(KExpectedResult, "RemoveDataSinkL Called");
sl@0
   694
sl@0
   695
	TMMFPrioritySettings settings;
sl@0
   696
	TInt error = KErrNone;
sl@0
   697
	RMMFController controller;
sl@0
   698
sl@0
   699
	settings.iPriority = 1;
sl@0
   700
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   701
	settings.iState = EMMFStateIdle;
sl@0
   702
sl@0
   703
	error = controller.Open(KTstControllerUid,settings);
sl@0
   704
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   705
sl@0
   706
	const TDesC8& initData = KInitData;
sl@0
   707
	TMMFMessageDestination sinkHandlePtr;
sl@0
   708
	TMMFMessageDestination& sinkHandle = sinkHandlePtr;
sl@0
   709
sl@0
   710
	// Add and Remove Sink
sl@0
   711
	if (!error)
sl@0
   712
		{
sl@0
   713
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle);
sl@0
   714
		INFO_PRINTF1(_L("API TEST: Calling RemoveDataSink"));
sl@0
   715
		error = controller.RemoveDataSink(sinkHandle);
sl@0
   716
		}
sl@0
   717
sl@0
   718
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   719
sl@0
   720
	//------------------------------------//
sl@0
   721
	// Getting Log from Custom Controller //
sl@0
   722
	//------------------------------------//
sl@0
   723
	if (!error)
sl@0
   724
		{
sl@0
   725
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   726
sl@0
   727
		TBuf8<64> memFunctionText;
sl@0
   728
	
sl@0
   729
		TUid uid = {KMmfTestControllerUid};
sl@0
   730
		TMMFMessageDestination handleInfo(uid);
sl@0
   731
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   732
sl@0
   733
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   734
		
sl@0
   735
		TBuf<64> memFunctionText16;
sl@0
   736
		memFunctionText16.Copy(memFunctionText);
sl@0
   737
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   738
sl@0
   739
		if (memFunctionText != KExpectedResult)
sl@0
   740
			{
sl@0
   741
			verdict = EFail;
sl@0
   742
			}
sl@0
   743
sl@0
   744
		}
sl@0
   745
	//------------------------------------//
sl@0
   746
sl@0
   747
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   748
	controller.Close();
sl@0
   749
sl@0
   750
	if (error)
sl@0
   751
		{
sl@0
   752
		verdict = EFail;
sl@0
   753
		}
sl@0
   754
sl@0
   755
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   756
	__MM_HEAP_MARKEND;
sl@0
   757
 
sl@0
   758
	return verdict;
sl@0
   759
	}
sl@0
   760
sl@0
   761
sl@0
   762
//------------------------------------------------------------------
sl@0
   763
sl@0
   764
CTestStep_MMF_CTLFRM_U_0013::CTestStep_MMF_CTLFRM_U_0013()
sl@0
   765
	/** Constructor
sl@0
   766
	*/
sl@0
   767
	{
sl@0
   768
	// store the name of this test case
sl@0
   769
	// this is the name that is used by the script file
sl@0
   770
	// Each test step initialises it's own name
sl@0
   771
	iTestStepName = _L("MM-MMF-CTLFRM-U-0013");
sl@0
   772
sl@0
   773
	
sl@0
   774
	}
sl@0
   775
sl@0
   776
TVerdict CTestStep_MMF_CTLFRM_U_0013::DoTestStepL( void )
sl@0
   777
/** Call the RMMFController::Open(..) (with the parameters from test TSU_MMF_CTLFRM_U_0001),
sl@0
   778
 *  varify the return value is 0. Call RMMFController Method specified (in API Method Calls 
sl@0
   779
 *  and Parameters) and varify the 'error' is 0. Follow this by calling the  Custom Command 
sl@0
   780
 *  'KLogFunction' and varify the text value returned is equal to the specifed text in 
sl@0
   781
 *  Test Step. Call the RMMFController::Close() on the Custom Controller. Varify 'error' 
sl@0
   782
 *  is zero.
sl@0
   783
sl@0
   784
 * Use case: N/A
sl@0
   785
 * @test Req. under test No Requirement Found
sl@0
   786
 */
sl@0
   787
	{
sl@0
   788
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   789
	__MM_HEAP_MARK;
sl@0
   790
sl@0
   791
	TVerdict verdict = EPass;
sl@0
   792
	_LIT8(KExpectedResult,"ResetL Called");
sl@0
   793
 
sl@0
   794
	TMMFPrioritySettings settings;
sl@0
   795
	TInt error = KErrNone;
sl@0
   796
	RMMFController controller;
sl@0
   797
sl@0
   798
	settings.iPriority = 1;
sl@0
   799
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   800
	settings.iState = EMMFStateIdle;
sl@0
   801
sl@0
   802
	error = controller.Open(KTstControllerUid,settings);
sl@0
   803
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   804
sl@0
   805
	// Reset Controller (API being tested)
sl@0
   806
	if (!error)
sl@0
   807
		{
sl@0
   808
		INFO_PRINTF1(_L("API TEST: Calling Reset"));
sl@0
   809
		error = controller.Reset();		
sl@0
   810
		}
sl@0
   811
sl@0
   812
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   813
sl@0
   814
	//------------------------------------//
sl@0
   815
	// Getting Log from Custom Controller //
sl@0
   816
	//------------------------------------//
sl@0
   817
	if (!error)
sl@0
   818
		{
sl@0
   819
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   820
sl@0
   821
		TBuf8<64> memFunctionText;
sl@0
   822
	
sl@0
   823
		TUid uid = {KMmfTestControllerUid};
sl@0
   824
		TMMFMessageDestination handleInfo(uid);
sl@0
   825
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   826
sl@0
   827
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   828
		
sl@0
   829
		TBuf<64> memFunctionText16;
sl@0
   830
		memFunctionText16.Copy(memFunctionText);
sl@0
   831
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   832
sl@0
   833
		if (memFunctionText != KExpectedResult)
sl@0
   834
			{
sl@0
   835
			verdict = EFail;
sl@0
   836
			}
sl@0
   837
sl@0
   838
		}
sl@0
   839
	//------------------------------------//
sl@0
   840
	
sl@0
   841
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   842
	controller.Close();
sl@0
   843
sl@0
   844
	if (error)
sl@0
   845
		{
sl@0
   846
		verdict = EFail;
sl@0
   847
		}
sl@0
   848
sl@0
   849
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   850
	__MM_HEAP_MARKEND;
sl@0
   851
 
sl@0
   852
	return verdict;
sl@0
   853
	}
sl@0
   854
sl@0
   855
sl@0
   856
//------------------------------------------------------------------
sl@0
   857
sl@0
   858
CTestStep_MMF_CTLFRM_U_0014::CTestStep_MMF_CTLFRM_U_0014()
sl@0
   859
	/** Constructor
sl@0
   860
	*/
sl@0
   861
	{
sl@0
   862
	// store the name of this test case
sl@0
   863
	// this is the name that is used by the script file
sl@0
   864
	// Each test step initialises it's own name
sl@0
   865
	iTestStepName = _L("MM-MMF-CTLFRM-U-0014");
sl@0
   866
sl@0
   867
	
sl@0
   868
	}
sl@0
   869
sl@0
   870
TVerdict CTestStep_MMF_CTLFRM_U_0014::DoTestStepL( void )
sl@0
   871
/** As TSU_MMF_CTLFRM_U_0013
sl@0
   872
 * ::Prime()
sl@0
   873
 * Use case: N/A
sl@0
   874
 * @test Req. under test REQ172.5.5 REQ172.5.5.5
sl@0
   875
 */
sl@0
   876
	{
sl@0
   877
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   878
	__MM_HEAP_MARK;
sl@0
   879
sl@0
   880
	TVerdict verdict = EPass;
sl@0
   881
	_LIT8(KExpectedResult, "PrimeL Called");
sl@0
   882
sl@0
   883
	TMMFPrioritySettings settings;
sl@0
   884
	TInt error = KErrNone;
sl@0
   885
	RMMFController controller;
sl@0
   886
sl@0
   887
	settings.iPriority = 1;
sl@0
   888
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   889
	settings.iState = EMMFStateIdle;
sl@0
   890
sl@0
   891
	error = controller.Open(KTstControllerUid,settings);
sl@0
   892
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   893
sl@0
   894
	// Prime Controller
sl@0
   895
	if (!error)
sl@0
   896
		{
sl@0
   897
		INFO_PRINTF1(_L("API TEST: Calling Prime"));
sl@0
   898
		error = controller.Prime();
sl@0
   899
		}
sl@0
   900
sl@0
   901
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
   902
sl@0
   903
	//------------------------------------//
sl@0
   904
	// Getting Log from Custom Controller //
sl@0
   905
	//------------------------------------//
sl@0
   906
	if (!error)
sl@0
   907
		{
sl@0
   908
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   909
sl@0
   910
		TBuf8<64> memFunctionText;
sl@0
   911
	
sl@0
   912
		TUid uid = {KMmfTestControllerUid};
sl@0
   913
		TMMFMessageDestination handleInfo(uid);
sl@0
   914
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
   915
sl@0
   916
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
   917
		
sl@0
   918
		TBuf<64> memFunctionText16;
sl@0
   919
		memFunctionText16.Copy(memFunctionText);
sl@0
   920
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
   921
sl@0
   922
		if (memFunctionText != KExpectedResult)
sl@0
   923
			{
sl@0
   924
			verdict = EFail;
sl@0
   925
			}
sl@0
   926
sl@0
   927
		}
sl@0
   928
	//------------------------------------//
sl@0
   929
		
sl@0
   930
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
   931
	controller.Close();
sl@0
   932
sl@0
   933
	if (error)
sl@0
   934
		{
sl@0
   935
		verdict = EFail;
sl@0
   936
		}
sl@0
   937
sl@0
   938
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
   939
	__MM_HEAP_MARKEND;
sl@0
   940
 
sl@0
   941
	return verdict;
sl@0
   942
	}
sl@0
   943
sl@0
   944
sl@0
   945
//------------------------------------------------------------------
sl@0
   946
sl@0
   947
CTestStep_MMF_CTLFRM_U_0015::CTestStep_MMF_CTLFRM_U_0015()
sl@0
   948
	/** Constructor
sl@0
   949
	*/
sl@0
   950
	{
sl@0
   951
	// store the name of this test case
sl@0
   952
	// this is the name that is used by the script file
sl@0
   953
	// Each test step initialises it's own name
sl@0
   954
	iTestStepName = _L("MM-MMF-CTLFRM-U-0015");
sl@0
   955
sl@0
   956
	
sl@0
   957
	}
sl@0
   958
sl@0
   959
TVerdict CTestStep_MMF_CTLFRM_U_0015::DoTestStepL( void )
sl@0
   960
/** As TSU_MMF_CTLFRM_U_0013
sl@0
   961
 *  ::Play()
sl@0
   962
 * Use case: N/A
sl@0
   963
 * @test Req. under test REQ172.5.5 REQ172.5.5.6
sl@0
   964
 */
sl@0
   965
	{
sl@0
   966
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
   967
	__MM_HEAP_MARK;
sl@0
   968
sl@0
   969
	TVerdict verdict = EPass;
sl@0
   970
	_LIT8(KExpectedResult, "PlayL Called");
sl@0
   971
sl@0
   972
	TMMFPrioritySettings settings;
sl@0
   973
	TInt error = KErrNone;
sl@0
   974
	RMMFController controller;
sl@0
   975
sl@0
   976
	settings.iPriority = 1;
sl@0
   977
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
   978
	settings.iState = EMMFStateIdle;
sl@0
   979
sl@0
   980
	error = controller.Open(KTstControllerUid,settings);
sl@0
   981
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
   982
sl@0
   983
	// Play Controller
sl@0
   984
	if (!error)
sl@0
   985
		{
sl@0
   986
		INFO_PRINTF1(_L("Calling Play"));
sl@0
   987
		error = controller.Play();
sl@0
   988
		}
sl@0
   989
sl@0
   990
	INFO_PRINTF2(_L("API TEST: Controller Status: %d"), error);
sl@0
   991
sl@0
   992
	//------------------------------------//
sl@0
   993
	// Getting Log from Custom Controller //
sl@0
   994
	//------------------------------------//
sl@0
   995
	if (!error)
sl@0
   996
		{
sl@0
   997
		INFO_PRINTF1(_L("Getting Log"));
sl@0
   998
sl@0
   999
		TBuf8<64> memFunctionText;
sl@0
  1000
	
sl@0
  1001
		TUid uid = {KMmfTestControllerUid};
sl@0
  1002
		TMMFMessageDestination handleInfo(uid);
sl@0
  1003
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1004
sl@0
  1005
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1006
		
sl@0
  1007
		TBuf<64> memFunctionText16;
sl@0
  1008
		memFunctionText16.Copy(memFunctionText);
sl@0
  1009
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1010
sl@0
  1011
		if (memFunctionText != KExpectedResult)
sl@0
  1012
			{
sl@0
  1013
			verdict = EFail;
sl@0
  1014
			}
sl@0
  1015
sl@0
  1016
		}
sl@0
  1017
	//------------------------------------//
sl@0
  1018
		
sl@0
  1019
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1020
	controller.Close();
sl@0
  1021
sl@0
  1022
	if (error)
sl@0
  1023
		{
sl@0
  1024
		verdict = EFail;
sl@0
  1025
		}
sl@0
  1026
sl@0
  1027
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1028
	__MM_HEAP_MARKEND;
sl@0
  1029
 
sl@0
  1030
	return verdict;
sl@0
  1031
	}
sl@0
  1032
sl@0
  1033
sl@0
  1034
//------------------------------------------------------------------
sl@0
  1035
sl@0
  1036
CTestStep_MMF_CTLFRM_U_0016::CTestStep_MMF_CTLFRM_U_0016()
sl@0
  1037
	/** Constructor
sl@0
  1038
	*/
sl@0
  1039
	{
sl@0
  1040
	// store the name of this test case
sl@0
  1041
	// this is the name that is used by the script file
sl@0
  1042
	// Each test step initialises it's own name
sl@0
  1043
	iTestStepName = _L("MM-MMF-CTLFRM-U-0016");
sl@0
  1044
sl@0
  1045
	
sl@0
  1046
	}
sl@0
  1047
sl@0
  1048
TVerdict CTestStep_MMF_CTLFRM_U_0016::DoTestStepL( void )
sl@0
  1049
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1050
 * ::Pause()
sl@0
  1051
 * Use case: N/A
sl@0
  1052
 * @test Req. under test REQ172.5.5 REQ172.5.5.8
sl@0
  1053
 */
sl@0
  1054
	{
sl@0
  1055
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1056
	__MM_HEAP_MARK;
sl@0
  1057
sl@0
  1058
	TVerdict verdict = EPass;
sl@0
  1059
	_LIT8(KExpectedResult, "PauseL Called");
sl@0
  1060
sl@0
  1061
	TMMFPrioritySettings settings;
sl@0
  1062
	TInt error = KErrNone;
sl@0
  1063
	RMMFController controller;
sl@0
  1064
sl@0
  1065
	settings.iPriority = 1;
sl@0
  1066
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1067
	settings.iState = EMMFStateIdle;
sl@0
  1068
sl@0
  1069
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1070
	INFO_PRINTF2(_L("Controller Open: %d"), error);	
sl@0
  1071
sl@0
  1072
	// Pause Controller
sl@0
  1073
	if (!error)
sl@0
  1074
		{
sl@0
  1075
		INFO_PRINTF1(_L("API TEST: Calling Pause"));
sl@0
  1076
		error = controller.Pause();
sl@0
  1077
		}
sl@0
  1078
sl@0
  1079
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  1080
sl@0
  1081
	//------------------------------------//
sl@0
  1082
	// Getting Log from Custom Controller //
sl@0
  1083
	//------------------------------------//
sl@0
  1084
	if (!error)
sl@0
  1085
		{
sl@0
  1086
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1087
sl@0
  1088
		TBuf8<64> memFunctionText;
sl@0
  1089
	
sl@0
  1090
		TUid uid = {KMmfTestControllerUid};
sl@0
  1091
		TMMFMessageDestination handleInfo(uid);
sl@0
  1092
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1093
sl@0
  1094
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1095
		
sl@0
  1096
		TBuf<64> memFunctionText16;
sl@0
  1097
		memFunctionText16.Copy(memFunctionText);
sl@0
  1098
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1099
sl@0
  1100
		if (memFunctionText != KExpectedResult)
sl@0
  1101
			{
sl@0
  1102
			verdict = EFail;
sl@0
  1103
			}
sl@0
  1104
sl@0
  1105
		}
sl@0
  1106
	//------------------------------------//
sl@0
  1107
		
sl@0
  1108
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1109
	controller.Close();
sl@0
  1110
sl@0
  1111
	if (error)
sl@0
  1112
		{
sl@0
  1113
		verdict = EFail;
sl@0
  1114
		}
sl@0
  1115
sl@0
  1116
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1117
	__MM_HEAP_MARKEND;
sl@0
  1118
 
sl@0
  1119
	return verdict;
sl@0
  1120
	}
sl@0
  1121
sl@0
  1122
sl@0
  1123
//------------------------------------------------------------------
sl@0
  1124
sl@0
  1125
CTestStep_MMF_CTLFRM_U_0017::CTestStep_MMF_CTLFRM_U_0017()
sl@0
  1126
	/** Constructor
sl@0
  1127
	*/
sl@0
  1128
	{
sl@0
  1129
	// store the name of this test case
sl@0
  1130
	// this is the name that is used by the script file
sl@0
  1131
	// Each test step initialises it's own name
sl@0
  1132
	iTestStepName = _L("MM-MMF-CTLFRM-U-0017");
sl@0
  1133
sl@0
  1134
	
sl@0
  1135
	}
sl@0
  1136
sl@0
  1137
TVerdict CTestStep_MMF_CTLFRM_U_0017::DoTestStepL( void )
sl@0
  1138
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1139
 * ::Stop()
sl@0
  1140
 * Use case: N/A
sl@0
  1141
 * @test Req. under test REQ172.5.5 REQ172.5.5.7
sl@0
  1142
 */
sl@0
  1143
	{
sl@0
  1144
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1145
	__MM_HEAP_MARK;
sl@0
  1146
sl@0
  1147
	TVerdict verdict = EPass;
sl@0
  1148
	_LIT8(KExpectedResult, "StopL Called");
sl@0
  1149
sl@0
  1150
	TMMFPrioritySettings settings;
sl@0
  1151
	TInt error = KErrNone;
sl@0
  1152
	RMMFController controller;
sl@0
  1153
sl@0
  1154
	settings.iPriority = 1;
sl@0
  1155
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1156
	settings.iState = EMMFStateIdle;
sl@0
  1157
sl@0
  1158
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1159
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1160
sl@0
  1161
	// Stop Controller
sl@0
  1162
	if (!error)
sl@0
  1163
		{
sl@0
  1164
		INFO_PRINTF1(_L("API TEST: Calling Stop"));
sl@0
  1165
		error = controller.Stop();
sl@0
  1166
		}
sl@0
  1167
sl@0
  1168
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  1169
sl@0
  1170
	//------------------------------------//
sl@0
  1171
	// Getting Log from Custom Controller //
sl@0
  1172
	//------------------------------------//
sl@0
  1173
	if (!error)
sl@0
  1174
		{
sl@0
  1175
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1176
sl@0
  1177
		TBuf8<64> memFunctionText;
sl@0
  1178
	
sl@0
  1179
		TUid uid = {KMmfTestControllerUid};
sl@0
  1180
		TMMFMessageDestination handleInfo(uid);
sl@0
  1181
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1182
sl@0
  1183
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1184
		
sl@0
  1185
		TBuf<64> memFunctionText16;
sl@0
  1186
		memFunctionText16.Copy(memFunctionText);
sl@0
  1187
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1188
sl@0
  1189
		if (memFunctionText != KExpectedResult)
sl@0
  1190
			{
sl@0
  1191
			verdict = EFail;
sl@0
  1192
			}
sl@0
  1193
sl@0
  1194
		}
sl@0
  1195
	//------------------------------------//
sl@0
  1196
sl@0
  1197
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1198
	controller.Close();
sl@0
  1199
sl@0
  1200
	if (error)
sl@0
  1201
		{
sl@0
  1202
		verdict = EFail;
sl@0
  1203
		}
sl@0
  1204
sl@0
  1205
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1206
	__MM_HEAP_MARKEND;
sl@0
  1207
 
sl@0
  1208
	return verdict;
sl@0
  1209
	}
sl@0
  1210
sl@0
  1211
//------------------------------------------------------------------
sl@0
  1212
sl@0
  1213
CTestStep_MMF_CTLFRM_U_0018::CTestStep_MMF_CTLFRM_U_0018()
sl@0
  1214
	/** Constructor
sl@0
  1215
	*/
sl@0
  1216
	{
sl@0
  1217
	// store the name of this test case
sl@0
  1218
	// this is the name that is used by the script file
sl@0
  1219
	// Each test step initialises it's own name
sl@0
  1220
	iTestStepName = _L("MM-MMF-CTLFRM-U-0018");
sl@0
  1221
sl@0
  1222
	
sl@0
  1223
	}
sl@0
  1224
sl@0
  1225
TVerdict CTestStep_MMF_CTLFRM_U_0018::DoTestStepL( void )
sl@0
  1226
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1227
 * ::GetPosition(..)
sl@0
  1228
 * Use case: N/A
sl@0
  1229
 * @test Req. under test REQ172.5.5 REQ172.5.5.10
sl@0
  1230
 */
sl@0
  1231
	{
sl@0
  1232
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1233
	__MM_HEAP_MARK;
sl@0
  1234
sl@0
  1235
	TVerdict verdict = EPass;
sl@0
  1236
	_LIT8(KExpectedResult, "PositionL Called");
sl@0
  1237
sl@0
  1238
	TMMFPrioritySettings settings;
sl@0
  1239
	TInt error = KErrNone;
sl@0
  1240
	RMMFController controller;
sl@0
  1241
sl@0
  1242
	settings.iPriority = 1;
sl@0
  1243
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1244
	settings.iState = EMMFStateIdle;
sl@0
  1245
sl@0
  1246
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1247
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1248
sl@0
  1249
	const TInt64 interval = 5;
sl@0
  1250
	TTimeIntervalMicroSeconds position(interval);
sl@0
  1251
sl@0
  1252
	const TInt64 expectedInterval = 16;
sl@0
  1253
	TTimeIntervalMicroSeconds expectedPosition(expectedInterval);
sl@0
  1254
sl@0
  1255
	// Get Position Controller
sl@0
  1256
	if (!error)
sl@0
  1257
		{
sl@0
  1258
		INFO_PRINTF1(_L("API TEST: Calling GetPosition"));
sl@0
  1259
		error = controller.GetPosition(position);
sl@0
  1260
		}
sl@0
  1261
sl@0
  1262
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  1263
	INFO_PRINTF2(_L("Expected Position: %d"), I64LOW(expectedPosition.Int64()));
sl@0
  1264
	INFO_PRINTF2(_L("Current Position: %d"), I64LOW(position.Int64()));
sl@0
  1265
	
sl@0
  1266
sl@0
  1267
	if (expectedPosition != position)
sl@0
  1268
		{
sl@0
  1269
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1270
sl@0
  1271
		TBuf8<64> memFunctionText;
sl@0
  1272
	
sl@0
  1273
		TUid uid = {KMmfTestControllerUid};
sl@0
  1274
		TMMFMessageDestination handleInfo(uid);
sl@0
  1275
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1276
sl@0
  1277
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1278
		
sl@0
  1279
		TBuf<64> memFunctionText16;
sl@0
  1280
		memFunctionText16.Copy(memFunctionText);
sl@0
  1281
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1282
sl@0
  1283
		if (memFunctionText != KExpectedResult)
sl@0
  1284
			{
sl@0
  1285
			verdict = EFail;
sl@0
  1286
			}
sl@0
  1287
		}
sl@0
  1288
sl@0
  1289
	INFO_PRINTF1(_L("Closing Controller"));	
sl@0
  1290
	controller.Close();
sl@0
  1291
sl@0
  1292
	if (error)
sl@0
  1293
		{
sl@0
  1294
		verdict = EFail;
sl@0
  1295
		}
sl@0
  1296
sl@0
  1297
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1298
	__MM_HEAP_MARKEND;
sl@0
  1299
 
sl@0
  1300
	return verdict;
sl@0
  1301
	}
sl@0
  1302
sl@0
  1303
//------------------------------------------------------------------
sl@0
  1304
sl@0
  1305
CTestStep_MMF_CTLFRM_U_0019::CTestStep_MMF_CTLFRM_U_0019()
sl@0
  1306
	/** Constructor
sl@0
  1307
	*/
sl@0
  1308
	{
sl@0
  1309
	// store the name of this test case
sl@0
  1310
	// this is the name that is used by the script file
sl@0
  1311
	// Each test step initialises it's own name
sl@0
  1312
	iTestStepName = _L("MM-MMF-CTLFRM-U-0019");
sl@0
  1313
sl@0
  1314
	
sl@0
  1315
	}
sl@0
  1316
sl@0
  1317
TVerdict CTestStep_MMF_CTLFRM_U_0019::DoTestStepL( void )
sl@0
  1318
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1319
 * ::SetPosition(..)
sl@0
  1320
 * Use case: N/A
sl@0
  1321
 * @test Req. under test REQ172.5.5 REQ172.5.5.11
sl@0
  1322
 */
sl@0
  1323
	{
sl@0
  1324
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1325
	__MM_HEAP_MARK;
sl@0
  1326
sl@0
  1327
	TVerdict verdict = EPass;
sl@0
  1328
	_LIT8(KExpectedResult, "SetPositionL Called");
sl@0
  1329
sl@0
  1330
	TMMFPrioritySettings settings;
sl@0
  1331
	TInt error = KErrNone;
sl@0
  1332
	RMMFController controller;
sl@0
  1333
sl@0
  1334
	settings.iPriority = 1;
sl@0
  1335
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1336
	settings.iState = EMMFStateIdle;
sl@0
  1337
sl@0
  1338
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1339
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1340
sl@0
  1341
	const TInt64 interval = 5;
sl@0
  1342
	TTimeIntervalMicroSeconds position(interval);
sl@0
  1343
sl@0
  1344
	// Set Position Controller
sl@0
  1345
	if (!error) 
sl@0
  1346
		{
sl@0
  1347
		INFO_PRINTF1(_L("API TEST: Calling SetPosition"));
sl@0
  1348
		error = controller.SetPosition(position);
sl@0
  1349
		}
sl@0
  1350
sl@0
  1351
	if (!error) 
sl@0
  1352
		error = controller.GetPosition(position);
sl@0
  1353
sl@0
  1354
sl@0
  1355
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  1356
	INFO_PRINTF2(_L("Current Position: %d"), position.Int64());
sl@0
  1357
sl@0
  1358
	//------------------------------------//
sl@0
  1359
	// Getting Log from Custom Controller //
sl@0
  1360
	//------------------------------------//
sl@0
  1361
	if (!error)
sl@0
  1362
		{
sl@0
  1363
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1364
sl@0
  1365
		TBuf8<64> memFunctionText;
sl@0
  1366
	
sl@0
  1367
		TUid uid = {KMmfTestControllerUid};
sl@0
  1368
		TMMFMessageDestination handleInfo(uid);
sl@0
  1369
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1370
sl@0
  1371
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1372
		
sl@0
  1373
		TBuf<64> memFunctionText16;
sl@0
  1374
		memFunctionText16.Copy(memFunctionText);
sl@0
  1375
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1376
sl@0
  1377
		if (memFunctionText != KExpectedResult)
sl@0
  1378
			{
sl@0
  1379
			verdict = EFail;
sl@0
  1380
			}
sl@0
  1381
sl@0
  1382
		}
sl@0
  1383
	//------------------------------------//
sl@0
  1384
		
sl@0
  1385
	INFO_PRINTF1(_L("Closing Controller"));	
sl@0
  1386
	controller.Close();
sl@0
  1387
sl@0
  1388
	if (error)
sl@0
  1389
		{
sl@0
  1390
		verdict = EFail;
sl@0
  1391
		}
sl@0
  1392
sl@0
  1393
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1394
	__MM_HEAP_MARKEND;
sl@0
  1395
 
sl@0
  1396
	return verdict;
sl@0
  1397
	}
sl@0
  1398
sl@0
  1399
//------------------------------------------------------------------
sl@0
  1400
sl@0
  1401
CTestStep_MMF_CTLFRM_U_0020::CTestStep_MMF_CTLFRM_U_0020()
sl@0
  1402
	/** Constructor
sl@0
  1403
	*/
sl@0
  1404
	{
sl@0
  1405
	// store the name of this test case
sl@0
  1406
	// this is the name that is used by the script file
sl@0
  1407
	// Each test step initialises it's own name
sl@0
  1408
	iTestStepName = _L("MM-MMF-CTLFRM-U-0020");
sl@0
  1409
sl@0
  1410
	
sl@0
  1411
	}
sl@0
  1412
sl@0
  1413
TVerdict CTestStep_MMF_CTLFRM_U_0020::DoTestStepL( void )
sl@0
  1414
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1415
 * ::GetDuration(..)
sl@0
  1416
 * Use case: N/A
sl@0
  1417
 * @test Req. under test No Requirement Found
sl@0
  1418
 */
sl@0
  1419
	{
sl@0
  1420
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1421
	__MM_HEAP_MARK;
sl@0
  1422
sl@0
  1423
	TVerdict verdict = EPass;
sl@0
  1424
sl@0
  1425
	TMMFPrioritySettings settings;
sl@0
  1426
	TInt error = KErrNone;
sl@0
  1427
	RMMFController controller;
sl@0
  1428
sl@0
  1429
	settings.iPriority = 1;
sl@0
  1430
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1431
	settings.iState = EMMFStateIdle;
sl@0
  1432
sl@0
  1433
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1434
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1435
sl@0
  1436
	const TInt64 interval = 5;
sl@0
  1437
	TTimeIntervalMicroSeconds duration(interval);
sl@0
  1438
sl@0
  1439
	const TInt64 expectedInterval = 36;
sl@0
  1440
	TTimeIntervalMicroSeconds expectedDuration(expectedInterval);
sl@0
  1441
	
sl@0
  1442
	if (!error) 
sl@0
  1443
		{
sl@0
  1444
		INFO_PRINTF1(_L("API TEST: Calling GetDuration"));
sl@0
  1445
		error = controller.GetDuration(duration);
sl@0
  1446
		}
sl@0
  1447
sl@0
  1448
sl@0
  1449
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  1450
	INFO_PRINTF2(_L("Current Duration: %d"), I64LOW(expectedDuration.Int64()));
sl@0
  1451
	INFO_PRINTF2(_L("Current Duration: %d"), I64LOW(duration.Int64()));
sl@0
  1452
sl@0
  1453
	if (duration != expectedDuration)
sl@0
  1454
		{
sl@0
  1455
		verdict = EFail;
sl@0
  1456
		}
sl@0
  1457
		
sl@0
  1458
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1459
	controller.Close();
sl@0
  1460
sl@0
  1461
	if (error)
sl@0
  1462
		{
sl@0
  1463
		verdict = EFail;
sl@0
  1464
		}
sl@0
  1465
sl@0
  1466
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1467
	__MM_HEAP_MARKEND;
sl@0
  1468
 
sl@0
  1469
	return verdict;
sl@0
  1470
	}
sl@0
  1471
sl@0
  1472
sl@0
  1473
//------------------------------------------------------------------
sl@0
  1474
sl@0
  1475
CTestStep_MMF_CTLFRM_U_0021::CTestStep_MMF_CTLFRM_U_0021()
sl@0
  1476
	/** Constructor
sl@0
  1477
	*/
sl@0
  1478
	{
sl@0
  1479
	// store the name of this test case
sl@0
  1480
	// this is the name that is used by the script file
sl@0
  1481
	// Each test step initialises it's own name
sl@0
  1482
	iTestStepName = _L("MM-MMF-CTLFRM-U-0021");
sl@0
  1483
sl@0
  1484
	
sl@0
  1485
	}
sl@0
  1486
sl@0
  1487
TVerdict CTestStep_MMF_CTLFRM_U_0021::DoTestStepL( void )
sl@0
  1488
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1489
 * ::GetNumberOfMetaDataEntries(..)
sl@0
  1490
 * Use case: N/A
sl@0
  1491
 * @test Req. under test No Requirement Found
sl@0
  1492
 */
sl@0
  1493
	{
sl@0
  1494
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1495
	__MM_HEAP_MARK;
sl@0
  1496
sl@0
  1497
	TVerdict verdict = EPass;
sl@0
  1498
	_LIT8(KExpectedResult, "GetNumberOfMetaDataEntriesL Called");
sl@0
  1499
sl@0
  1500
	TInt numberOfEntries = 0;
sl@0
  1501
sl@0
  1502
	TMMFPrioritySettings settings;
sl@0
  1503
	TInt error = KErrNone;
sl@0
  1504
	RMMFController controller;
sl@0
  1505
sl@0
  1506
	settings.iPriority = 1;
sl@0
  1507
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1508
	settings.iState = EMMFStateIdle;
sl@0
  1509
sl@0
  1510
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1511
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1512
sl@0
  1513
sl@0
  1514
	// Add Source and Sink
sl@0
  1515
	INFO_PRINTF1(_L("Attempting to add a Source and a Sink to Controller"));
sl@0
  1516
sl@0
  1517
	if (!error)
sl@0
  1518
		{
sl@0
  1519
		INFO_PRINTF1(_L("API TEST: Calling GetNumberOfMetaDataEntries"));
sl@0
  1520
		error = controller.GetNumberOfMetaDataEntries(numberOfEntries);
sl@0
  1521
		}
sl@0
  1522
sl@0
  1523
	INFO_PRINTF2(_L("Number of Meta entries is: %d"), numberOfEntries);
sl@0
  1524
sl@0
  1525
	//------------------------------------//
sl@0
  1526
	// Getting Log from Custom Controller //
sl@0
  1527
	//------------------------------------//
sl@0
  1528
	if (!error)
sl@0
  1529
		{
sl@0
  1530
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1531
sl@0
  1532
		TBuf8<64> memFunctionText;
sl@0
  1533
	
sl@0
  1534
		TUid uid = {KMmfTestControllerUid};
sl@0
  1535
		TMMFMessageDestination handleInfo(uid);
sl@0
  1536
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1537
sl@0
  1538
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1539
		
sl@0
  1540
		TBuf<64> memFunctionText16;
sl@0
  1541
		memFunctionText16.Copy(memFunctionText);
sl@0
  1542
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1543
sl@0
  1544
		if (memFunctionText != KExpectedResult)
sl@0
  1545
			{
sl@0
  1546
			verdict = EFail;
sl@0
  1547
			}
sl@0
  1548
sl@0
  1549
		}
sl@0
  1550
	//------------------------------------//
sl@0
  1551
		
sl@0
  1552
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1553
	controller.Close();
sl@0
  1554
sl@0
  1555
	if (error)
sl@0
  1556
		{
sl@0
  1557
		verdict = EFail;
sl@0
  1558
		}
sl@0
  1559
sl@0
  1560
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1561
	__MM_HEAP_MARKEND;
sl@0
  1562
sl@0
  1563
	return verdict;
sl@0
  1564
	}
sl@0
  1565
sl@0
  1566
//------------------------------------------------------------------
sl@0
  1567
sl@0
  1568
CTestStep_MMF_CTLFRM_U_0022::CTestStep_MMF_CTLFRM_U_0022()
sl@0
  1569
	/** Constructor
sl@0
  1570
	*/
sl@0
  1571
	{
sl@0
  1572
	// store the name of this test case
sl@0
  1573
	// this is the name that is used by the script file
sl@0
  1574
	// Each test step initialises it's own name
sl@0
  1575
	iTestStepName = _L("MM-MMF-CTLFRM-U-0022");
sl@0
  1576
sl@0
  1577
	
sl@0
  1578
	}
sl@0
  1579
sl@0
  1580
TVerdict CTestStep_MMF_CTLFRM_U_0022::DoTestStepL( void )
sl@0
  1581
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1582
 * ::GetMetaDataEntry(..)
sl@0
  1583
 * Use case: N/A
sl@0
  1584
 * @test Req. under test No Requirement Found
sl@0
  1585
 */
sl@0
  1586
	{
sl@0
  1587
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1588
	__MM_HEAP_MARK;
sl@0
  1589
sl@0
  1590
	TVerdict verdict = EPass;
sl@0
  1591
	_LIT8(KExpectedResult, "GetMetaDataEntryL Called");
sl@0
  1592
sl@0
  1593
	TMMFPrioritySettings settings;
sl@0
  1594
	TInt error = KErrNone;
sl@0
  1595
	RMMFController controller;
sl@0
  1596
sl@0
  1597
	settings.iPriority = 1;
sl@0
  1598
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1599
	settings.iState = EMMFStateIdle;
sl@0
  1600
sl@0
  1601
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1602
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1603
sl@0
  1604
	if (!error)
sl@0
  1605
		{
sl@0
  1606
		TInt indexOfEntry = 1;
sl@0
  1607
		INFO_PRINTF1(_L("API TEST: Calling GetMetaDataEntryL"));
sl@0
  1608
		CMMFMetaDataEntry* metaEntry = controller.GetMetaDataEntryL(indexOfEntry);
sl@0
  1609
		CleanupStack::PushL(metaEntry);
sl@0
  1610
		INFO_PRINTF2(_L("AudioLevel is: %S"), &metaEntry->Value());
sl@0
  1611
sl@0
  1612
		CleanupStack::PopAndDestroy(1);
sl@0
  1613
		}
sl@0
  1614
sl@0
  1615
	//------------------------------------//
sl@0
  1616
	// Getting Log from Custom Controller //
sl@0
  1617
	//------------------------------------//
sl@0
  1618
	if (!error)
sl@0
  1619
		{
sl@0
  1620
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1621
sl@0
  1622
		TBuf8<64> memFunctionText;
sl@0
  1623
	
sl@0
  1624
		TUid uid = {KMmfTestControllerUid};
sl@0
  1625
		TMMFMessageDestination handleInfo(uid);
sl@0
  1626
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1627
sl@0
  1628
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1629
		
sl@0
  1630
		TBuf<64> memFunctionText16;
sl@0
  1631
		memFunctionText16.Copy(memFunctionText);
sl@0
  1632
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1633
sl@0
  1634
		if (memFunctionText != KExpectedResult)
sl@0
  1635
			{
sl@0
  1636
			verdict = EFail;
sl@0
  1637
			}
sl@0
  1638
sl@0
  1639
		}
sl@0
  1640
	//------------------------------------//
sl@0
  1641
		
sl@0
  1642
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1643
	controller.Close();
sl@0
  1644
sl@0
  1645
	if (error)
sl@0
  1646
		{
sl@0
  1647
		verdict = EFail;
sl@0
  1648
		}
sl@0
  1649
sl@0
  1650
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1651
	__MM_HEAP_MARKEND;
sl@0
  1652
sl@0
  1653
	return verdict;
sl@0
  1654
	}
sl@0
  1655
sl@0
  1656
//------------------------------------------------------------------
sl@0
  1657
sl@0
  1658
CTestStep_MMF_CTLFRM_U_0023::CTestStep_MMF_CTLFRM_U_0023()
sl@0
  1659
	/** Constructor
sl@0
  1660
	*/
sl@0
  1661
	{
sl@0
  1662
	// store the name of this test case
sl@0
  1663
	// this is the name that is used by the script file
sl@0
  1664
	// Each test step initialises it's own name
sl@0
  1665
	iTestStepName = _L("MM-MMF-CTLFRM-U-0023");
sl@0
  1666
sl@0
  1667
	
sl@0
  1668
	}
sl@0
  1669
sl@0
  1670
TVerdict CTestStep_MMF_CTLFRM_U_0023::DoTestStepL( void )
sl@0
  1671
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1672
 * ::CustomSommandSync(..)
sl@0
  1673
 * Use case: N/A
sl@0
  1674
 * @test Req. under test REQ172.5.5 REQ172.5.5.14
sl@0
  1675
 */
sl@0
  1676
	{
sl@0
  1677
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1678
	__MM_HEAP_MARK;
sl@0
  1679
sl@0
  1680
	TVerdict verdict = EPass;
sl@0
  1681
	_LIT8(KExpectedResult, "KDummyFunc1 Called");
sl@0
  1682
sl@0
  1683
	TMMFPrioritySettings settings;
sl@0
  1684
	TInt error = KErrNone;
sl@0
  1685
	RMMFController controller;
sl@0
  1686
sl@0
  1687
	settings.iPriority = 1;
sl@0
  1688
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1689
	settings.iState = EMMFStateIdle;
sl@0
  1690
sl@0
  1691
	// Open a Custom Controller
sl@0
  1692
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1693
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1694
sl@0
  1695
	if (!error)
sl@0
  1696
		{
sl@0
  1697
		INFO_PRINTF1(_L("Calling CustomCommandSync"));
sl@0
  1698
		TMMFMessageDestinationPckg messageDest;
sl@0
  1699
sl@0
  1700
		const TInt interval = 5;
sl@0
  1701
		TTimeIntervalMicroSeconds randomData(interval);
sl@0
  1702
		TTimeIntervalMicroSeconds randomData2(interval+1);
sl@0
  1703
		TTimeIntervalMicroSeconds randomData3(interval+2);
sl@0
  1704
sl@0
  1705
		TPckgBuf<TTimeIntervalMicroSeconds> randomDataPckg = randomData;
sl@0
  1706
		TPckgBuf<TTimeIntervalMicroSeconds> randomData2Pckg = randomData2;
sl@0
  1707
		TPckgBuf<TTimeIntervalMicroSeconds> randomData3Pckg = randomData3;
sl@0
  1708
		
sl@0
  1709
		error = controller.CustomCommandSync(messageDest, KDummyFunc1, randomDataPckg, randomData2Pckg, randomData3Pckg);
sl@0
  1710
		}
sl@0
  1711
sl@0
  1712
	//------------------------------------//
sl@0
  1713
	// Getting Log from Custom Controller //
sl@0
  1714
	//------------------------------------//
sl@0
  1715
	if (!error)
sl@0
  1716
		{
sl@0
  1717
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1718
sl@0
  1719
		TBuf8<64> memFunctionText;
sl@0
  1720
	
sl@0
  1721
		TUid uid = {KMmfTestControllerUid};
sl@0
  1722
		TMMFMessageDestination handleInfo(uid);
sl@0
  1723
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1724
sl@0
  1725
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1726
		
sl@0
  1727
		TBuf<64> memFunctionText16;
sl@0
  1728
		memFunctionText16.Copy(memFunctionText);
sl@0
  1729
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1730
sl@0
  1731
		if (memFunctionText != KExpectedResult)
sl@0
  1732
			{
sl@0
  1733
			verdict = EFail;
sl@0
  1734
			}
sl@0
  1735
sl@0
  1736
		}
sl@0
  1737
	//------------------------------------//
sl@0
  1738
sl@0
  1739
	if (error)
sl@0
  1740
		{
sl@0
  1741
		verdict = EFail;
sl@0
  1742
		}
sl@0
  1743
sl@0
  1744
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1745
	controller.Close();
sl@0
  1746
sl@0
  1747
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1748
	__MM_HEAP_MARKEND;
sl@0
  1749
 
sl@0
  1750
	return verdict;
sl@0
  1751
	}
sl@0
  1752
sl@0
  1753
//------------------------------------------------------------------
sl@0
  1754
sl@0
  1755
CTestStep_MMF_CTLFRM_U_0024::CTestStep_MMF_CTLFRM_U_0024()
sl@0
  1756
	/** Constructor
sl@0
  1757
	*/
sl@0
  1758
	{
sl@0
  1759
	// store the name of this test case
sl@0
  1760
	// this is the name that is used by the script file
sl@0
  1761
	// Each test step initialises it's own name
sl@0
  1762
	iTestStepName = _L("MM-MMF-CTLFRM-U-0024");
sl@0
  1763
sl@0
  1764
	
sl@0
  1765
	}
sl@0
  1766
sl@0
  1767
TVerdict CTestStep_MMF_CTLFRM_U_0024::DoTestStepL( void )
sl@0
  1768
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1769
 * ::CustomCommandAsync(..)
sl@0
  1770
 * Use case: N/A
sl@0
  1771
 * @test Req. under test REQ172.5.5 REQ172.5.5.14
sl@0
  1772
 */
sl@0
  1773
	{
sl@0
  1774
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1775
	__MM_HEAP_MARK;
sl@0
  1776
sl@0
  1777
	TVerdict verdict = EPass;
sl@0
  1778
	_LIT8(KExpectedResult, "KDummyFunc1 Called");
sl@0
  1779
sl@0
  1780
	TMMFPrioritySettings settings;
sl@0
  1781
	TInt error = KErrNone;
sl@0
  1782
	RMMFController controller;
sl@0
  1783
sl@0
  1784
	settings.iPriority = 1;
sl@0
  1785
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1786
	settings.iState = EMMFStateIdle;
sl@0
  1787
sl@0
  1788
sl@0
  1789
	// Open a Custom Controller
sl@0
  1790
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1791
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1792
sl@0
  1793
	if (!error)
sl@0
  1794
		{
sl@0
  1795
		INFO_PRINTF1(_L("Calling CustomCommandSync"));
sl@0
  1796
		TMMFMessageDestinationPckg messageDest;
sl@0
  1797
sl@0
  1798
		const TInt interval = 5;
sl@0
  1799
		TTimeIntervalMicroSeconds randomData(interval);
sl@0
  1800
		TTimeIntervalMicroSeconds randomData2(interval+1);
sl@0
  1801
		TTimeIntervalMicroSeconds randomData3(interval+2);
sl@0
  1802
sl@0
  1803
		TPckgBuf<TTimeIntervalMicroSeconds> randomDataPckg = randomData;
sl@0
  1804
		TPckgBuf<TTimeIntervalMicroSeconds> randomData2Pckg = randomData2;
sl@0
  1805
		TPckgBuf<TTimeIntervalMicroSeconds> randomData3Pckg = randomData3;
sl@0
  1806
		
sl@0
  1807
		TRequestStatus stat;
sl@0
  1808
		controller.CustomCommandAsync(messageDest, KDummyFunc1, randomDataPckg, randomData2Pckg, randomData3Pckg, stat);
sl@0
  1809
		User::WaitForRequest(stat);
sl@0
  1810
		error = stat.Int();
sl@0
  1811
		}
sl@0
  1812
sl@0
  1813
	//------------------------------------//
sl@0
  1814
	// Getting Log from Custom Controller //
sl@0
  1815
	//------------------------------------//
sl@0
  1816
	if (!error)
sl@0
  1817
		{
sl@0
  1818
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1819
sl@0
  1820
		TBuf8<64> memFunctionText;
sl@0
  1821
	
sl@0
  1822
		TUid uid = {KMmfTestControllerUid};
sl@0
  1823
		TMMFMessageDestination handleInfo(uid);
sl@0
  1824
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1825
sl@0
  1826
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1827
		
sl@0
  1828
		TBuf<64> memFunctionText16;
sl@0
  1829
		memFunctionText16.Copy(memFunctionText);
sl@0
  1830
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1831
sl@0
  1832
		if (memFunctionText != KExpectedResult)
sl@0
  1833
			{
sl@0
  1834
			verdict = EFail;
sl@0
  1835
			}
sl@0
  1836
sl@0
  1837
		}
sl@0
  1838
	//------------------------------------//
sl@0
  1839
sl@0
  1840
	if (error)
sl@0
  1841
		{
sl@0
  1842
		verdict = EFail;
sl@0
  1843
		}
sl@0
  1844
sl@0
  1845
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1846
	controller.Close();
sl@0
  1847
sl@0
  1848
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1849
	__MM_HEAP_MARKEND;
sl@0
  1850
 
sl@0
  1851
	return verdict;
sl@0
  1852
	}
sl@0
  1853
sl@0
  1854
//------------------------------------------------------------------
sl@0
  1855
sl@0
  1856
CTestStep_MMF_CTLFRM_U_0027::CTestStep_MMF_CTLFRM_U_0027()
sl@0
  1857
	/** Constructor
sl@0
  1858
	*/
sl@0
  1859
	{
sl@0
  1860
	// store the name of this test case
sl@0
  1861
	// this is the name that is used by the script file
sl@0
  1862
	// Each test step initialises it's own name
sl@0
  1863
	iTestStepName = _L("MM-MMF-CTLFRM-U-0027");
sl@0
  1864
sl@0
  1865
	
sl@0
  1866
	}
sl@0
  1867
sl@0
  1868
TVerdict CTestStep_MMF_CTLFRM_U_0027::DoTestStepL( void )
sl@0
  1869
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1870
 * ::GetAudioQuality(..)
sl@0
  1871
 * Use case: N/A
sl@0
  1872
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  1873
 */
sl@0
  1874
	{
sl@0
  1875
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1876
	__MM_HEAP_MARK;
sl@0
  1877
sl@0
  1878
	TVerdict verdict = EPass;
sl@0
  1879
	_LIT8(KExpectedResult, "GetAudioQuality Called");
sl@0
  1880
sl@0
  1881
	TMMFPrioritySettings settings;
sl@0
  1882
	TInt error = KErrNone;
sl@0
  1883
	RMMFController controller;
sl@0
  1884
sl@0
  1885
	settings.iPriority = 1;
sl@0
  1886
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1887
	settings.iState = EMMFStateIdle;
sl@0
  1888
sl@0
  1889
sl@0
  1890
	// Open a Custom Controller
sl@0
  1891
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1892
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1893
	TUid uid = {0x101f72B4};
sl@0
  1894
sl@0
  1895
	RMMFTestCustomCommands customCommands(controller,uid);
sl@0
  1896
sl@0
  1897
	TInt audioQuality;
sl@0
  1898
	error = customCommands.GetAudioQuality(audioQuality);
sl@0
  1899
sl@0
  1900
	//------------------------------------//
sl@0
  1901
	// Getting Log from Custom Controller //
sl@0
  1902
	//------------------------------------//
sl@0
  1903
	if (!error)
sl@0
  1904
		{
sl@0
  1905
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1906
sl@0
  1907
		TBuf8<64> memFunctionText;
sl@0
  1908
	
sl@0
  1909
		TUid uid = {KMmfTestControllerUid};
sl@0
  1910
		TMMFMessageDestination handleInfo(uid);
sl@0
  1911
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  1912
sl@0
  1913
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  1914
		
sl@0
  1915
		TBuf<64> memFunctionText16;
sl@0
  1916
		memFunctionText16.Copy(memFunctionText);
sl@0
  1917
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  1918
sl@0
  1919
		if (memFunctionText != KExpectedResult)
sl@0
  1920
			{
sl@0
  1921
			verdict = EFail;
sl@0
  1922
			}
sl@0
  1923
sl@0
  1924
		}
sl@0
  1925
	//------------------------------------//
sl@0
  1926
sl@0
  1927
sl@0
  1928
	if (error)
sl@0
  1929
		{
sl@0
  1930
		verdict = EFail;
sl@0
  1931
		}
sl@0
  1932
sl@0
  1933
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  1934
	controller.Close();
sl@0
  1935
sl@0
  1936
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  1937
	__MM_HEAP_MARKEND;
sl@0
  1938
 
sl@0
  1939
	return verdict;
sl@0
  1940
	}
sl@0
  1941
sl@0
  1942
//------------------------------------------------------------------
sl@0
  1943
sl@0
  1944
CTestStep_MMF_CTLFRM_U_0028::CTestStep_MMF_CTLFRM_U_0028()
sl@0
  1945
	/** Constructor
sl@0
  1946
	*/
sl@0
  1947
	{
sl@0
  1948
	// store the name of this test case
sl@0
  1949
	// this is the name that is used by the script file
sl@0
  1950
	// Each test step initialises it's own name
sl@0
  1951
	iTestStepName = _L("MM-MMF-CTLFRM-U-0028");
sl@0
  1952
sl@0
  1953
	
sl@0
  1954
	}
sl@0
  1955
sl@0
  1956
TVerdict CTestStep_MMF_CTLFRM_U_0028::DoTestStepL( void )
sl@0
  1957
/** As TSU_MMF_CTLFRM_U_0013
sl@0
  1958
 * ::SetAudioQuality(..)
sl@0
  1959
 * Use case: N/A
sl@0
  1960
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  1961
 */
sl@0
  1962
	{
sl@0
  1963
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  1964
	__MM_HEAP_MARK;
sl@0
  1965
sl@0
  1966
	TVerdict verdict = EPass;
sl@0
  1967
	_LIT8(KExpectedResult, "SetAudioQuality Called");
sl@0
  1968
sl@0
  1969
sl@0
  1970
	TMMFPrioritySettings settings;
sl@0
  1971
	TInt error = KErrNone;
sl@0
  1972
	RMMFController controller;
sl@0
  1973
sl@0
  1974
	settings.iPriority = 1;
sl@0
  1975
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  1976
	settings.iState = EMMFStateIdle;
sl@0
  1977
sl@0
  1978
sl@0
  1979
	// Open a Custom Controller
sl@0
  1980
	error = controller.Open(KTstControllerUid,settings);
sl@0
  1981
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  1982
	TUid uid = {0x101f72B4};
sl@0
  1983
sl@0
  1984
	RMMFTestCustomCommands customCommands(controller,uid);
sl@0
  1985
sl@0
  1986
sl@0
  1987
	TInt audioQuality = 14;
sl@0
  1988
sl@0
  1989
	error = customCommands.SetAudioQuality(audioQuality);
sl@0
  1990
sl@0
  1991
	//------------------------------------//
sl@0
  1992
	// Getting Log from Custom Controller //
sl@0
  1993
	//------------------------------------//
sl@0
  1994
	if (!error)
sl@0
  1995
		{
sl@0
  1996
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  1997
sl@0
  1998
		TBuf8<64> memFunctionText;
sl@0
  1999
	
sl@0
  2000
		TUid uid = {KMmfTestControllerUid};
sl@0
  2001
		TMMFMessageDestination handleInfo(uid);
sl@0
  2002
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2003
sl@0
  2004
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2005
		
sl@0
  2006
		TBuf<64> memFunctionText16;
sl@0
  2007
		memFunctionText16.Copy(memFunctionText);
sl@0
  2008
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  2009
sl@0
  2010
		if (memFunctionText != KExpectedResult)
sl@0
  2011
			{
sl@0
  2012
			verdict = EFail;
sl@0
  2013
			}
sl@0
  2014
sl@0
  2015
		}
sl@0
  2016
	//------------------------------------//
sl@0
  2017
sl@0
  2018
sl@0
  2019
	if (error)
sl@0
  2020
		{
sl@0
  2021
		verdict = EFail;
sl@0
  2022
		}
sl@0
  2023
sl@0
  2024
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2025
	controller.Close();
sl@0
  2026
sl@0
  2027
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2028
	__MM_HEAP_MARKEND;
sl@0
  2029
 
sl@0
  2030
	return verdict;
sl@0
  2031
	}
sl@0
  2032
sl@0
  2033
//------------------------------------------------------------------
sl@0
  2034
// This test is supposed to fail
sl@0
  2035
sl@0
  2036
CTestStep_MMF_CTLFRM_U_0029::CTestStep_MMF_CTLFRM_U_0029()
sl@0
  2037
	/** Constructor
sl@0
  2038
	*/
sl@0
  2039
	{
sl@0
  2040
	// store the name of this test case
sl@0
  2041
	// this is the name that is used by the script file
sl@0
  2042
	// Each test step initialises it's own name
sl@0
  2043
	iTestStepName = _L("MM-MMF-CTLFRM-U-0029");
sl@0
  2044
sl@0
  2045
	
sl@0
  2046
	}
sl@0
  2047
sl@0
  2048
TVerdict CTestStep_MMF_CTLFRM_U_0029::DoTestStepL( void )
sl@0
  2049
/** Call the RMMFController::Open(..) with the parameters specified, varify the 
sl@0
  2050
 *  return value is NOT 0. Call the RMMFController::Close() on the Custom Controller. 
sl@0
  2051
 *  Varify 'error' is NOT zero.
sl@0
  2052
sl@0
  2053
 * Use case: N/A
sl@0
  2054
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2055
 */
sl@0
  2056
	{
sl@0
  2057
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2058
	__MM_HEAP_MARK;
sl@0
  2059
sl@0
  2060
	TVerdict verdict = EPass;
sl@0
  2061
	INFO_PRINTF1(_L("Test to Fail to Open a Custom Controller"));
sl@0
  2062
sl@0
  2063
sl@0
  2064
	TMMFPrioritySettings settings;
sl@0
  2065
	TInt error = KErrNone;
sl@0
  2066
	RMMFController controller;
sl@0
  2067
sl@0
  2068
	settings.iPriority = 1;
sl@0
  2069
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2070
	settings.iState = EMMFStateIdle;
sl@0
  2071
sl@0
  2072
	// Dummy UID to try and instantiate a controller which does not exist
sl@0
  2073
	TUid uidDummy = {0x12345678}; 
sl@0
  2074
sl@0
  2075
	// Open a Custom Controller
sl@0
  2076
	error = controller.Open(uidDummy,settings);
sl@0
  2077
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2078
sl@0
  2079
	if (!error)
sl@0
  2080
		{
sl@0
  2081
		verdict = EFail;
sl@0
  2082
		}
sl@0
  2083
sl@0
  2084
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2085
	controller.Close();
sl@0
  2086
sl@0
  2087
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2088
	__MM_HEAP_MARKEND;
sl@0
  2089
 
sl@0
  2090
	return verdict;
sl@0
  2091
	}
sl@0
  2092
sl@0
  2093
//------------------------------------------------------------------
sl@0
  2094
sl@0
  2095
CTestStep_MMF_CTLFRM_U_0030::CTestStep_MMF_CTLFRM_U_0030()
sl@0
  2096
	/** Constructor
sl@0
  2097
	*/
sl@0
  2098
	{
sl@0
  2099
	// store the name of this test case
sl@0
  2100
	// this is the name that is used by the script file
sl@0
  2101
	// Each test step initialises it's own name
sl@0
  2102
	iTestStepName = _L("MM-MMF-CTLFRM-U-0030");
sl@0
  2103
sl@0
  2104
	
sl@0
  2105
	}
sl@0
  2106
sl@0
  2107
TVerdict CTestStep_MMF_CTLFRM_U_0030::DoTestStepL( void )
sl@0
  2108
/** Call the RMMFController::Open(..) (with the parameters from test 001), varify 
sl@0
  2109
 *  the return value is 0. Fail to Instantiate a Custom DataSource Object and add it to 
sl@0
  2110
 *  the Custom Controller using RMMFController::AddDataSource(..), with the specified 
sl@0
  2111
 *  parameters. Call Custom Command 'KLogFunction' and varify the text value returned is 
sl@0
  2112
 *  not equal to the specifed text in Test Step. Call the RMMFController::Close() on the 
sl@0
  2113
 *  Custom Controller. Varify 'error' is NOT zero.
sl@0
  2114
sl@0
  2115
 * Use case: N/A
sl@0
  2116
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2117
 */
sl@0
  2118
	{
sl@0
  2119
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2120
	__MM_HEAP_MARK;
sl@0
  2121
sl@0
  2122
	TVerdict verdict = EPass;
sl@0
  2123
sl@0
  2124
	INFO_PRINTF1(_L("Test to Fail to Open a Data Source"));
sl@0
  2125
sl@0
  2126
	TMMFPrioritySettings settings;
sl@0
  2127
	TInt error = KErrNone;
sl@0
  2128
	RMMFController controller;
sl@0
  2129
sl@0
  2130
	settings.iPriority = 1;
sl@0
  2131
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2132
	settings.iState = EMMFStateIdle;
sl@0
  2133
sl@0
  2134
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2135
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2136
sl@0
  2137
	const TDesC8& initData = KInitData;
sl@0
  2138
	TUid uidDummy = {0x12345678};
sl@0
  2139
sl@0
  2140
	// Add Source
sl@0
  2141
	INFO_PRINTF1(_L("Attempting to add a Source to Controller"));
sl@0
  2142
	if (!error)
sl@0
  2143
		{
sl@0
  2144
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
  2145
		error = controller.AddDataSource(uidDummy, initData);
sl@0
  2146
		}
sl@0
  2147
sl@0
  2148
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2149
	
sl@0
  2150
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2151
	controller.Close();
sl@0
  2152
sl@0
  2153
	if (!error)
sl@0
  2154
		{
sl@0
  2155
		verdict = EFail;
sl@0
  2156
		}
sl@0
  2157
sl@0
  2158
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2159
	__MM_HEAP_MARKEND;
sl@0
  2160
 
sl@0
  2161
	return verdict;
sl@0
  2162
	}
sl@0
  2163
sl@0
  2164
sl@0
  2165
//---------------------------------------------------------------------
sl@0
  2166
sl@0
  2167
CTestStep_MMF_CTLFRM_U_0031::CTestStep_MMF_CTLFRM_U_0031()
sl@0
  2168
	/** Constructor
sl@0
  2169
	*/
sl@0
  2170
	{
sl@0
  2171
	// store the name of this test case
sl@0
  2172
	// this is the name that is used by the script file
sl@0
  2173
	// Each test step initialises it's own name
sl@0
  2174
	iTestStepName = _L("MM-MMF-CTLFRM-U-0031");
sl@0
  2175
sl@0
  2176
	
sl@0
  2177
	}
sl@0
  2178
sl@0
  2179
TVerdict CTestStep_MMF_CTLFRM_U_0031::DoTestStepL( void )
sl@0
  2180
/** Call the RMMFController::Open(..) (with the parameters from test 001), varify the 
sl@0
  2181
 *  return value is 0. Instantiate a Custom DataSink Object and add it to the Custom 
sl@0
  2182
 *  Controller using RMMFController::AddDataSink(..), with the specified parameters. Call 
sl@0
  2183
 *  Custom Command 'KLogFunction' and varify the text value returned is equal to the 
sl@0
  2184
 *  specifed text in Test Step. Call the RMMFController::Close() on the Custom Controller. 
sl@0
  2185
 *  Varify 'error' is zero.
sl@0
  2186
sl@0
  2187
 * Use case: N/A
sl@0
  2188
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2189
 */
sl@0
  2190
	{
sl@0
  2191
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2192
	__MM_HEAP_MARK;
sl@0
  2193
sl@0
  2194
	TVerdict verdict = EPass;
sl@0
  2195
sl@0
  2196
	INFO_PRINTF1(_L("Test to Fail to Open a Data Sink"));
sl@0
  2197
sl@0
  2198
	TMMFPrioritySettings settings;
sl@0
  2199
	TInt error = KErrNone;
sl@0
  2200
	RMMFController controller;
sl@0
  2201
sl@0
  2202
	settings.iPriority = 1;
sl@0
  2203
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2204
	settings.iState = EMMFStateIdle;
sl@0
  2205
sl@0
  2206
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2207
	
sl@0
  2208
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2209
sl@0
  2210
	const TDesC8& initData = KInitData;
sl@0
  2211
	TUid uidDummy = {0x12345678};
sl@0
  2212
sl@0
  2213
	// Add Source
sl@0
  2214
	INFO_PRINTF1(_L("Attempting to add a Sink to Controller"));
sl@0
  2215
	if (!error)
sl@0
  2216
		{
sl@0
  2217
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
  2218
		error = controller.AddDataSink(uidDummy, initData);
sl@0
  2219
		}
sl@0
  2220
	
sl@0
  2221
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2222
	
sl@0
  2223
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2224
	controller.Close();
sl@0
  2225
sl@0
  2226
	if (!error)
sl@0
  2227
		{
sl@0
  2228
		verdict = EFail;
sl@0
  2229
		}	
sl@0
  2230
sl@0
  2231
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2232
	__MM_HEAP_MARKEND;
sl@0
  2233
 
sl@0
  2234
	return verdict;
sl@0
  2235
	}
sl@0
  2236
sl@0
  2237
//----------------------------------------------------------
sl@0
  2238
sl@0
  2239
CTestStep_MMF_CTLFRM_U_0032::CTestStep_MMF_CTLFRM_U_0032()
sl@0
  2240
	/** Constructor
sl@0
  2241
	*/
sl@0
  2242
	{
sl@0
  2243
	// store the name of this test case
sl@0
  2244
	// this is the name that is used by the script file
sl@0
  2245
	// Each test step initialises it's own name
sl@0
  2246
	iTestStepName = _L("MM-MMF-CTLFRM-U-0032");
sl@0
  2247
sl@0
  2248
	
sl@0
  2249
	}
sl@0
  2250
sl@0
  2251
TVerdict CTestStep_MMF_CTLFRM_U_0032::DoTestStepL( void )
sl@0
  2252
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  2253
 * Use case: N/A
sl@0
  2254
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2255
 */
sl@0
  2256
	{
sl@0
  2257
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2258
	__MM_HEAP_MARK;
sl@0
  2259
sl@0
  2260
	TVerdict verdict = EPass;
sl@0
  2261
sl@0
  2262
	TMMFPrioritySettings settings;
sl@0
  2263
	TInt error = KErrNone;
sl@0
  2264
	RMMFController controller;
sl@0
  2265
sl@0
  2266
	settings.iPriority = 1;
sl@0
  2267
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2268
	settings.iState = EMMFStateIdle;
sl@0
  2269
sl@0
  2270
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2271
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2272
sl@0
  2273
	//---------------------//
sl@0
  2274
	// Set Controller Mode //
sl@0
  2275
	//---------------------//
sl@0
  2276
	if (!error)
sl@0
  2277
		{
sl@0
  2278
		TUid uid = {KMmfTestControllerUid};
sl@0
  2279
		TMMFMessageDestination handleInfo(uid);
sl@0
  2280
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2281
sl@0
  2282
		TPckgBuf<TUint8> value = 1; // 1 = EFailure Mode
sl@0
  2283
sl@0
  2284
		error = controller.CustomCommandSync(messageDest, KModeFunction, value, KNullDesC8);
sl@0
  2285
		}
sl@0
  2286
sl@0
  2287
	const TDesC8& initData = KInitData;
sl@0
  2288
	TUid uidDummy = {0x12345678};
sl@0
  2289
sl@0
  2290
	// Add Source
sl@0
  2291
	INFO_PRINTF1(_L("Attempting to add a Source to Controller"));
sl@0
  2292
	if (!error)
sl@0
  2293
		{
sl@0
  2294
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
  2295
		//error = controller.AddDataSource(KTestDataSourceUid, initData);
sl@0
  2296
		error = controller.AddDataSource(uidDummy, initData);
sl@0
  2297
		}
sl@0
  2298
	
sl@0
  2299
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2300
sl@0
  2301
	if (error != KAddDataSourceFailure)
sl@0
  2302
		{
sl@0
  2303
		verdict = EFail;
sl@0
  2304
		}
sl@0
  2305
sl@0
  2306
	
sl@0
  2307
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2308
	controller.Close();
sl@0
  2309
sl@0
  2310
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2311
	__MM_HEAP_MARKEND;
sl@0
  2312
		
sl@0
  2313
	return verdict;
sl@0
  2314
	}
sl@0
  2315
sl@0
  2316
//---------------------------------------------------------------
sl@0
  2317
sl@0
  2318
sl@0
  2319
CTestStep_MMF_CTLFRM_U_0033::CTestStep_MMF_CTLFRM_U_0033()
sl@0
  2320
	/** Constructor
sl@0
  2321
	*/
sl@0
  2322
	{
sl@0
  2323
	// store the name of this test case
sl@0
  2324
	// this is the name that is used by the script file
sl@0
  2325
	// Each test step initialises it's own name
sl@0
  2326
	iTestStepName = _L("MM-MMF-CTLFRM-U-0033");
sl@0
  2327
sl@0
  2328
	
sl@0
  2329
	}
sl@0
  2330
sl@0
  2331
TVerdict CTestStep_MMF_CTLFRM_U_0033::DoTestStepL( void )
sl@0
  2332
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  2333
 * Use case: N/A
sl@0
  2334
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2335
 */
sl@0
  2336
	{
sl@0
  2337
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2338
	__MM_HEAP_MARK;
sl@0
  2339
sl@0
  2340
	TVerdict verdict = EPass;
sl@0
  2341
sl@0
  2342
	TMMFPrioritySettings settings;
sl@0
  2343
	TInt error = KErrNone;
sl@0
  2344
	RMMFController controller;
sl@0
  2345
sl@0
  2346
	settings.iPriority = 1;
sl@0
  2347
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2348
	settings.iState = EMMFStateIdle;
sl@0
  2349
sl@0
  2350
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2351
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2352
sl@0
  2353
	//---------------------//
sl@0
  2354
	// Set Controller Mode //
sl@0
  2355
	//---------------------//
sl@0
  2356
	if (!error)
sl@0
  2357
		{
sl@0
  2358
		TUid uid = {KMmfTestControllerUid};
sl@0
  2359
		TMMFMessageDestination handleInfo(uid);
sl@0
  2360
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2361
sl@0
  2362
sl@0
  2363
		TPckgBuf<TUint8> value = 1; // 1 = EFailure Mode
sl@0
  2364
sl@0
  2365
		error = controller.CustomCommandSync(messageDest, KModeFunction, value, KNullDesC8);
sl@0
  2366
		}
sl@0
  2367
sl@0
  2368
	const TDesC8& initData = KInitData;
sl@0
  2369
sl@0
  2370
	// Add Sink
sl@0
  2371
	INFO_PRINTF1(_L("Attempting to add a Sink to Controller"));
sl@0
  2372
	if (!error)
sl@0
  2373
		{
sl@0
  2374
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
  2375
		error = controller.AddDataSource(KTestDataSinkUid, initData);
sl@0
  2376
		}
sl@0
  2377
	
sl@0
  2378
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2379
sl@0
  2380
	if (error != KAddDataSinkFailure)
sl@0
  2381
		{
sl@0
  2382
		verdict = EFail;
sl@0
  2383
		}
sl@0
  2384
sl@0
  2385
sl@0
  2386
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2387
	controller.Close();
sl@0
  2388
sl@0
  2389
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2390
	__MM_HEAP_MARKEND;
sl@0
  2391
		
sl@0
  2392
	return verdict;
sl@0
  2393
	}
sl@0
  2394
sl@0
  2395
//---------------------------------------------------------------
sl@0
  2396
sl@0
  2397
sl@0
  2398
CTestStep_MMF_CTLFRM_U_0034::CTestStep_MMF_CTLFRM_U_0034()
sl@0
  2399
	/** Constructor
sl@0
  2400
	*/
sl@0
  2401
	{
sl@0
  2402
	// store the name of this test case
sl@0
  2403
	// this is the name that is used by the script file
sl@0
  2404
	// Each test step initialises it's own name
sl@0
  2405
	iTestStepName = _L("MM-MMF-CTLFRM-U-0034");
sl@0
  2406
sl@0
  2407
	
sl@0
  2408
	}
sl@0
  2409
sl@0
  2410
TVerdict CTestStep_MMF_CTLFRM_U_0034::DoTestStepL( void )
sl@0
  2411
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  2412
 * Use case: N/A
sl@0
  2413
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2414
 */
sl@0
  2415
	{
sl@0
  2416
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2417
	__MM_HEAP_MARK;
sl@0
  2418
sl@0
  2419
	TVerdict verdict = EPass;
sl@0
  2420
sl@0
  2421
	TMMFPrioritySettings settings;
sl@0
  2422
	TInt error = KErrNone;
sl@0
  2423
	RMMFController controller;
sl@0
  2424
sl@0
  2425
	settings.iPriority = 1;
sl@0
  2426
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2427
	settings.iState = EMMFStateIdle;
sl@0
  2428
sl@0
  2429
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2430
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2431
sl@0
  2432
	//---------------------//
sl@0
  2433
	// Set Controller Mode //
sl@0
  2434
	//---------------------//
sl@0
  2435
	if (!error)
sl@0
  2436
		{
sl@0
  2437
		TUid uid = {KMmfTestControllerUid};
sl@0
  2438
		TMMFMessageDestination handleInfo(uid);
sl@0
  2439
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2440
 
sl@0
  2441
		TPckgBuf<TUint8> value = 1; // 1 = EFailure Mode
sl@0
  2442
sl@0
  2443
		error = controller.CustomCommandSync(messageDest, KModeFunction, value, KNullDesC8);
sl@0
  2444
		}
sl@0
  2445
sl@0
  2446
	const TDesC8& initData = KInitData;
sl@0
  2447
	TMMFMessageDestination sourceHandlePtr;
sl@0
  2448
	TMMFMessageDestination& sourceHandle = sourceHandlePtr;
sl@0
  2449
sl@0
  2450
	// Add Source
sl@0
  2451
	INFO_PRINTF1(_L("Attempting to add a Source to Controller"));
sl@0
  2452
	if (!error)
sl@0
  2453
		{
sl@0
  2454
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
  2455
		error = controller.AddDataSource(KTestDataSourceUid, initData, sourceHandle);
sl@0
  2456
		error = controller.RemoveDataSource(sourceHandle);
sl@0
  2457
		}
sl@0
  2458
		
sl@0
  2459
	
sl@0
  2460
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2461
sl@0
  2462
	if (error != KAddDataSourceFailure)
sl@0
  2463
		{
sl@0
  2464
		verdict = EFail;
sl@0
  2465
		}
sl@0
  2466
sl@0
  2467
	
sl@0
  2468
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2469
	controller.Close();
sl@0
  2470
sl@0
  2471
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2472
	__MM_HEAP_MARKEND;
sl@0
  2473
sl@0
  2474
	return verdict;
sl@0
  2475
	}
sl@0
  2476
sl@0
  2477
//-----------------------------------------------------------//
sl@0
  2478
sl@0
  2479
CTestStep_MMF_CTLFRM_U_0035::CTestStep_MMF_CTLFRM_U_0035()
sl@0
  2480
	/** Constructor
sl@0
  2481
	*/
sl@0
  2482
	{
sl@0
  2483
	// store the name of this test case
sl@0
  2484
	// this is the name that is used by the script file
sl@0
  2485
	// Each test step initialises it's own name
sl@0
  2486
	iTestStepName = _L("MM-MMF-CTLFRM-U-0035");
sl@0
  2487
sl@0
  2488
	
sl@0
  2489
	}
sl@0
  2490
sl@0
  2491
TVerdict CTestStep_MMF_CTLFRM_U_0035::DoTestStepL( void )
sl@0
  2492
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  2493
 * Use case: N/A
sl@0
  2494
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2495
 */
sl@0
  2496
	{
sl@0
  2497
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2498
	__MM_HEAP_MARK;
sl@0
  2499
sl@0
  2500
	TVerdict verdict = EPass;
sl@0
  2501
sl@0
  2502
	TMMFPrioritySettings settings;
sl@0
  2503
	TInt error = KErrNone;
sl@0
  2504
	RMMFController controller;
sl@0
  2505
sl@0
  2506
	settings.iPriority = 1;
sl@0
  2507
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2508
	settings.iState = EMMFStateIdle;
sl@0
  2509
sl@0
  2510
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2511
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2512
sl@0
  2513
	//---------------------//
sl@0
  2514
	// Set Controller Mode //
sl@0
  2515
	//---------------------//
sl@0
  2516
	if (!error)
sl@0
  2517
		{
sl@0
  2518
		TUid uid = {KMmfTestControllerUid};
sl@0
  2519
		TMMFMessageDestination handleInfo(uid);
sl@0
  2520
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2521
sl@0
  2522
//		TUint8 value = 1; // 1 = EFailure Mode
sl@0
  2523
		TPckgBuf<TUint8> value = 1;
sl@0
  2524
sl@0
  2525
		error = controller.CustomCommandSync(messageDest, KModeFunction, value, KNullDesC8);
sl@0
  2526
		}
sl@0
  2527
sl@0
  2528
	const TDesC8& initData = KInitData;
sl@0
  2529
	TMMFMessageDestination sinkHandlePtr;
sl@0
  2530
	TMMFMessageDestination& sinkHandle = sinkHandlePtr;
sl@0
  2531
sl@0
  2532
	// Add Source
sl@0
  2533
	INFO_PRINTF1(_L("Attempting to add a Sink to Controller"));
sl@0
  2534
	if (!error)
sl@0
  2535
		{
sl@0
  2536
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
  2537
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle);
sl@0
  2538
		error = controller.RemoveDataSink(sinkHandle);
sl@0
  2539
		}
sl@0
  2540
		
sl@0
  2541
	
sl@0
  2542
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  2543
sl@0
  2544
	if (error != KAddDataSinkFailure)
sl@0
  2545
		{
sl@0
  2546
		verdict = EFail;
sl@0
  2547
		}
sl@0
  2548
	
sl@0
  2549
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2550
	controller.Close();
sl@0
  2551
sl@0
  2552
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2553
	__MM_HEAP_MARKEND;
sl@0
  2554
sl@0
  2555
	return verdict;
sl@0
  2556
	}
sl@0
  2557
sl@0
  2558
//-----------------------------------------------------------//
sl@0
  2559
sl@0
  2560
sl@0
  2561
sl@0
  2562
//-----------------------------------------------------------
sl@0
  2563
// Testing of the Standard Custom Commands
sl@0
  2564
//-----------------------------------------------------------
sl@0
  2565
sl@0
  2566
CTestStep_MMF_CTLFRM_U_0040::CTestStep_MMF_CTLFRM_U_0040()
sl@0
  2567
	/** Constructor
sl@0
  2568
	*/
sl@0
  2569
	{
sl@0
  2570
	// store the name of this test case
sl@0
  2571
	// this is the name that is used by the script file
sl@0
  2572
	// Each test step initialises it's own name
sl@0
  2573
	iTestStepName = _L("MM-MMF-CTLFRM-U-0040");
sl@0
  2574
sl@0
  2575
	
sl@0
  2576
	}
sl@0
  2577
sl@0
  2578
TVerdict CTestStep_MMF_CTLFRM_U_0040::DoTestStepL( void )
sl@0
  2579
/** Call the RMMFController::Open(..) (with the parameters from test 001), varify the 
sl@0
  2580
 *  return value is 0. Instantiate a CustomCommands Object (specified). Call RMMFController 
sl@0
  2581
 *  Method specified and varify the 'error' is 0. Follow this by calling the  Custom 
sl@0
  2582
 *  Command 'KLogFunction' and varify the text value returned is equal to the specifed text 
sl@0
  2583
 *  in Test Step. Call the RMMFController::Close() on the Custom Controller. Varify 'error' 
sl@0
  2584
 *  is zero.
sl@0
  2585
sl@0
  2586
 * Use case: N/A
sl@0
  2587
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2588
 */
sl@0
  2589
	{
sl@0
  2590
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2591
	__MM_HEAP_MARK;
sl@0
  2592
sl@0
  2593
	TVerdict verdict = EPass;
sl@0
  2594
	_LIT8(KExpectedResult, "MapdSetVolumeL Called");
sl@0
  2595
sl@0
  2596
	TMMFPrioritySettings settings;
sl@0
  2597
	TInt error = KErrNone;
sl@0
  2598
	RMMFController controller;
sl@0
  2599
sl@0
  2600
	settings.iPriority = 1;
sl@0
  2601
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2602
	settings.iState = EMMFStateIdle;
sl@0
  2603
sl@0
  2604
	TInt volume = 27;
sl@0
  2605
sl@0
  2606
	// Open a Custom Controller
sl@0
  2607
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2608
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2609
sl@0
  2610
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  2611
sl@0
  2612
	error = customCommands.SetVolume(volume);
sl@0
  2613
sl@0
  2614
	//------------------------------------//
sl@0
  2615
	// Getting Log from Custom Controller //
sl@0
  2616
	//------------------------------------//
sl@0
  2617
	if (!error)
sl@0
  2618
		{
sl@0
  2619
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  2620
sl@0
  2621
		TBuf8<64> memFunctionText;
sl@0
  2622
	
sl@0
  2623
		TUid uid = {KMmfTestControllerUid};
sl@0
  2624
		TMMFMessageDestination handleInfo(uid);
sl@0
  2625
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2626
sl@0
  2627
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2628
		
sl@0
  2629
		TBuf<64> memFunctionText16;
sl@0
  2630
		memFunctionText16.Copy(memFunctionText);
sl@0
  2631
 		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  2632
sl@0
  2633
		if (memFunctionText != KExpectedResult)
sl@0
  2634
			{
sl@0
  2635
			verdict = EFail;
sl@0
  2636
			}
sl@0
  2637
sl@0
  2638
		}
sl@0
  2639
	//------------------------------------//
sl@0
  2640
sl@0
  2641
	if (error)
sl@0
  2642
		{
sl@0
  2643
		verdict = EFail;
sl@0
  2644
		}
sl@0
  2645
sl@0
  2646
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2647
	controller.Close();
sl@0
  2648
sl@0
  2649
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2650
	__MM_HEAP_MARKEND;
sl@0
  2651
 
sl@0
  2652
	return verdict;
sl@0
  2653
	}
sl@0
  2654
sl@0
  2655
//---------------------------------------------------------------
sl@0
  2656
sl@0
  2657
sl@0
  2658
CTestStep_MMF_CTLFRM_U_0041::CTestStep_MMF_CTLFRM_U_0041()
sl@0
  2659
	/** Constructor
sl@0
  2660
	*/
sl@0
  2661
	{
sl@0
  2662
	// store the name of this test case
sl@0
  2663
	// this is the name that is used by the script file
sl@0
  2664
	// Each test step initialises it's own name
sl@0
  2665
	iTestStepName = _L("MM-MMF-CTLFRM-U-0041");
sl@0
  2666
sl@0
  2667
	
sl@0
  2668
	}
sl@0
  2669
sl@0
  2670
TVerdict CTestStep_MMF_CTLFRM_U_0041::DoTestStepL( void )
sl@0
  2671
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  2672
sl@0
  2673
 * Use case: N/A
sl@0
  2674
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2675
 */
sl@0
  2676
	{
sl@0
  2677
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2678
	__MM_HEAP_MARK;
sl@0
  2679
sl@0
  2680
	TVerdict verdict = EPass;
sl@0
  2681
	_LIT8(KExpectedResult, "MapdGetMaxVolumeL Called");
sl@0
  2682
sl@0
  2683
	TMMFPrioritySettings settings;
sl@0
  2684
	TInt error = KErrNone;
sl@0
  2685
	RMMFController controller;
sl@0
  2686
sl@0
  2687
	settings.iPriority = 1;
sl@0
  2688
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2689
	settings.iState = EMMFStateIdle;
sl@0
  2690
sl@0
  2691
	TInt maxVolume = 0;
sl@0
  2692
sl@0
  2693
	// Open a Custom Controller
sl@0
  2694
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2695
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2696
sl@0
  2697
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  2698
sl@0
  2699
	error = customCommands.GetMaxVolume(maxVolume);
sl@0
  2700
sl@0
  2701
	//------------------------------------//
sl@0
  2702
	// Getting Log from Custom Controller //
sl@0
  2703
	//------------------------------------//
sl@0
  2704
	if (!error)
sl@0
  2705
		{
sl@0
  2706
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  2707
sl@0
  2708
		TBuf8<64> memFunctionText;
sl@0
  2709
	
sl@0
  2710
		TUid uid = {KMmfTestControllerUid};
sl@0
  2711
		TMMFMessageDestination handleInfo(uid);
sl@0
  2712
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2713
sl@0
  2714
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2715
		
sl@0
  2716
		TBuf<64> memFunctionText16;
sl@0
  2717
		memFunctionText16.Copy(memFunctionText);
sl@0
  2718
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  2719
sl@0
  2720
		if (memFunctionText != KExpectedResult)
sl@0
  2721
			{
sl@0
  2722
			verdict = EFail;
sl@0
  2723
			}
sl@0
  2724
sl@0
  2725
		}
sl@0
  2726
	//------------------------------------//
sl@0
  2727
sl@0
  2728
sl@0
  2729
	if (error)
sl@0
  2730
		{
sl@0
  2731
		verdict = EFail;
sl@0
  2732
		}
sl@0
  2733
sl@0
  2734
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2735
	controller.Close();
sl@0
  2736
sl@0
  2737
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2738
	__MM_HEAP_MARKEND;
sl@0
  2739
 
sl@0
  2740
	return verdict;
sl@0
  2741
	}
sl@0
  2742
sl@0
  2743
//---------------------------------------------------------------
sl@0
  2744
sl@0
  2745
CTestStep_MMF_CTLFRM_U_0042::CTestStep_MMF_CTLFRM_U_0042()
sl@0
  2746
	/** Constructor
sl@0
  2747
	*/
sl@0
  2748
	{
sl@0
  2749
	// store the name of this test case
sl@0
  2750
	// this is the name that is used by the script file
sl@0
  2751
	// Each test step initialises it's own name
sl@0
  2752
	iTestStepName = _L("MM-MMF-CTLFRM-U-0042");
sl@0
  2753
sl@0
  2754
	
sl@0
  2755
	}
sl@0
  2756
sl@0
  2757
TVerdict CTestStep_MMF_CTLFRM_U_0042::DoTestStepL( void )
sl@0
  2758
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  2759
 * Use case: N/A
sl@0
  2760
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2761
 */
sl@0
  2762
	{
sl@0
  2763
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2764
	__MM_HEAP_MARK;
sl@0
  2765
sl@0
  2766
	TVerdict verdict = EPass;
sl@0
  2767
	_LIT8(KExpectedResult, "MapdGetVolumeL Called");
sl@0
  2768
sl@0
  2769
	TMMFPrioritySettings settings;
sl@0
  2770
	TInt error = KErrNone;
sl@0
  2771
	RMMFController controller;
sl@0
  2772
sl@0
  2773
	settings.iPriority = 1;
sl@0
  2774
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2775
	settings.iState = EMMFStateIdle;
sl@0
  2776
sl@0
  2777
	TInt volume = 0;
sl@0
  2778
sl@0
  2779
	// Open a Custom Controller
sl@0
  2780
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2781
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2782
sl@0
  2783
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  2784
sl@0
  2785
	error = customCommands.GetVolume(volume);
sl@0
  2786
sl@0
  2787
	//------------------------------------//
sl@0
  2788
	// Getting Log from Custom Controller //
sl@0
  2789
	//------------------------------------//
sl@0
  2790
	if (!error)
sl@0
  2791
		{
sl@0
  2792
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  2793
sl@0
  2794
		TBuf8<64> memFunctionText;
sl@0
  2795
	
sl@0
  2796
		TUid uid = {KMmfTestControllerUid};
sl@0
  2797
		TMMFMessageDestination handleInfo(uid);
sl@0
  2798
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2799
sl@0
  2800
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2801
		
sl@0
  2802
		TBuf<64> memFunctionText16;
sl@0
  2803
		memFunctionText16.Copy(memFunctionText);
sl@0
  2804
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  2805
sl@0
  2806
		if (memFunctionText != KExpectedResult)
sl@0
  2807
			{
sl@0
  2808
			verdict = EFail;
sl@0
  2809
			}
sl@0
  2810
sl@0
  2811
		}
sl@0
  2812
	//------------------------------------//
sl@0
  2813
sl@0
  2814
	if (error)
sl@0
  2815
		{
sl@0
  2816
		verdict = EFail;
sl@0
  2817
		}
sl@0
  2818
sl@0
  2819
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2820
	controller.Close();
sl@0
  2821
sl@0
  2822
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2823
	__MM_HEAP_MARKEND;
sl@0
  2824
 
sl@0
  2825
	return verdict;
sl@0
  2826
	}
sl@0
  2827
sl@0
  2828
//---------------------------------------------------------------
sl@0
  2829
sl@0
  2830
sl@0
  2831
CTestStep_MMF_CTLFRM_U_0043::CTestStep_MMF_CTLFRM_U_0043()
sl@0
  2832
	/** Constructor
sl@0
  2833
	*/
sl@0
  2834
	{
sl@0
  2835
	// store the name of this test case
sl@0
  2836
	// this is the name that is used by the script file
sl@0
  2837
	// Each test step initialises it's own name
sl@0
  2838
	iTestStepName = _L("MM-MMF-CTLFRM-U-0043");
sl@0
  2839
sl@0
  2840
	
sl@0
  2841
	}
sl@0
  2842
sl@0
  2843
TVerdict CTestStep_MMF_CTLFRM_U_0043::DoTestStepL( void )
sl@0
  2844
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  2845
 * Use case: N/A
sl@0
  2846
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2847
 */
sl@0
  2848
	{
sl@0
  2849
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2850
	__MM_HEAP_MARK;
sl@0
  2851
sl@0
  2852
	TVerdict verdict = EPass;
sl@0
  2853
	_LIT8(KExpectedResult, "MapdSetVolumeRampL Called");
sl@0
  2854
sl@0
  2855
	TMMFPrioritySettings settings;
sl@0
  2856
	TInt error = KErrNone;
sl@0
  2857
	RMMFController controller;
sl@0
  2858
sl@0
  2859
	settings.iPriority = 1;
sl@0
  2860
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2861
	settings.iState = EMMFStateIdle;
sl@0
  2862
sl@0
  2863
	const TInt64 interval = 10;
sl@0
  2864
	TTimeIntervalMicroSeconds rampData(interval);
sl@0
  2865
sl@0
  2866
	// Open a Custom Controller
sl@0
  2867
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2868
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2869
sl@0
  2870
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  2871
sl@0
  2872
	error = customCommands.SetVolumeRamp(rampData);
sl@0
  2873
sl@0
  2874
	//------------------------------------//
sl@0
  2875
	// Getting Log from Custom Controller //
sl@0
  2876
	//------------------------------------//
sl@0
  2877
	if (!error)
sl@0
  2878
		{
sl@0
  2879
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  2880
sl@0
  2881
		TBuf8<64> memFunctionText;
sl@0
  2882
	
sl@0
  2883
		TUid uid = {KMmfTestControllerUid};
sl@0
  2884
		TMMFMessageDestination handleInfo(uid);
sl@0
  2885
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2886
sl@0
  2887
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2888
		
sl@0
  2889
		TBuf<64> memFunctionText16;
sl@0
  2890
		memFunctionText16.Copy(memFunctionText);
sl@0
  2891
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  2892
sl@0
  2893
		if (memFunctionText != KExpectedResult)
sl@0
  2894
			{
sl@0
  2895
			verdict = EFail;
sl@0
  2896
			}
sl@0
  2897
sl@0
  2898
		}
sl@0
  2899
	//------------------------------------//
sl@0
  2900
sl@0
  2901
	if (error)
sl@0
  2902
		{
sl@0
  2903
		verdict = EFail;
sl@0
  2904
		}
sl@0
  2905
sl@0
  2906
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2907
	controller.Close();
sl@0
  2908
sl@0
  2909
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2910
	__MM_HEAP_MARKEND;
sl@0
  2911
 
sl@0
  2912
	return verdict;
sl@0
  2913
	}
sl@0
  2914
sl@0
  2915
//---------------------------------------------------------------
sl@0
  2916
sl@0
  2917
CTestStep_MMF_CTLFRM_U_0044::CTestStep_MMF_CTLFRM_U_0044()
sl@0
  2918
	/** Constructor
sl@0
  2919
	*/
sl@0
  2920
	{
sl@0
  2921
	// store the name of this test case
sl@0
  2922
	// this is the name that is used by the script file
sl@0
  2923
	// Each test step initialises it's own name
sl@0
  2924
	iTestStepName = _L("MM-MMF-CTLFRM-U-0044");
sl@0
  2925
sl@0
  2926
	
sl@0
  2927
	}
sl@0
  2928
sl@0
  2929
TVerdict CTestStep_MMF_CTLFRM_U_0044::DoTestStepL( void )
sl@0
  2930
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  2931
 * Use case: N/A
sl@0
  2932
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  2933
 */
sl@0
  2934
	{
sl@0
  2935
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  2936
	__MM_HEAP_MARK;
sl@0
  2937
sl@0
  2938
	TVerdict verdict = EPass;
sl@0
  2939
	_LIT8(KExpectedResult, "MapdSetBalanceL Called");
sl@0
  2940
sl@0
  2941
	TMMFPrioritySettings settings;
sl@0
  2942
	TInt error = KErrNone;
sl@0
  2943
	RMMFController controller;
sl@0
  2944
sl@0
  2945
	settings.iPriority = 1;
sl@0
  2946
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  2947
	settings.iState = EMMFStateIdle;
sl@0
  2948
sl@0
  2949
	TInt balance = 5;
sl@0
  2950
sl@0
  2951
	// Open a Custom Controller
sl@0
  2952
	error = controller.Open(KTstControllerUid,settings);
sl@0
  2953
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  2954
sl@0
  2955
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  2956
sl@0
  2957
	error = customCommands.SetBalance(balance);
sl@0
  2958
sl@0
  2959
sl@0
  2960
	//------------------------------------//
sl@0
  2961
	// Getting Log from Custom Controller //
sl@0
  2962
	//------------------------------------//
sl@0
  2963
	if (!error)
sl@0
  2964
		{
sl@0
  2965
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  2966
sl@0
  2967
		TBuf8<64> memFunctionText;
sl@0
  2968
	
sl@0
  2969
		TUid uid = {KMmfTestControllerUid};
sl@0
  2970
		TMMFMessageDestination handleInfo(uid);
sl@0
  2971
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  2972
sl@0
  2973
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  2974
		
sl@0
  2975
		TBuf<64> memFunctionText16;
sl@0
  2976
		memFunctionText16.Copy(memFunctionText);
sl@0
  2977
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  2978
sl@0
  2979
		if (memFunctionText != KExpectedResult)
sl@0
  2980
			{
sl@0
  2981
			verdict = EFail;
sl@0
  2982
			}
sl@0
  2983
sl@0
  2984
		}
sl@0
  2985
	//------------------------------------//
sl@0
  2986
sl@0
  2987
sl@0
  2988
	if (error)
sl@0
  2989
		{
sl@0
  2990
		verdict = EFail;
sl@0
  2991
		}
sl@0
  2992
sl@0
  2993
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  2994
	controller.Close();
sl@0
  2995
sl@0
  2996
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  2997
	__MM_HEAP_MARKEND;
sl@0
  2998
 
sl@0
  2999
	return verdict;
sl@0
  3000
	}
sl@0
  3001
sl@0
  3002
//---------------------------------------------------------------
sl@0
  3003
sl@0
  3004
CTestStep_MMF_CTLFRM_U_0045::CTestStep_MMF_CTLFRM_U_0045()
sl@0
  3005
	/** Constructor
sl@0
  3006
	*/
sl@0
  3007
	{
sl@0
  3008
	// store the name of this test case
sl@0
  3009
	// this is the name that is used by the script file
sl@0
  3010
	// Each test step initialises it's own name
sl@0
  3011
	iTestStepName = _L("MM-MMF-CTLFRM-U-0045");
sl@0
  3012
sl@0
  3013
	
sl@0
  3014
	}
sl@0
  3015
sl@0
  3016
TVerdict CTestStep_MMF_CTLFRM_U_0045::DoTestStepL( void )
sl@0
  3017
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3018
 * Use case: N/A
sl@0
  3019
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3020
 */
sl@0
  3021
	{
sl@0
  3022
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3023
	__MM_HEAP_MARK;
sl@0
  3024
sl@0
  3025
	TVerdict verdict = EPass;
sl@0
  3026
	_LIT8(KExpectedResult, "MapdGetBalanceL Called");
sl@0
  3027
sl@0
  3028
	TMMFPrioritySettings settings;
sl@0
  3029
	TInt error = KErrNone;
sl@0
  3030
	RMMFController controller;
sl@0
  3031
sl@0
  3032
	settings.iPriority = 1;
sl@0
  3033
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3034
	settings.iState = EMMFStateIdle;
sl@0
  3035
sl@0
  3036
	TInt balance = 5;
sl@0
  3037
sl@0
  3038
	// Open a Custom Controller
sl@0
  3039
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3040
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3041
sl@0
  3042
	RMMFAudioPlayDeviceCustomCommands customCommands(controller);
sl@0
  3043
sl@0
  3044
	customCommands.GetBalance(balance);
sl@0
  3045
sl@0
  3046
	//------------------------------------//
sl@0
  3047
	// Getting Log from Custom Controller //
sl@0
  3048
	//------------------------------------//
sl@0
  3049
	if (!error)
sl@0
  3050
		{
sl@0
  3051
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3052
sl@0
  3053
		TBuf8<64> memFunctionText;
sl@0
  3054
	
sl@0
  3055
		TUid uid = {KMmfTestControllerUid};
sl@0
  3056
		TMMFMessageDestination handleInfo(uid);
sl@0
  3057
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3058
sl@0
  3059
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3060
		
sl@0
  3061
		TBuf<64> memFunctionText16;
sl@0
  3062
		memFunctionText16.Copy(memFunctionText);
sl@0
  3063
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3064
sl@0
  3065
		if (memFunctionText != KExpectedResult)
sl@0
  3066
			{
sl@0
  3067
			verdict = EFail;
sl@0
  3068
			}
sl@0
  3069
sl@0
  3070
		}
sl@0
  3071
	//------------------------------------//
sl@0
  3072
sl@0
  3073
sl@0
  3074
	if (error)
sl@0
  3075
		{
sl@0
  3076
		verdict = EFail;
sl@0
  3077
		}
sl@0
  3078
sl@0
  3079
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3080
	controller.Close();
sl@0
  3081
sl@0
  3082
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3083
	__MM_HEAP_MARKEND;
sl@0
  3084
 
sl@0
  3085
	return verdict;
sl@0
  3086
	}
sl@0
  3087
sl@0
  3088
//---------------------------------------------------------------
sl@0
  3089
sl@0
  3090
CTestStep_MMF_CTLFRM_U_0050::CTestStep_MMF_CTLFRM_U_0050()
sl@0
  3091
	/** Constructor
sl@0
  3092
	*/
sl@0
  3093
	{
sl@0
  3094
	// store the name of this test case
sl@0
  3095
	// this is the name that is used by the script file
sl@0
  3096
	// Each test step initialises it's own name
sl@0
  3097
	iTestStepName = _L("MM-MMF-CTLFRM-U-0050");
sl@0
  3098
sl@0
  3099
	
sl@0
  3100
	}
sl@0
  3101
sl@0
  3102
TVerdict CTestStep_MMF_CTLFRM_U_0050::DoTestStepL( void )
sl@0
  3103
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3104
 * Use case: N/A
sl@0
  3105
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3106
 */
sl@0
  3107
	{
sl@0
  3108
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3109
	__MM_HEAP_MARK;
sl@0
  3110
sl@0
  3111
	TVerdict verdict = EPass;
sl@0
  3112
	_LIT8(KExpectedResult, "MardSetGainL Called");
sl@0
  3113
sl@0
  3114
	TMMFPrioritySettings settings;
sl@0
  3115
	TInt error = KErrNone;
sl@0
  3116
	RMMFController controller;
sl@0
  3117
sl@0
  3118
	settings.iPriority = 1;
sl@0
  3119
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3120
	settings.iState = EMMFStateIdle;
sl@0
  3121
sl@0
  3122
	TInt gain = 5;
sl@0
  3123
sl@0
  3124
	// Open a Custom Controller
sl@0
  3125
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3126
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3127
sl@0
  3128
	RMMFAudioRecordDeviceCustomCommands customCommands(controller);
sl@0
  3129
	error = customCommands.SetGain(gain);
sl@0
  3130
sl@0
  3131
	//------------------------------------//
sl@0
  3132
	// Getting Log from Custom Controller //
sl@0
  3133
	//------------------------------------//
sl@0
  3134
	if (!error)
sl@0
  3135
		{
sl@0
  3136
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3137
sl@0
  3138
		TBuf8<64> memFunctionText;
sl@0
  3139
	
sl@0
  3140
		TUid uid = {KMmfTestControllerUid};
sl@0
  3141
		TMMFMessageDestination handleInfo(uid);
sl@0
  3142
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3143
sl@0
  3144
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3145
		
sl@0
  3146
		TBuf<64> memFunctionText16;
sl@0
  3147
		memFunctionText16.Copy(memFunctionText);
sl@0
  3148
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3149
sl@0
  3150
		if (memFunctionText != KExpectedResult)
sl@0
  3151
			{
sl@0
  3152
			verdict = EFail;
sl@0
  3153
			}
sl@0
  3154
sl@0
  3155
		}
sl@0
  3156
	//------------------------------------//
sl@0
  3157
sl@0
  3158
	if (error)
sl@0
  3159
		{
sl@0
  3160
		verdict = EFail;
sl@0
  3161
		}
sl@0
  3162
sl@0
  3163
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3164
	controller.Close();
sl@0
  3165
sl@0
  3166
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3167
	__MM_HEAP_MARKEND;
sl@0
  3168
 
sl@0
  3169
	return verdict;
sl@0
  3170
	}
sl@0
  3171
sl@0
  3172
//---------------------------------------------------------------
sl@0
  3173
sl@0
  3174
sl@0
  3175
CTestStep_MMF_CTLFRM_U_0051::CTestStep_MMF_CTLFRM_U_0051()
sl@0
  3176
	/** Constructor
sl@0
  3177
	*/
sl@0
  3178
	{
sl@0
  3179
	// store the name of this test case
sl@0
  3180
	// this is the name that is used by the script file
sl@0
  3181
	// Each test step initialises it's own name
sl@0
  3182
	iTestStepName = _L("MM-MMF-CTLFRM-U-0051");
sl@0
  3183
sl@0
  3184
	
sl@0
  3185
	}
sl@0
  3186
sl@0
  3187
TVerdict CTestStep_MMF_CTLFRM_U_0051::DoTestStepL( void )
sl@0
  3188
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3189
 * Use case: N/A
sl@0
  3190
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3191
 */
sl@0
  3192
	{
sl@0
  3193
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3194
	__MM_HEAP_MARK;
sl@0
  3195
sl@0
  3196
	TVerdict verdict = EPass;
sl@0
  3197
	_LIT8(KExpectedResult, "MardGetMaxGainL Called");
sl@0
  3198
sl@0
  3199
	TMMFPrioritySettings settings;
sl@0
  3200
	TInt error = KErrNone;
sl@0
  3201
	RMMFController controller;
sl@0
  3202
sl@0
  3203
	settings.iPriority = 1;
sl@0
  3204
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3205
	settings.iState = EMMFStateIdle;
sl@0
  3206
sl@0
  3207
	TInt maxGain = 0;
sl@0
  3208
sl@0
  3209
	// Open a Custom Controller
sl@0
  3210
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3211
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3212
sl@0
  3213
	RMMFAudioRecordDeviceCustomCommands customCommands(controller);
sl@0
  3214
	error = customCommands.GetMaxGain(maxGain);
sl@0
  3215
sl@0
  3216
	//------------------------------------//
sl@0
  3217
	// Getting Log from Custom Controller //
sl@0
  3218
	//------------------------------------//
sl@0
  3219
	if (!error)
sl@0
  3220
		{
sl@0
  3221
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3222
sl@0
  3223
		TBuf8<64> memFunctionText;
sl@0
  3224
	
sl@0
  3225
		TUid uid = {KMmfTestControllerUid};
sl@0
  3226
		TMMFMessageDestination handleInfo(uid);
sl@0
  3227
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3228
sl@0
  3229
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3230
		
sl@0
  3231
		TBuf<64> memFunctionText16;
sl@0
  3232
		memFunctionText16.Copy(memFunctionText);
sl@0
  3233
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3234
sl@0
  3235
		if (memFunctionText != KExpectedResult)
sl@0
  3236
			{
sl@0
  3237
			verdict = EFail;
sl@0
  3238
			}
sl@0
  3239
sl@0
  3240
		}
sl@0
  3241
	//------------------------------------//
sl@0
  3242
sl@0
  3243
	INFO_PRINTF2(_L("Max Gain: %d"),maxGain);
sl@0
  3244
sl@0
  3245
sl@0
  3246
	if (error)
sl@0
  3247
		{
sl@0
  3248
		verdict = EFail;
sl@0
  3249
		}
sl@0
  3250
sl@0
  3251
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3252
	controller.Close();
sl@0
  3253
sl@0
  3254
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3255
	__MM_HEAP_MARKEND;
sl@0
  3256
 
sl@0
  3257
	return verdict;
sl@0
  3258
	}
sl@0
  3259
sl@0
  3260
//---------------------------------------------------------------
sl@0
  3261
sl@0
  3262
CTestStep_MMF_CTLFRM_U_0052::CTestStep_MMF_CTLFRM_U_0052()
sl@0
  3263
	/** Constructor
sl@0
  3264
	*/
sl@0
  3265
	{
sl@0
  3266
	// store the name of this test case
sl@0
  3267
	// this is the name that is used by the script file
sl@0
  3268
	// Each test step initialises it's own name
sl@0
  3269
	iTestStepName = _L("MM-MMF-CTLFRM-U-0052");
sl@0
  3270
sl@0
  3271
	
sl@0
  3272
	}
sl@0
  3273
sl@0
  3274
TVerdict CTestStep_MMF_CTLFRM_U_0052::DoTestStepL( void )
sl@0
  3275
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3276
 * Use case: N/A
sl@0
  3277
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3278
 */
sl@0
  3279
	{
sl@0
  3280
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3281
	__MM_HEAP_MARK;
sl@0
  3282
sl@0
  3283
	TVerdict verdict = EPass;
sl@0
  3284
	_LIT8(KExpectedResult, "MardGetGainL Called");
sl@0
  3285
sl@0
  3286
	TMMFPrioritySettings settings;
sl@0
  3287
	TInt error = KErrNone;
sl@0
  3288
	RMMFController controller;
sl@0
  3289
sl@0
  3290
	settings.iPriority = 1;
sl@0
  3291
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3292
	settings.iState = EMMFStateIdle;
sl@0
  3293
sl@0
  3294
	TInt gain = 0;
sl@0
  3295
sl@0
  3296
	// Open a Custom Controller
sl@0
  3297
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3298
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3299
sl@0
  3300
	RMMFAudioRecordDeviceCustomCommands customCommands(controller);
sl@0
  3301
sl@0
  3302
	error = customCommands.GetGain(gain);
sl@0
  3303
sl@0
  3304
	//------------------------------------//
sl@0
  3305
	// Getting Log from Custom Controller //
sl@0
  3306
	//------------------------------------//
sl@0
  3307
	if (!error)
sl@0
  3308
		{
sl@0
  3309
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3310
sl@0
  3311
		TBuf8<64> memFunctionText;
sl@0
  3312
	
sl@0
  3313
		TUid uid = {KMmfTestControllerUid};
sl@0
  3314
		TMMFMessageDestination handleInfo(uid);
sl@0
  3315
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3316
sl@0
  3317
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3318
		
sl@0
  3319
		TBuf<64> memFunctionText16;
sl@0
  3320
		memFunctionText16.Copy(memFunctionText);
sl@0
  3321
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3322
sl@0
  3323
		if (memFunctionText != KExpectedResult)
sl@0
  3324
			{
sl@0
  3325
			verdict = EFail;
sl@0
  3326
			}
sl@0
  3327
sl@0
  3328
		}
sl@0
  3329
	//------------------------------------//
sl@0
  3330
sl@0
  3331
	INFO_PRINTF2(_L("Gain: %d"),gain);
sl@0
  3332
sl@0
  3333
sl@0
  3334
	if (error)
sl@0
  3335
		{
sl@0
  3336
		verdict = EFail;
sl@0
  3337
		}
sl@0
  3338
sl@0
  3339
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3340
	controller.Close();
sl@0
  3341
sl@0
  3342
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3343
	__MM_HEAP_MARKEND;
sl@0
  3344
 
sl@0
  3345
	return verdict;
sl@0
  3346
	}
sl@0
  3347
sl@0
  3348
//---------------------------------------------------------------
sl@0
  3349
sl@0
  3350
CTestStep_MMF_CTLFRM_U_0053::CTestStep_MMF_CTLFRM_U_0053()
sl@0
  3351
	/** Constructor
sl@0
  3352
	*/
sl@0
  3353
	{
sl@0
  3354
	// store the name of this test case
sl@0
  3355
	// this is the name that is used by the script file
sl@0
  3356
	// Each test step initialises it's own name
sl@0
  3357
	iTestStepName = _L("MM-MMF-CTLFRM-U-0053");
sl@0
  3358
sl@0
  3359
	
sl@0
  3360
	}
sl@0
  3361
sl@0
  3362
TVerdict CTestStep_MMF_CTLFRM_U_0053::DoTestStepL( void )
sl@0
  3363
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3364
 * Use case: N/A
sl@0
  3365
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3366
 */
sl@0
  3367
	{
sl@0
  3368
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3369
	__MM_HEAP_MARK;
sl@0
  3370
sl@0
  3371
	TVerdict verdict = EPass;
sl@0
  3372
	_LIT8(KExpectedResult, "MardSetBalanceL Called");
sl@0
  3373
sl@0
  3374
	TMMFPrioritySettings settings;
sl@0
  3375
	TInt error = KErrNone;
sl@0
  3376
	RMMFController controller;
sl@0
  3377
sl@0
  3378
	settings.iPriority = 1;
sl@0
  3379
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3380
	settings.iState = EMMFStateIdle;
sl@0
  3381
sl@0
  3382
	TInt balance = 5;
sl@0
  3383
sl@0
  3384
	// Open a Custom Controller
sl@0
  3385
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3386
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3387
sl@0
  3388
	RMMFAudioRecordDeviceCustomCommands customCommands(controller);
sl@0
  3389
	error = customCommands.SetBalance(balance);
sl@0
  3390
sl@0
  3391
	//------------------------------------//
sl@0
  3392
	// Getting Log from Custom Controller //
sl@0
  3393
	//------------------------------------//
sl@0
  3394
	if (!error)
sl@0
  3395
		{
sl@0
  3396
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3397
sl@0
  3398
		TBuf8<64> memFunctionText;
sl@0
  3399
	
sl@0
  3400
		TUid uid = {KMmfTestControllerUid};
sl@0
  3401
		TMMFMessageDestination handleInfo(uid);
sl@0
  3402
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3403
sl@0
  3404
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3405
		
sl@0
  3406
		TBuf<64> memFunctionText16;
sl@0
  3407
		memFunctionText16.Copy(memFunctionText);
sl@0
  3408
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3409
sl@0
  3410
		if (memFunctionText != KExpectedResult)
sl@0
  3411
			{
sl@0
  3412
			verdict = EFail;
sl@0
  3413
			}
sl@0
  3414
sl@0
  3415
		}
sl@0
  3416
	//------------------------------------//
sl@0
  3417
sl@0
  3418
	if (error)
sl@0
  3419
		{
sl@0
  3420
		verdict = EFail;
sl@0
  3421
		}
sl@0
  3422
sl@0
  3423
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3424
	controller.Close();
sl@0
  3425
sl@0
  3426
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3427
	__MM_HEAP_MARKEND;
sl@0
  3428
 
sl@0
  3429
	return verdict;
sl@0
  3430
	}
sl@0
  3431
sl@0
  3432
//---------------------------------------------------------------
sl@0
  3433
sl@0
  3434
CTestStep_MMF_CTLFRM_U_0054::CTestStep_MMF_CTLFRM_U_0054()
sl@0
  3435
	/** Constructor
sl@0
  3436
	*/
sl@0
  3437
	{
sl@0
  3438
	// store the name of this test case
sl@0
  3439
	// this is the name that is used by the script file
sl@0
  3440
	// Each test step initialises it's own name
sl@0
  3441
	iTestStepName = _L("MM-MMF-CTLFRM-U-0054");
sl@0
  3442
sl@0
  3443
	
sl@0
  3444
	}
sl@0
  3445
sl@0
  3446
TVerdict CTestStep_MMF_CTLFRM_U_0054::DoTestStepL( void )
sl@0
  3447
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3448
 * Use case: N/A
sl@0
  3449
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3450
 */
sl@0
  3451
	{
sl@0
  3452
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3453
	__MM_HEAP_MARK;
sl@0
  3454
sl@0
  3455
	TVerdict verdict = EPass;
sl@0
  3456
	_LIT8(KExpectedResult, "MardGetBalanceL Called");
sl@0
  3457
sl@0
  3458
	TMMFPrioritySettings settings;
sl@0
  3459
	TInt error = KErrNone;
sl@0
  3460
	RMMFController controller;
sl@0
  3461
sl@0
  3462
	settings.iPriority = 1;
sl@0
  3463
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3464
	settings.iState = EMMFStateIdle;
sl@0
  3465
sl@0
  3466
	TInt balance = 0;
sl@0
  3467
sl@0
  3468
	// Open a Custom Controller
sl@0
  3469
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3470
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3471
sl@0
  3472
	RMMFAudioRecordDeviceCustomCommands customCommands(controller);
sl@0
  3473
	error = customCommands.GetBalance(balance);
sl@0
  3474
sl@0
  3475
	//------------------------------------//
sl@0
  3476
	// Getting Log from Custom Controller //
sl@0
  3477
	//------------------------------------//
sl@0
  3478
	if (!error)
sl@0
  3479
		{
sl@0
  3480
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3481
sl@0
  3482
		TBuf8<64> memFunctionText;
sl@0
  3483
	
sl@0
  3484
		TUid uid = {KMmfTestControllerUid};
sl@0
  3485
		TMMFMessageDestination handleInfo(uid);
sl@0
  3486
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3487
sl@0
  3488
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3489
		
sl@0
  3490
		TBuf<64> memFunctionText16;
sl@0
  3491
		memFunctionText16.Copy(memFunctionText);
sl@0
  3492
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3493
sl@0
  3494
		if (memFunctionText != KExpectedResult)
sl@0
  3495
			{
sl@0
  3496
			verdict = EFail;
sl@0
  3497
			}
sl@0
  3498
sl@0
  3499
		}
sl@0
  3500
	//------------------------------------//
sl@0
  3501
sl@0
  3502
	INFO_PRINTF2(_L("Balance: %d"),balance);
sl@0
  3503
sl@0
  3504
	if (error)
sl@0
  3505
		{
sl@0
  3506
		verdict = EFail;
sl@0
  3507
		}
sl@0
  3508
sl@0
  3509
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3510
	controller.Close();
sl@0
  3511
sl@0
  3512
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3513
	__MM_HEAP_MARKEND;
sl@0
  3514
 
sl@0
  3515
	return verdict;
sl@0
  3516
	}
sl@0
  3517
sl@0
  3518
//---------------------------------------------------------------
sl@0
  3519
sl@0
  3520
CTestStep_MMF_CTLFRM_U_0060::CTestStep_MMF_CTLFRM_U_0060()
sl@0
  3521
	/** Constructor
sl@0
  3522
	*/
sl@0
  3523
	{
sl@0
  3524
	// store the name of this test case
sl@0
  3525
	// this is the name that is used by the script file
sl@0
  3526
	// Each test step initialises it's own name
sl@0
  3527
	iTestStepName = _L("MM-MMF-CTLFRM-U-0060");
sl@0
  3528
sl@0
  3529
	
sl@0
  3530
	}
sl@0
  3531
sl@0
  3532
TVerdict CTestStep_MMF_CTLFRM_U_0060::DoTestStepL( void )
sl@0
  3533
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3534
 * Use case: N/A
sl@0
  3535
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3536
 */
sl@0
  3537
	{
sl@0
  3538
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3539
	__MM_HEAP_MARK;
sl@0
  3540
sl@0
  3541
	TVerdict verdict = EPass;
sl@0
  3542
	_LIT8(KExpectedResult, "MapdSetPlaybackWindowL Called");
sl@0
  3543
sl@0
  3544
	TMMFPrioritySettings settings;
sl@0
  3545
	TInt error = KErrNone;
sl@0
  3546
	RMMFController controller;
sl@0
  3547
sl@0
  3548
	settings.iPriority = 1;
sl@0
  3549
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3550
	settings.iState = EMMFStateIdle;
sl@0
  3551
sl@0
  3552
	const TInt64 interval1 = 10;
sl@0
  3553
	TTimeIntervalMicroSeconds start(interval1);
sl@0
  3554
sl@0
  3555
	const TInt64 interval2 = 25;
sl@0
  3556
	TTimeIntervalMicroSeconds end(interval2);
sl@0
  3557
sl@0
  3558
	// Open a Custom Controller
sl@0
  3559
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3560
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3561
sl@0
  3562
	RMMFAudioPlayControllerCustomCommands customCommands(controller);
sl@0
  3563
	error = customCommands.SetPlaybackWindow(start,end);
sl@0
  3564
sl@0
  3565
	//------------------------------------//
sl@0
  3566
	// Getting Log from Custom Controller //
sl@0
  3567
	//------------------------------------//
sl@0
  3568
	if (!error)
sl@0
  3569
		{
sl@0
  3570
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3571
sl@0
  3572
		TBuf8<64> memFunctionText;
sl@0
  3573
	
sl@0
  3574
		TUid uid = {KMmfTestControllerUid};
sl@0
  3575
		TMMFMessageDestination handleInfo(uid);
sl@0
  3576
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3577
sl@0
  3578
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3579
		
sl@0
  3580
		TBuf<64> memFunctionText16;
sl@0
  3581
		memFunctionText16.Copy(memFunctionText);
sl@0
  3582
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  3583
sl@0
  3584
		if (memFunctionText != KExpectedResult)
sl@0
  3585
			{
sl@0
  3586
			verdict = EFail;
sl@0
  3587
			}
sl@0
  3588
sl@0
  3589
		}
sl@0
  3590
	//------------------------------------//
sl@0
  3591
sl@0
  3592
	if (error)
sl@0
  3593
		{
sl@0
  3594
		verdict = EFail;
sl@0
  3595
		}
sl@0
  3596
sl@0
  3597
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3598
	controller.Close();
sl@0
  3599
sl@0
  3600
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3601
	__MM_HEAP_MARKEND;
sl@0
  3602
 
sl@0
  3603
	return verdict;
sl@0
  3604
	}
sl@0
  3605
sl@0
  3606
//---------------------------------------------------------------
sl@0
  3607
sl@0
  3608
CTestStep_MMF_CTLFRM_U_0061::CTestStep_MMF_CTLFRM_U_0061()
sl@0
  3609
	/** Constructor
sl@0
  3610
	*/
sl@0
  3611
	{
sl@0
  3612
	// store the name of this test case
sl@0
  3613
	// this is the name that is used by the script file
sl@0
  3614
	// Each test step initialises it's own name
sl@0
  3615
	iTestStepName = _L("MM-MMF-CTLFRM-U-0061");
sl@0
  3616
sl@0
  3617
	
sl@0
  3618
	}
sl@0
  3619
sl@0
  3620
TVerdict CTestStep_MMF_CTLFRM_U_0061::DoTestStepL( void )
sl@0
  3621
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3622
 * Use case: N/A
sl@0
  3623
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3624
 */
sl@0
  3625
	{
sl@0
  3626
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3627
	__MM_HEAP_MARK;
sl@0
  3628
sl@0
  3629
	TVerdict verdict = EPass;
sl@0
  3630
	_LIT8(KExpectedResult, "MapdDeletePlaybackWindowL Called");
sl@0
  3631
sl@0
  3632
	TMMFPrioritySettings settings;
sl@0
  3633
	TInt error = KErrNone;
sl@0
  3634
	RMMFController controller;
sl@0
  3635
sl@0
  3636
	settings.iPriority = 1;
sl@0
  3637
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3638
	settings.iState = EMMFStateIdle;
sl@0
  3639
sl@0
  3640
	// Open a Custom Controller
sl@0
  3641
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3642
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3643
sl@0
  3644
	RMMFAudioPlayControllerCustomCommands customCommands(controller);
sl@0
  3645
	error = customCommands.DeletePlaybackWindow();
sl@0
  3646
sl@0
  3647
	//------------------------------------//
sl@0
  3648
	// Getting Log from Custom Controller //
sl@0
  3649
	//------------------------------------//
sl@0
  3650
	if (!error)
sl@0
  3651
		{
sl@0
  3652
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3653
sl@0
  3654
		TBuf8<64> memFunctionText;
sl@0
  3655
	
sl@0
  3656
		TUid uid = {KMmfTestControllerUid};
sl@0
  3657
		TMMFMessageDestination handleInfo(uid);
sl@0
  3658
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3659
sl@0
  3660
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3661
		
sl@0
  3662
		TBuf<64> memFunctionText16;
sl@0
  3663
		memFunctionText16.Copy(memFunctionText);
sl@0
  3664
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  3665
sl@0
  3666
		if (memFunctionText != KExpectedResult)
sl@0
  3667
			{
sl@0
  3668
			verdict = EFail;
sl@0
  3669
			}
sl@0
  3670
sl@0
  3671
		}
sl@0
  3672
	//------------------------------------//
sl@0
  3673
sl@0
  3674
	if (error)
sl@0
  3675
		{
sl@0
  3676
		verdict = EFail;
sl@0
  3677
		}
sl@0
  3678
sl@0
  3679
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3680
	controller.Close();
sl@0
  3681
sl@0
  3682
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3683
	__MM_HEAP_MARKEND;
sl@0
  3684
 
sl@0
  3685
	return verdict;
sl@0
  3686
	}
sl@0
  3687
sl@0
  3688
//---------------------------------------------------------------
sl@0
  3689
sl@0
  3690
sl@0
  3691
CTestStep_MMF_CTLFRM_U_0070::CTestStep_MMF_CTLFRM_U_0070()
sl@0
  3692
	/** Constructor
sl@0
  3693
	*/
sl@0
  3694
	{
sl@0
  3695
	// store the name of this test case
sl@0
  3696
	// this is the name that is used by the script file
sl@0
  3697
	// Each test step initialises it's own name
sl@0
  3698
	iTestStepName = _L("MM-MMF-CTLFRM-U-0070");
sl@0
  3699
sl@0
  3700
	
sl@0
  3701
	}
sl@0
  3702
sl@0
  3703
TVerdict CTestStep_MMF_CTLFRM_U_0070::DoTestStepL( void )
sl@0
  3704
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3705
 * Use case: N/A
sl@0
  3706
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3707
 */
sl@0
  3708
	{
sl@0
  3709
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3710
	__MM_HEAP_MARK;
sl@0
  3711
sl@0
  3712
	TVerdict verdict = EPass;
sl@0
  3713
	_LIT8(KExpectedResult, "MarcGetRecordTimeAvailableL Called");
sl@0
  3714
sl@0
  3715
	TMMFPrioritySettings settings;
sl@0
  3716
	TInt error = KErrNone;
sl@0
  3717
	RMMFController controller;
sl@0
  3718
sl@0
  3719
	settings.iPriority = 1;
sl@0
  3720
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3721
	settings.iState = EMMFStateIdle;
sl@0
  3722
sl@0
  3723
	const TInt64 interval = 0;
sl@0
  3724
	TTimeIntervalMicroSeconds recordTime(interval);
sl@0
  3725
sl@0
  3726
	// Open a Custom Controller
sl@0
  3727
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3728
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3729
sl@0
  3730
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  3731
	error = customCommands.GetRecordTimeAvailable(recordTime);
sl@0
  3732
sl@0
  3733
	INFO_PRINTF2(_L("Record Time Available %d"),recordTime.Int64());
sl@0
  3734
sl@0
  3735
	//------------------------------------//
sl@0
  3736
	// Getting Log from Custom Controller //
sl@0
  3737
	//------------------------------------//
sl@0
  3738
	if (!error)
sl@0
  3739
		{
sl@0
  3740
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3741
sl@0
  3742
		TBuf8<64> memFunctionText;
sl@0
  3743
	
sl@0
  3744
		TUid uid = {KMmfTestControllerUid};
sl@0
  3745
		TMMFMessageDestination handleInfo(uid);
sl@0
  3746
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3747
sl@0
  3748
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3749
		
sl@0
  3750
		TBuf<64> memFunctionText16;
sl@0
  3751
		memFunctionText16.Copy(memFunctionText);
sl@0
  3752
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  3753
sl@0
  3754
		if (memFunctionText != KExpectedResult)
sl@0
  3755
			{
sl@0
  3756
			verdict = EFail;
sl@0
  3757
			}
sl@0
  3758
sl@0
  3759
		}
sl@0
  3760
	//------------------------------------//
sl@0
  3761
sl@0
  3762
	if (error)
sl@0
  3763
		{
sl@0
  3764
		verdict = EFail;
sl@0
  3765
		}
sl@0
  3766
sl@0
  3767
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3768
	controller.Close();
sl@0
  3769
sl@0
  3770
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3771
	__MM_HEAP_MARKEND;
sl@0
  3772
 
sl@0
  3773
	return verdict;
sl@0
  3774
	}
sl@0
  3775
sl@0
  3776
//---------------------------------------------------------------
sl@0
  3777
sl@0
  3778
CTestStep_MMF_CTLFRM_U_0071::CTestStep_MMF_CTLFRM_U_0071()
sl@0
  3779
	/** Constructor
sl@0
  3780
	*/
sl@0
  3781
	{
sl@0
  3782
	// store the name of this test case
sl@0
  3783
	// this is the name that is used by the script file
sl@0
  3784
	// Each test step initialises it's own name
sl@0
  3785
	iTestStepName = _L("MM-MMF-CTLFRM-U-0071");
sl@0
  3786
sl@0
  3787
	
sl@0
  3788
	}
sl@0
  3789
sl@0
  3790
TVerdict CTestStep_MMF_CTLFRM_U_0071::DoTestStepL( void )
sl@0
  3791
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3792
 * Use case: N/A
sl@0
  3793
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3794
 */
sl@0
  3795
	{
sl@0
  3796
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3797
	__MM_HEAP_MARK;
sl@0
  3798
sl@0
  3799
	TVerdict verdict = EPass;
sl@0
  3800
	_LIT8(KExpectedResult, "MarcSetMaxDurationL Called");
sl@0
  3801
sl@0
  3802
	TMMFPrioritySettings settings;
sl@0
  3803
	TInt error = KErrNone;
sl@0
  3804
	RMMFController controller;
sl@0
  3805
sl@0
  3806
	settings.iPriority = 1;
sl@0
  3807
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3808
	settings.iState = EMMFStateIdle;
sl@0
  3809
sl@0
  3810
	const TInt64 interval = 25;
sl@0
  3811
	TTimeIntervalMicroSeconds maxDuration(interval);
sl@0
  3812
sl@0
  3813
	// Open a Custom Controller
sl@0
  3814
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3815
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3816
sl@0
  3817
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  3818
	error = customCommands.SetMaxDuration(maxDuration);
sl@0
  3819
sl@0
  3820
	//------------------------------------//
sl@0
  3821
	// Getting Log from Custom Controller //
sl@0
  3822
	//------------------------------------//
sl@0
  3823
	if (!error)
sl@0
  3824
		{
sl@0
  3825
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3826
sl@0
  3827
		TBuf8<64> memFunctionText;
sl@0
  3828
	
sl@0
  3829
		TUid uid = {KMmfTestControllerUid};
sl@0
  3830
		TMMFMessageDestination handleInfo(uid);
sl@0
  3831
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3832
sl@0
  3833
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3834
		
sl@0
  3835
		TBuf<64> memFunctionText16;
sl@0
  3836
		memFunctionText16.Copy(memFunctionText);
sl@0
  3837
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  3838
sl@0
  3839
		if (memFunctionText != KExpectedResult)
sl@0
  3840
			{
sl@0
  3841
			verdict = EFail;
sl@0
  3842
			}
sl@0
  3843
sl@0
  3844
		}
sl@0
  3845
	//------------------------------------//
sl@0
  3846
sl@0
  3847
	if (error)
sl@0
  3848
		{
sl@0
  3849
		verdict = EFail;
sl@0
  3850
		}
sl@0
  3851
sl@0
  3852
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3853
	controller.Close();
sl@0
  3854
sl@0
  3855
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3856
	__MM_HEAP_MARKEND;
sl@0
  3857
 
sl@0
  3858
	return verdict;
sl@0
  3859
	}
sl@0
  3860
sl@0
  3861
sl@0
  3862
//---------------------------------------------------------------
sl@0
  3863
sl@0
  3864
CTestStep_MMF_CTLFRM_U_0072::CTestStep_MMF_CTLFRM_U_0072()
sl@0
  3865
	/** Constructor
sl@0
  3866
	*/
sl@0
  3867
	{
sl@0
  3868
	// store the name of this test case
sl@0
  3869
	// this is the name that is used by the script file
sl@0
  3870
	// Each test step initialises it's own name
sl@0
  3871
	iTestStepName = _L("MM-MMF-CTLFRM-U-0072");
sl@0
  3872
sl@0
  3873
	
sl@0
  3874
	}
sl@0
  3875
sl@0
  3876
TVerdict CTestStep_MMF_CTLFRM_U_0072::DoTestStepL( void )
sl@0
  3877
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3878
 * Use case: N/A
sl@0
  3879
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3880
 */
sl@0
  3881
	{
sl@0
  3882
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3883
	__MM_HEAP_MARK;
sl@0
  3884
sl@0
  3885
	TVerdict verdict = EPass;
sl@0
  3886
	_LIT8(KExpectedResult, "MarcSetMaxFileSizeL Called");
sl@0
  3887
sl@0
  3888
	TMMFPrioritySettings settings;
sl@0
  3889
	TInt error = KErrNone;
sl@0
  3890
	RMMFController controller;
sl@0
  3891
sl@0
  3892
	settings.iPriority = 1;
sl@0
  3893
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3894
	settings.iState = EMMFStateIdle;
sl@0
  3895
sl@0
  3896
	const TInt fileSize = 10;
sl@0
  3897
sl@0
  3898
	// Open a Custom Controller
sl@0
  3899
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3900
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3901
sl@0
  3902
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  3903
	error = customCommands.SetMaxFileSize(fileSize);
sl@0
  3904
sl@0
  3905
	//------------------------------------//
sl@0
  3906
	// Getting Log from Custom Controller //
sl@0
  3907
	//------------------------------------//
sl@0
  3908
	if (!error)
sl@0
  3909
		{
sl@0
  3910
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3911
sl@0
  3912
		TBuf8<64> memFunctionText;
sl@0
  3913
	
sl@0
  3914
		TUid uid = {KMmfTestControllerUid};
sl@0
  3915
		TMMFMessageDestination handleInfo(uid);
sl@0
  3916
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  3917
sl@0
  3918
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  3919
		
sl@0
  3920
		TBuf<64> memFunctionText16;
sl@0
  3921
		memFunctionText16.Copy(memFunctionText);
sl@0
  3922
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  3923
sl@0
  3924
		if (memFunctionText != KExpectedResult)
sl@0
  3925
			{
sl@0
  3926
			verdict = EFail;
sl@0
  3927
			}
sl@0
  3928
sl@0
  3929
		}
sl@0
  3930
	//------------------------------------//
sl@0
  3931
sl@0
  3932
sl@0
  3933
	if (error)
sl@0
  3934
		{
sl@0
  3935
		verdict = EFail;
sl@0
  3936
		}
sl@0
  3937
sl@0
  3938
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  3939
	controller.Close();
sl@0
  3940
sl@0
  3941
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  3942
	__MM_HEAP_MARKEND;
sl@0
  3943
 
sl@0
  3944
	return verdict;
sl@0
  3945
	}
sl@0
  3946
sl@0
  3947
sl@0
  3948
//---------------------------------------------------------------
sl@0
  3949
sl@0
  3950
CTestStep_MMF_CTLFRM_U_0073::CTestStep_MMF_CTLFRM_U_0073()
sl@0
  3951
	/** Constructor
sl@0
  3952
	*/
sl@0
  3953
	{
sl@0
  3954
	// store the name of this test case
sl@0
  3955
	// this is the name that is used by the script file
sl@0
  3956
	// Each test step initialises it's own name
sl@0
  3957
	iTestStepName = _L("MM-MMF-CTLFRM-U-0073");
sl@0
  3958
sl@0
  3959
	
sl@0
  3960
	}
sl@0
  3961
sl@0
  3962
TVerdict CTestStep_MMF_CTLFRM_U_0073::DoTestStepL( void )
sl@0
  3963
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  3964
 * Use case: N/A
sl@0
  3965
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  3966
 */
sl@0
  3967
	{
sl@0
  3968
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  3969
	__MM_HEAP_MARK;
sl@0
  3970
sl@0
  3971
	TVerdict verdict = EPass;
sl@0
  3972
	_LIT8(KExpectedResult, "MarcCropL Called");
sl@0
  3973
sl@0
  3974
	TMMFPrioritySettings settings;
sl@0
  3975
	TInt error = KErrNone;
sl@0
  3976
	RMMFController controller;
sl@0
  3977
sl@0
  3978
	settings.iPriority = 1;
sl@0
  3979
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  3980
	settings.iState = EMMFStateIdle;
sl@0
  3981
sl@0
  3982
	// Open a Custom Controller
sl@0
  3983
	error = controller.Open(KTstControllerUid,settings);
sl@0
  3984
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  3985
sl@0
  3986
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  3987
	error = customCommands.Crop(ETrue);
sl@0
  3988
sl@0
  3989
	//------------------------------------//
sl@0
  3990
	// Getting Log from Custom Controller //
sl@0
  3991
	//------------------------------------//
sl@0
  3992
	if (!error)
sl@0
  3993
		{
sl@0
  3994
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  3995
sl@0
  3996
		TBuf8<64> memFunctionText;
sl@0
  3997
	
sl@0
  3998
		TUid uid = {KMmfTestControllerUid};
sl@0
  3999
		TMMFMessageDestination handleInfo(uid);
sl@0
  4000
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  4001
sl@0
  4002
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  4003
		
sl@0
  4004
		TBuf<64> memFunctionText16;
sl@0
  4005
		memFunctionText16.Copy(memFunctionText);
sl@0
  4006
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  4007
sl@0
  4008
sl@0
  4009
		if (memFunctionText != KExpectedResult)
sl@0
  4010
			{
sl@0
  4011
			verdict = EFail;
sl@0
  4012
			}
sl@0
  4013
sl@0
  4014
		}
sl@0
  4015
	//------------------------------------//
sl@0
  4016
sl@0
  4017
	if (error)
sl@0
  4018
		{
sl@0
  4019
		verdict = EFail;
sl@0
  4020
		}
sl@0
  4021
sl@0
  4022
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4023
	controller.Close();
sl@0
  4024
sl@0
  4025
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4026
	__MM_HEAP_MARKEND;
sl@0
  4027
 
sl@0
  4028
	return verdict;
sl@0
  4029
	}
sl@0
  4030
sl@0
  4031
sl@0
  4032
//---------------------------------------------------------------
sl@0
  4033
sl@0
  4034
CTestStep_MMF_CTLFRM_U_0074::CTestStep_MMF_CTLFRM_U_0074()
sl@0
  4035
	/** Constructor
sl@0
  4036
	*/
sl@0
  4037
	{
sl@0
  4038
	// store the name of this test case
sl@0
  4039
	// this is the name that is used by the script file
sl@0
  4040
	// Each test step initialises it's own name
sl@0
  4041
	iTestStepName = _L("MM-MMF-CTLFRM-U-0074");
sl@0
  4042
sl@0
  4043
	
sl@0
  4044
	}
sl@0
  4045
sl@0
  4046
TVerdict CTestStep_MMF_CTLFRM_U_0074::DoTestStepL( void )
sl@0
  4047
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4048
 * Use case: N/A
sl@0
  4049
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4050
 */
sl@0
  4051
	{
sl@0
  4052
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4053
	__MM_HEAP_MARK;
sl@0
  4054
sl@0
  4055
	TVerdict verdict = EPass;
sl@0
  4056
	_LIT8(KExpectedResult, "MarcAddMetaDataEntryL Called");
sl@0
  4057
sl@0
  4058
	TMMFPrioritySettings settings;
sl@0
  4059
	TInt error = KErrNone;
sl@0
  4060
	RMMFController controller;
sl@0
  4061
sl@0
  4062
	CMMFMetaDataEntry* metaEntry = CMMFMetaDataEntry::NewL();
sl@0
  4063
	CleanupStack::PushL(metaEntry);
sl@0
  4064
sl@0
  4065
	settings.iPriority = 1;
sl@0
  4066
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4067
	settings.iState = EMMFStateIdle;
sl@0
  4068
sl@0
  4069
	// Open a Custom Controller
sl@0
  4070
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4071
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4072
sl@0
  4073
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  4074
	customCommands.AddMetaDataEntryL(*metaEntry);
sl@0
  4075
sl@0
  4076
	//------------------------------------//
sl@0
  4077
	// Getting Log from Custom Controller //
sl@0
  4078
	//------------------------------------//
sl@0
  4079
	if (!error)
sl@0
  4080
		{
sl@0
  4081
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  4082
sl@0
  4083
		TBuf8<64> memFunctionText;
sl@0
  4084
	
sl@0
  4085
		TUid uid = {KMmfTestControllerUid};
sl@0
  4086
		TMMFMessageDestination handleInfo(uid);
sl@0
  4087
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  4088
sl@0
  4089
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  4090
		
sl@0
  4091
		TBuf<64> memFunctionText16;
sl@0
  4092
		memFunctionText16.Copy(memFunctionText);
sl@0
  4093
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  4094
sl@0
  4095
		if (memFunctionText != KExpectedResult)
sl@0
  4096
			{
sl@0
  4097
			verdict = EFail;
sl@0
  4098
			}
sl@0
  4099
sl@0
  4100
		}
sl@0
  4101
	//------------------------------------//
sl@0
  4102
sl@0
  4103
	if (error)
sl@0
  4104
		{
sl@0
  4105
		verdict = EFail;
sl@0
  4106
		}
sl@0
  4107
sl@0
  4108
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4109
	controller.Close();
sl@0
  4110
sl@0
  4111
	CleanupStack::PopAndDestroy();
sl@0
  4112
sl@0
  4113
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4114
	__MM_HEAP_MARKEND;
sl@0
  4115
 
sl@0
  4116
	return verdict;
sl@0
  4117
	}
sl@0
  4118
sl@0
  4119
sl@0
  4120
//---------------------------------------------------------------
sl@0
  4121
sl@0
  4122
sl@0
  4123
CTestStep_MMF_CTLFRM_U_0075::CTestStep_MMF_CTLFRM_U_0075()
sl@0
  4124
	/** Constructor
sl@0
  4125
	*/
sl@0
  4126
	{
sl@0
  4127
	// store the name of this test case
sl@0
  4128
	// this is the name that is used by the script file
sl@0
  4129
	// Each test step initialises it's own name
sl@0
  4130
	iTestStepName = _L("MM-MMF-CTLFRM-U-0075");
sl@0
  4131
sl@0
  4132
	
sl@0
  4133
	}
sl@0
  4134
sl@0
  4135
TVerdict CTestStep_MMF_CTLFRM_U_0075::DoTestStepL( void )
sl@0
  4136
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4137
 * Use case: N/A
sl@0
  4138
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4139
 */
sl@0
  4140
	{
sl@0
  4141
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4142
	__MM_HEAP_MARK;
sl@0
  4143
sl@0
  4144
	TVerdict verdict = EPass;
sl@0
  4145
	_LIT8(KExpectedResult, "MarcRemoveMetaDataEntryL Called");
sl@0
  4146
sl@0
  4147
	TMMFPrioritySettings settings;
sl@0
  4148
	TInt error = KErrNone;
sl@0
  4149
	RMMFController controller;
sl@0
  4150
sl@0
  4151
	TInt index = 1;
sl@0
  4152
sl@0
  4153
	settings.iPriority = 1;
sl@0
  4154
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4155
	settings.iState = EMMFStateIdle;
sl@0
  4156
sl@0
  4157
	// Open a Custom Controller
sl@0
  4158
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4159
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4160
sl@0
  4161
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  4162
	error = customCommands.RemoveMetaDataEntry(index);
sl@0
  4163
sl@0
  4164
	//------------------------------------//
sl@0
  4165
	// Getting Log from Custom Controller //
sl@0
  4166
	//------------------------------------//
sl@0
  4167
	if (!error)
sl@0
  4168
		{
sl@0
  4169
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  4170
sl@0
  4171
		TBuf8<64> memFunctionText;
sl@0
  4172
	
sl@0
  4173
		TUid uid = {KMmfTestControllerUid};
sl@0
  4174
		TMMFMessageDestination handleInfo(uid);
sl@0
  4175
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  4176
sl@0
  4177
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  4178
		
sl@0
  4179
		TBuf<64> memFunctionText16;
sl@0
  4180
		memFunctionText16.Copy(memFunctionText);
sl@0
  4181
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  4182
sl@0
  4183
		if (memFunctionText != KExpectedResult)
sl@0
  4184
			{
sl@0
  4185
			verdict = EFail;
sl@0
  4186
			}
sl@0
  4187
sl@0
  4188
		}
sl@0
  4189
	//------------------------------------//
sl@0
  4190
sl@0
  4191
	if (error)
sl@0
  4192
		{
sl@0
  4193
		verdict = EFail;
sl@0
  4194
		}
sl@0
  4195
sl@0
  4196
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4197
	controller.Close();
sl@0
  4198
sl@0
  4199
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4200
	__MM_HEAP_MARKEND;
sl@0
  4201
 
sl@0
  4202
	return verdict;
sl@0
  4203
	}
sl@0
  4204
sl@0
  4205
sl@0
  4206
//---------------------------------------------------------------
sl@0
  4207
sl@0
  4208
CTestStep_MMF_CTLFRM_U_0076::CTestStep_MMF_CTLFRM_U_0076()
sl@0
  4209
	/** Constructor
sl@0
  4210
	*/
sl@0
  4211
	{
sl@0
  4212
	// store the name of this test case
sl@0
  4213
	// this is the name that is used by the script file
sl@0
  4214
	// Each test step initialises it's own name
sl@0
  4215
	iTestStepName = _L("MM-MMF-CTLFRM-U-0076");
sl@0
  4216
sl@0
  4217
	
sl@0
  4218
	}
sl@0
  4219
sl@0
  4220
TVerdict CTestStep_MMF_CTLFRM_U_0076::DoTestStepL( void )
sl@0
  4221
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4222
 * Use case: N/A
sl@0
  4223
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4224
 */
sl@0
  4225
	{
sl@0
  4226
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4227
	__MM_HEAP_MARK;
sl@0
  4228
sl@0
  4229
	TVerdict verdict = EPass;
sl@0
  4230
	_LIT8(KExpectedResult, "MarcReplaceMetaDataEntryL Called");
sl@0
  4231
sl@0
  4232
	TMMFPrioritySettings settings;
sl@0
  4233
	TInt error = KErrNone;
sl@0
  4234
	RMMFController controller;
sl@0
  4235
sl@0
  4236
	const TInt index = 1;
sl@0
  4237
	CMMFMetaDataEntry* metaEntry = CMMFMetaDataEntry::NewL();
sl@0
  4238
	CleanupStack::PushL(metaEntry);
sl@0
  4239
sl@0
  4240
	settings.iPriority = 1;
sl@0
  4241
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4242
	settings.iState = EMMFStateIdle;
sl@0
  4243
sl@0
  4244
	// Open a Custom Controller
sl@0
  4245
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4246
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4247
sl@0
  4248
	RMMFAudioRecordControllerCustomCommands customCommands(controller);
sl@0
  4249
	customCommands.ReplaceMetaDataEntryL(index, *metaEntry);
sl@0
  4250
sl@0
  4251
	//------------------------------------//
sl@0
  4252
	// Getting Log from Custom Controller //
sl@0
  4253
	//------------------------------------//
sl@0
  4254
	if (!error)
sl@0
  4255
		{
sl@0
  4256
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  4257
sl@0
  4258
		TBuf8<64> memFunctionText;
sl@0
  4259
	
sl@0
  4260
		TUid uid = {KMmfTestControllerUid};
sl@0
  4261
		TMMFMessageDestination handleInfo(uid);
sl@0
  4262
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  4263
sl@0
  4264
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  4265
		
sl@0
  4266
		TBuf<64> memFunctionText16;
sl@0
  4267
		memFunctionText16.Copy(memFunctionText);
sl@0
  4268
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  4269
sl@0
  4270
		if (memFunctionText != KExpectedResult)
sl@0
  4271
			{
sl@0
  4272
			verdict = EFail;
sl@0
  4273
			}
sl@0
  4274
sl@0
  4275
		}
sl@0
  4276
	//------------------------------------//
sl@0
  4277
sl@0
  4278
	if (error)
sl@0
  4279
		{
sl@0
  4280
		verdict = EFail;
sl@0
  4281
		}
sl@0
  4282
sl@0
  4283
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4284
	controller.Close();
sl@0
  4285
sl@0
  4286
	CleanupStack::PopAndDestroy();
sl@0
  4287
sl@0
  4288
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4289
	__MM_HEAP_MARKEND;
sl@0
  4290
 
sl@0
  4291
	return verdict;
sl@0
  4292
	}
sl@0
  4293
sl@0
  4294
sl@0
  4295
//---------------------------------------------------------------
sl@0
  4296
sl@0
  4297
CTestStep_MMF_CTLFRM_U_0080::CTestStep_MMF_CTLFRM_U_0080()
sl@0
  4298
	/** Constructor
sl@0
  4299
	*/
sl@0
  4300
	{
sl@0
  4301
	// store the name of this test case
sl@0
  4302
	// this is the name that is used by the script file
sl@0
  4303
	// Each test step initialises it's own name
sl@0
  4304
	iTestStepName = _L("MM-MMF-CTLFRM-U-0080");
sl@0
  4305
sl@0
  4306
	
sl@0
  4307
	}
sl@0
  4308
sl@0
  4309
TVerdict CTestStep_MMF_CTLFRM_U_0080::DoTestStepL( void )
sl@0
  4310
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4311
 * Use case: N/A
sl@0
  4312
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4313
 */
sl@0
  4314
	{
sl@0
  4315
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4316
	__MM_HEAP_MARK;
sl@0
  4317
sl@0
  4318
	TVerdict verdict = EPass;
sl@0
  4319
sl@0
  4320
	TMMFPrioritySettings settings;
sl@0
  4321
	TInt error = KErrNone;
sl@0
  4322
	RMMFController controller;
sl@0
  4323
sl@0
  4324
	const TUint sample = 1;
sl@0
  4325
sl@0
  4326
	settings.iPriority = 1;
sl@0
  4327
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4328
	settings.iState = EMMFStateIdle;
sl@0
  4329
sl@0
  4330
	// Open a Custom Controller
sl@0
  4331
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4332
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4333
sl@0
  4334
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4335
	error = customCommands.SetSourceSampleRate(sample);
sl@0
  4336
	if (error)
sl@0
  4337
		{
sl@0
  4338
		verdict = EFail;
sl@0
  4339
		}
sl@0
  4340
sl@0
  4341
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4342
	controller.Close();
sl@0
  4343
sl@0
  4344
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4345
	__MM_HEAP_MARKEND;
sl@0
  4346
 
sl@0
  4347
	return verdict;
sl@0
  4348
	}
sl@0
  4349
sl@0
  4350
sl@0
  4351
//---------------------------------------------------------------
sl@0
  4352
sl@0
  4353
CTestStep_MMF_CTLFRM_U_0081::CTestStep_MMF_CTLFRM_U_0081()
sl@0
  4354
	/** Constructor
sl@0
  4355
	*/
sl@0
  4356
	{
sl@0
  4357
	// store the name of this test case
sl@0
  4358
	// this is the name that is used by the script file
sl@0
  4359
	// Each test step initialises it's own name
sl@0
  4360
	iTestStepName = _L("MM-MMF-CTLFRM-U-0081");
sl@0
  4361
sl@0
  4362
	
sl@0
  4363
	}
sl@0
  4364
sl@0
  4365
TVerdict CTestStep_MMF_CTLFRM_U_0081::DoTestStepL( void )
sl@0
  4366
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4367
 * Use case: N/A
sl@0
  4368
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4369
 */
sl@0
  4370
	{
sl@0
  4371
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4372
	__MM_HEAP_MARK;
sl@0
  4373
sl@0
  4374
	TVerdict verdict = EPass;
sl@0
  4375
sl@0
  4376
	TMMFPrioritySettings settings;
sl@0
  4377
	TInt error = KErrNone;
sl@0
  4378
	RMMFController controller;
sl@0
  4379
sl@0
  4380
	const TUint numChannels = 1;
sl@0
  4381
sl@0
  4382
	settings.iPriority = 1;
sl@0
  4383
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4384
	settings.iState = EMMFStateIdle;
sl@0
  4385
sl@0
  4386
	// Open a Custom Controller
sl@0
  4387
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4388
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4389
sl@0
  4390
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4391
	error = customCommands.SetSourceNumChannels(numChannels);
sl@0
  4392
sl@0
  4393
	if (error)
sl@0
  4394
		{
sl@0
  4395
		verdict = EFail;
sl@0
  4396
		}
sl@0
  4397
sl@0
  4398
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4399
	controller.Close();
sl@0
  4400
sl@0
  4401
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4402
	__MM_HEAP_MARKEND;
sl@0
  4403
 
sl@0
  4404
	return verdict;
sl@0
  4405
	}
sl@0
  4406
sl@0
  4407
sl@0
  4408
//---------------------------------------------------------------
sl@0
  4409
sl@0
  4410
sl@0
  4411
CTestStep_MMF_CTLFRM_U_0082::CTestStep_MMF_CTLFRM_U_0082()
sl@0
  4412
	/** Constructor
sl@0
  4413
	*/
sl@0
  4414
	{
sl@0
  4415
	// store the name of this test case
sl@0
  4416
	// this is the name that is used by the script file
sl@0
  4417
	// Each test step initialises it's own name
sl@0
  4418
	iTestStepName = _L("MM-MMF-CTLFRM-U-0082");
sl@0
  4419
sl@0
  4420
	
sl@0
  4421
	}
sl@0
  4422
sl@0
  4423
TVerdict CTestStep_MMF_CTLFRM_U_0082::DoTestStepL( void )
sl@0
  4424
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4425
 * Use case: N/A
sl@0
  4426
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4427
 */
sl@0
  4428
	{
sl@0
  4429
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4430
	__MM_HEAP_MARK;
sl@0
  4431
sl@0
  4432
	TVerdict verdict = EPass;
sl@0
  4433
sl@0
  4434
	TMMFPrioritySettings settings;
sl@0
  4435
	TInt error = KErrNone;
sl@0
  4436
	RMMFController controller;
sl@0
  4437
sl@0
  4438
	TUid uid = {0x12345678};
sl@0
  4439
sl@0
  4440
	settings.iPriority = 1;
sl@0
  4441
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4442
	settings.iState = EMMFStateIdle;
sl@0
  4443
sl@0
  4444
	// Open a Custom Controller
sl@0
  4445
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4446
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4447
sl@0
  4448
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4449
	error = customCommands.SetSourceFormat(uid);
sl@0
  4450
sl@0
  4451
	if (error)
sl@0
  4452
		{
sl@0
  4453
		verdict = EFail;
sl@0
  4454
		}
sl@0
  4455
sl@0
  4456
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4457
	controller.Close();
sl@0
  4458
sl@0
  4459
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4460
	__MM_HEAP_MARKEND;
sl@0
  4461
 
sl@0
  4462
	return verdict;
sl@0
  4463
	}
sl@0
  4464
sl@0
  4465
sl@0
  4466
//---------------------------------------------------------------
sl@0
  4467
sl@0
  4468
CTestStep_MMF_CTLFRM_U_0083::CTestStep_MMF_CTLFRM_U_0083()
sl@0
  4469
	/** Constructor
sl@0
  4470
	*/
sl@0
  4471
	{
sl@0
  4472
	// store the name of this test case
sl@0
  4473
	// this is the name that is used by the script file
sl@0
  4474
	// Each test step initialises it's own name
sl@0
  4475
	iTestStepName = _L("MM-MMF-CTLFRM-U-0083");
sl@0
  4476
sl@0
  4477
	
sl@0
  4478
	}
sl@0
  4479
sl@0
  4480
TVerdict CTestStep_MMF_CTLFRM_U_0083::DoTestStepL( void )
sl@0
  4481
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4482
 * Use case: N/A
sl@0
  4483
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4484
 */
sl@0
  4485
	{
sl@0
  4486
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4487
	__MM_HEAP_MARK;
sl@0
  4488
sl@0
  4489
	TVerdict verdict = EPass;
sl@0
  4490
sl@0
  4491
	TMMFPrioritySettings settings;
sl@0
  4492
	TInt error = KErrNone;
sl@0
  4493
	RMMFController controller;
sl@0
  4494
sl@0
  4495
	TUint sampleRate = 5;
sl@0
  4496
sl@0
  4497
	settings.iPriority = 1;
sl@0
  4498
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4499
	settings.iState = EMMFStateIdle;
sl@0
  4500
sl@0
  4501
	// Open a Custom Controller
sl@0
  4502
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4503
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4504
sl@0
  4505
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4506
	error = customCommands.SetSinkSampleRate(sampleRate);
sl@0
  4507
sl@0
  4508
	if (error)
sl@0
  4509
		{
sl@0
  4510
		verdict = EFail;
sl@0
  4511
		}
sl@0
  4512
sl@0
  4513
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4514
	controller.Close();
sl@0
  4515
sl@0
  4516
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4517
	__MM_HEAP_MARKEND;
sl@0
  4518
 
sl@0
  4519
	return verdict;
sl@0
  4520
	}
sl@0
  4521
sl@0
  4522
sl@0
  4523
//---------------------------------------------------------------
sl@0
  4524
sl@0
  4525
CTestStep_MMF_CTLFRM_U_0084::CTestStep_MMF_CTLFRM_U_0084()
sl@0
  4526
	/** Constructor
sl@0
  4527
	*/
sl@0
  4528
	{
sl@0
  4529
	// store the name of this test case
sl@0
  4530
	// this is the name that is used by the script file
sl@0
  4531
	// Each test step initialises it's own name
sl@0
  4532
	iTestStepName = _L("MM-MMF-CTLFRM-U-0084");
sl@0
  4533
sl@0
  4534
	
sl@0
  4535
	}
sl@0
  4536
sl@0
  4537
TVerdict CTestStep_MMF_CTLFRM_U_0084::DoTestStepL( void )
sl@0
  4538
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4539
 * Use case: N/A
sl@0
  4540
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4541
 */
sl@0
  4542
	{
sl@0
  4543
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4544
	__MM_HEAP_MARK;
sl@0
  4545
sl@0
  4546
	TVerdict verdict = EPass;
sl@0
  4547
sl@0
  4548
	TMMFPrioritySettings settings;
sl@0
  4549
	TInt error = KErrNone;
sl@0
  4550
	RMMFController controller;
sl@0
  4551
sl@0
  4552
	TUint numChannels = 1;
sl@0
  4553
sl@0
  4554
	settings.iPriority = 1;
sl@0
  4555
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4556
	settings.iState = EMMFStateIdle;
sl@0
  4557
sl@0
  4558
	// Open a Custom Controller
sl@0
  4559
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4560
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4561
sl@0
  4562
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4563
	error = customCommands.SetSinkNumChannels(numChannels);
sl@0
  4564
sl@0
  4565
	if (error)
sl@0
  4566
		{
sl@0
  4567
		verdict = EFail;
sl@0
  4568
		}
sl@0
  4569
sl@0
  4570
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4571
	controller.Close();
sl@0
  4572
sl@0
  4573
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4574
	__MM_HEAP_MARKEND;
sl@0
  4575
 
sl@0
  4576
	return verdict;
sl@0
  4577
	}
sl@0
  4578
sl@0
  4579
sl@0
  4580
//---------------------------------------------------------------
sl@0
  4581
sl@0
  4582
CTestStep_MMF_CTLFRM_U_0085::CTestStep_MMF_CTLFRM_U_0085()
sl@0
  4583
	/** Constructor
sl@0
  4584
	*/
sl@0
  4585
	{
sl@0
  4586
	// store the name of this test case
sl@0
  4587
	// this is the name that is used by the script file
sl@0
  4588
	// Each test step initialises it's own name
sl@0
  4589
	iTestStepName = _L("MM-MMF-CTLFRM-U-0085");
sl@0
  4590
sl@0
  4591
	
sl@0
  4592
	}
sl@0
  4593
sl@0
  4594
TVerdict CTestStep_MMF_CTLFRM_U_0085::DoTestStepL( void )
sl@0
  4595
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4596
 * Use case: N/A
sl@0
  4597
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4598
 */
sl@0
  4599
	{
sl@0
  4600
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4601
	__MM_HEAP_MARK;
sl@0
  4602
sl@0
  4603
	TVerdict verdict = EPass;
sl@0
  4604
sl@0
  4605
	TMMFPrioritySettings settings;
sl@0
  4606
	TInt error = KErrNone;
sl@0
  4607
	RMMFController controller;
sl@0
  4608
sl@0
  4609
	TUid sinkUid = {0x12345679};
sl@0
  4610
	CMMFMetaDataEntry* metaEntry = CMMFMetaDataEntry::NewL();
sl@0
  4611
	CleanupStack::PushL(metaEntry);
sl@0
  4612
sl@0
  4613
	settings.iPriority = 1;
sl@0
  4614
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4615
	settings.iState = EMMFStateIdle;
sl@0
  4616
sl@0
  4617
	// Open a Custom Controller
sl@0
  4618
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4619
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4620
sl@0
  4621
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4622
	error = customCommands.SetSinkFormat(sinkUid);
sl@0
  4623
sl@0
  4624
	if (error)
sl@0
  4625
		{
sl@0
  4626
		verdict = EFail;
sl@0
  4627
		}
sl@0
  4628
sl@0
  4629
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4630
	controller.Close();
sl@0
  4631
sl@0
  4632
	CleanupStack::PopAndDestroy(1);
sl@0
  4633
sl@0
  4634
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4635
	__MM_HEAP_MARKEND;
sl@0
  4636
 
sl@0
  4637
	return verdict;
sl@0
  4638
	}
sl@0
  4639
sl@0
  4640
sl@0
  4641
//---------------------------------------------------------------
sl@0
  4642
sl@0
  4643
sl@0
  4644
CTestStep_MMF_CTLFRM_U_0086::CTestStep_MMF_CTLFRM_U_0086()
sl@0
  4645
	/** Constructor
sl@0
  4646
	*/
sl@0
  4647
	{
sl@0
  4648
	// store the name of this test case
sl@0
  4649
	// this is the name that is used by the script file
sl@0
  4650
	// Each test step initialises it's own name
sl@0
  4651
	iTestStepName = _L("MM-MMF-CTLFRM-U-0086");
sl@0
  4652
sl@0
  4653
	
sl@0
  4654
	}
sl@0
  4655
sl@0
  4656
TVerdict CTestStep_MMF_CTLFRM_U_0086::DoTestStepL( void )
sl@0
  4657
/** As TSU_MMF_CTLFRM_U_0040
sl@0
  4658
 * Use case: N/A
sl@0
  4659
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4660
 */
sl@0
  4661
	{
sl@0
  4662
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4663
	__MM_HEAP_MARK;
sl@0
  4664
sl@0
  4665
	TVerdict verdict = EPass;
sl@0
  4666
sl@0
  4667
	TMMFPrioritySettings settings;
sl@0
  4668
	TInt error = KErrNone;
sl@0
  4669
	RMMFController controller;
sl@0
  4670
sl@0
  4671
	TFourCC sourceFourCC(' ','P','1','6');
sl@0
  4672
	TFourCC sinkFourCC(' ','P','1','6');
sl@0
  4673
sl@0
  4674
	settings.iPriority = 1;
sl@0
  4675
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4676
	settings.iState = EMMFStateIdle;
sl@0
  4677
sl@0
  4678
	// Open a Custom Controller
sl@0
  4679
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4680
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4681
sl@0
  4682
	RMMFAudioControllerCustomCommands customCommands(controller);
sl@0
  4683
	error = customCommands.SetCodec(sourceFourCC, sinkFourCC);
sl@0
  4684
sl@0
  4685
	if (error)
sl@0
  4686
		{
sl@0
  4687
		verdict = EFail;
sl@0
  4688
		}
sl@0
  4689
sl@0
  4690
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4691
	controller.Close();
sl@0
  4692
sl@0
  4693
sl@0
  4694
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4695
	__MM_HEAP_MARKEND;
sl@0
  4696
 
sl@0
  4697
	return verdict;
sl@0
  4698
	}
sl@0
  4699
sl@0
  4700
sl@0
  4701
//---------------------------------------------------------------
sl@0
  4702
sl@0
  4703
sl@0
  4704
sl@0
  4705
CTestStep_MMF_CTLFRM_U_0100::CTestStep_MMF_CTLFRM_U_0100()
sl@0
  4706
	/** Constructor
sl@0
  4707
	*/
sl@0
  4708
	{
sl@0
  4709
	// store the name of this test case
sl@0
  4710
	// this is the name that is used by the script file
sl@0
  4711
	// Each test step initialises it's own name
sl@0
  4712
	iTestStepName = _L("MM-MMF-CTLFRM-U-0100");
sl@0
  4713
sl@0
  4714
	
sl@0
  4715
	}
sl@0
  4716
sl@0
  4717
TVerdict CTestStep_MMF_CTLFRM_U_0100::DoTestStepL( void )
sl@0
  4718
/** This test is to add and remove multiple Sources and Sinks and ensure this is 
sl@0
  4719
 *  carried out correctly.
sl@0
  4720
sl@0
  4721
 * Use case: N/A
sl@0
  4722
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4723
 */
sl@0
  4724
	{
sl@0
  4725
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4726
	__MM_HEAP_MARK;
sl@0
  4727
sl@0
  4728
	TVerdict verdict = EPass;
sl@0
  4729
sl@0
  4730
	TMMFPrioritySettings settings;
sl@0
  4731
	TInt error = KErrNone;
sl@0
  4732
	RMMFController controller;
sl@0
  4733
sl@0
  4734
	settings.iPriority = 1;
sl@0
  4735
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4736
	settings.iState = EMMFStateIdle;
sl@0
  4737
sl@0
  4738
	const TDesC8& initData = KInitData;
sl@0
  4739
sl@0
  4740
	CArrayFixFlat<TMMFMessageDestination>* sinkHandles = new (ELeave) CArrayFixFlat<TMMFMessageDestination>(6);
sl@0
  4741
	CleanupStack::PushL(sinkHandles);
sl@0
  4742
	CArrayFixFlat<TMMFMessageDestination>* sourceHandles = new (ELeave) CArrayFixFlat<TMMFMessageDestination>(3);
sl@0
  4743
	CleanupStack::PushL(sourceHandles);
sl@0
  4744
sl@0
  4745
sl@0
  4746
	// Open a Custom Controller
sl@0
  4747
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4748
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4749
sl@0
  4750
		// Add Sink
sl@0
  4751
	if (!error)
sl@0
  4752
		{
sl@0
  4753
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
  4754
		TMMFMessageDestination& sinkHandle = sinkHandles->ExtendL();
sl@0
  4755
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle);   // index = 1
sl@0
  4756
sl@0
  4757
		TMMFMessageDestination& sinkHandle2= sinkHandles->ExtendL();
sl@0
  4758
		error = controller.AddDataSink(KTestDataSinkBUid, initData, sinkHandle2);  // index = 2
sl@0
  4759
		
sl@0
  4760
		TMMFMessageDestination& sinkHandle3 = sinkHandles->ExtendL();
sl@0
  4761
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle3);   // index = 3
sl@0
  4762
sl@0
  4763
		TMMFMessageDestination& sinkHandle4 = sinkHandles->ExtendL();
sl@0
  4764
		error = controller.AddDataSink(KTestDataSinkBUid, initData, sinkHandle4);  // index = 4
sl@0
  4765
sl@0
  4766
		TMMFMessageDestination& sourceHandle = sourceHandles->ExtendL();
sl@0
  4767
		error = controller.AddDataSource(KTestDataSourceUid, initData, sourceHandle);  // index = 1
sl@0
  4768
sl@0
  4769
		TMMFMessageDestination& sourceHandle2 = sourceHandles->ExtendL();
sl@0
  4770
		error = controller.AddDataSource(KTestDataSourceUid, initData, sourceHandle2);  // index = 2
sl@0
  4771
sl@0
  4772
		TMMFMessageDestination& sourceHandle3 = sourceHandles->ExtendL();
sl@0
  4773
		error = controller.AddDataSource(KTestDataSourceBUid, initData, sourceHandle3); // index = 3
sl@0
  4774
sl@0
  4775
		TMMFMessageDestination& sinkHandle5 = sinkHandles->ExtendL();
sl@0
  4776
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle5); // index = 5
sl@0
  4777
sl@0
  4778
		TMMFMessageDestination& sinkHandle6 = sinkHandles->ExtendL();
sl@0
  4779
		error = controller.AddDataSink(KTestDataSinkUid, initData, sinkHandle6); // index = 6
sl@0
  4780
		}
sl@0
  4781
sl@0
  4782
	if (!error)
sl@0
  4783
		{
sl@0
  4784
		// Remove two Sinks and a Source
sl@0
  4785
		error = controller.RemoveDataSink((*sinkHandles)[2]);
sl@0
  4786
sl@0
  4787
		error = controller.RemoveDataSource((*sourceHandles)[2]);
sl@0
  4788
sl@0
  4789
		error = controller.RemoveDataSink((*sinkHandles)[5]);
sl@0
  4790
sl@0
  4791
		}
sl@0
  4792
sl@0
  4793
	if (error)
sl@0
  4794
		{
sl@0
  4795
		verdict = EFail;
sl@0
  4796
		}
sl@0
  4797
sl@0
  4798
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4799
	controller.Close();
sl@0
  4800
sl@0
  4801
	CleanupStack::PopAndDestroy(2);
sl@0
  4802
sl@0
  4803
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4804
	__MM_HEAP_MARKEND;
sl@0
  4805
 
sl@0
  4806
	return verdict;
sl@0
  4807
	}
sl@0
  4808
sl@0
  4809
sl@0
  4810
//---------------------------------------------------------------
sl@0
  4811
sl@0
  4812
sl@0
  4813
CTestStep_MMF_CTLFRM_U_0110::CTestStep_MMF_CTLFRM_U_0110()
sl@0
  4814
	/** Constructor
sl@0
  4815
	*/
sl@0
  4816
	{
sl@0
  4817
	// store the name of this test case
sl@0
  4818
	// this is the name that is used by the script file
sl@0
  4819
	// Each test step initialises it's own name
sl@0
  4820
	iTestStepName = _L("MM-MMF-CTLFRM-U-0110");
sl@0
  4821
	
sl@0
  4822
	}
sl@0
  4823
sl@0
  4824
TVerdict CTestStep_MMF_CTLFRM_U_0110::DoTestStepL( void )
sl@0
  4825
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  4826
 * Use case: N/A
sl@0
  4827
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4828
 */
sl@0
  4829
	{
sl@0
  4830
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4831
	__MM_HEAP_MARK;
sl@0
  4832
sl@0
  4833
	TVerdict verdict = EPass;
sl@0
  4834
sl@0
  4835
	TMMFPrioritySettings settings;
sl@0
  4836
	TInt error = KErrNone;
sl@0
  4837
	RMMFController controller;
sl@0
  4838
sl@0
  4839
	settings.iPriority = 1;
sl@0
  4840
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4841
	settings.iState = EMMFStateIdle;
sl@0
  4842
sl@0
  4843
	// Open a Custom Controller
sl@0
  4844
sl@0
  4845
	INFO_PRINTF1(_L("Controller Instantiation Fail"));
sl@0
  4846
	__UHEAP_FAILNEXT(1); // Make the Controller Instantiation fail
sl@0
  4847
	__MM_HEAP_MARK;
sl@0
  4848
	TRAP(error, controller.Open(KTstControllerUid,settings));
sl@0
  4849
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4850
sl@0
  4851
	__MM_HEAP_MARKEND;
sl@0
  4852
sl@0
  4853
	if (error)
sl@0
  4854
		{
sl@0
  4855
		verdict = EFail;
sl@0
  4856
		}
sl@0
  4857
sl@0
  4858
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4859
	controller.Close();
sl@0
  4860
sl@0
  4861
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4862
	__MM_HEAP_MARKEND;
sl@0
  4863
 
sl@0
  4864
	return verdict;
sl@0
  4865
	}
sl@0
  4866
sl@0
  4867
sl@0
  4868
//---------------------------------------------------------------
sl@0
  4869
sl@0
  4870
CTestStep_MMF_CTLFRM_U_0111::CTestStep_MMF_CTLFRM_U_0111()
sl@0
  4871
	/** Constructor
sl@0
  4872
	*/
sl@0
  4873
	{
sl@0
  4874
	// store the name of this test case
sl@0
  4875
	// this is the name that is used by the script file
sl@0
  4876
	// Each test step initialises it's own name
sl@0
  4877
	iTestStepName = _L("MM-MMF-CTLFRM-U-0111");
sl@0
  4878
sl@0
  4879
	
sl@0
  4880
	}
sl@0
  4881
sl@0
  4882
TVerdict CTestStep_MMF_CTLFRM_U_0111::DoTestStepL( void )
sl@0
  4883
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  4884
 * Use case: N/A
sl@0
  4885
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4886
 */
sl@0
  4887
	{
sl@0
  4888
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4889
	__MM_HEAP_MARK;
sl@0
  4890
sl@0
  4891
	TVerdict verdict = EPass;
sl@0
  4892
	_LIT8(KExpectedResult, "AddDataSourceL Called");
sl@0
  4893
sl@0
  4894
	TMMFPrioritySettings settings;
sl@0
  4895
	TInt error = KErrNone;
sl@0
  4896
	RMMFController controller;
sl@0
  4897
sl@0
  4898
	settings.iPriority = 1;
sl@0
  4899
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4900
	settings.iState = EMMFStateIdle;
sl@0
  4901
sl@0
  4902
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4903
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4904
sl@0
  4905
	const TDesC8& initData = KInitData;
sl@0
  4906
sl@0
  4907
	// Add Source
sl@0
  4908
	INFO_PRINTF1(_L("Attempting to add a Source and a Sink to Controller"));
sl@0
  4909
	if (!error)
sl@0
  4910
		{
sl@0
  4911
		INFO_PRINTF1(_L("API TEST: Calling AddDataSource"));
sl@0
  4912
		__UHEAP_FAILNEXT(1);
sl@0
  4913
		error = controller.AddDataSource(KTestDataSourceUid, initData);
sl@0
  4914
		}
sl@0
  4915
sl@0
  4916
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  4917
sl@0
  4918
	//------------------------------------//
sl@0
  4919
	// Getting Log from Custom Controller //
sl@0
  4920
	//------------------------------------//
sl@0
  4921
	if (!error)
sl@0
  4922
		{
sl@0
  4923
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  4924
sl@0
  4925
		TBuf8<64> memFunctionText;
sl@0
  4926
sl@0
  4927
	
sl@0
  4928
		TUid uid = {KMmfTestControllerUid};
sl@0
  4929
		TMMFMessageDestination handleInfo(uid);
sl@0
  4930
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  4931
sl@0
  4932
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  4933
		
sl@0
  4934
		TBuf<64> memFunctionText16;
sl@0
  4935
		memFunctionText16.Copy(memFunctionText);
sl@0
  4936
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  4937
sl@0
  4938
		if (memFunctionText != KExpectedResult)
sl@0
  4939
			{
sl@0
  4940
			verdict = EFail;
sl@0
  4941
			}
sl@0
  4942
sl@0
  4943
		}
sl@0
  4944
	//------------------------------------//
sl@0
  4945
	
sl@0
  4946
	
sl@0
  4947
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  4948
	controller.Close();
sl@0
  4949
sl@0
  4950
	if (error)
sl@0
  4951
		{
sl@0
  4952
		verdict = EFail;
sl@0
  4953
		}
sl@0
  4954
sl@0
  4955
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  4956
	__MM_HEAP_MARKEND;
sl@0
  4957
 
sl@0
  4958
	return verdict;
sl@0
  4959
	}
sl@0
  4960
sl@0
  4961
sl@0
  4962
//---------------------------------------------------------------
sl@0
  4963
sl@0
  4964
CTestStep_MMF_CTLFRM_U_0112::CTestStep_MMF_CTLFRM_U_0112()
sl@0
  4965
	/** Constructor
sl@0
  4966
	*/
sl@0
  4967
	{
sl@0
  4968
	// store the name of this test case
sl@0
  4969
	// this is the name that is used by the script file
sl@0
  4970
	// Each test step initialises it's own name
sl@0
  4971
	iTestStepName = _L("MM-MMF-CTLFRM-U-0112");
sl@0
  4972
sl@0
  4973
	
sl@0
  4974
	}
sl@0
  4975
sl@0
  4976
TVerdict CTestStep_MMF_CTLFRM_U_0112::DoTestStepL( void )
sl@0
  4977
/** Verfiy CMMFDescriptorBuffer creation and deletion using default buffer size
sl@0
  4978
 * Use case: N/A
sl@0
  4979
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  4980
 */
sl@0
  4981
	{
sl@0
  4982
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  4983
	__MM_HEAP_MARK;
sl@0
  4984
sl@0
  4985
	TVerdict verdict = EPass;
sl@0
  4986
	_LIT8(KExpectedResult, "AddDataSinkL Called");
sl@0
  4987
sl@0
  4988
	TMMFPrioritySettings settings;
sl@0
  4989
	TInt error = KErrNone;
sl@0
  4990
	RMMFController controller;
sl@0
  4991
sl@0
  4992
	settings.iPriority = 1;
sl@0
  4993
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  4994
	settings.iState = EMMFStateIdle;
sl@0
  4995
sl@0
  4996
	error = controller.Open(KTstControllerUid,settings);
sl@0
  4997
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  4998
sl@0
  4999
	const TDesC8& initData = KInitData;
sl@0
  5000
sl@0
  5001
	// Add Sink
sl@0
  5002
	if (!error)
sl@0
  5003
		{
sl@0
  5004
		INFO_PRINTF1(_L("API TEST: Calling AddDataSink"));
sl@0
  5005
		__UHEAP_FAILNEXT(1);
sl@0
  5006
		error = controller.AddDataSink(KTestDataSinkUid, initData);
sl@0
  5007
		}
sl@0
  5008
sl@0
  5009
		
sl@0
  5010
	INFO_PRINTF2(_L("Controller Status: %d"), error);
sl@0
  5011
sl@0
  5012
	//------------------------------------//
sl@0
  5013
	// Getting Log from Custom Controller //
sl@0
  5014
	//------------------------------------//
sl@0
  5015
	if (!error)
sl@0
  5016
		{
sl@0
  5017
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  5018
sl@0
  5019
		TBuf8<64> memFunctionText;
sl@0
  5020
	
sl@0
  5021
		TUid uid = {KMmfTestControllerUid};
sl@0
  5022
		TMMFMessageDestination handleInfo(uid);
sl@0
  5023
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  5024
sl@0
  5025
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  5026
		
sl@0
  5027
		TBuf<64> memFunctionText16;
sl@0
  5028
		memFunctionText16.Copy(memFunctionText);
sl@0
  5029
		INFO_PRINTF2(_L("Log: %S"),&memFunctionText16);
sl@0
  5030
sl@0
  5031
		if (memFunctionText != KExpectedResult)
sl@0
  5032
			{
sl@0
  5033
			verdict = EFail;
sl@0
  5034
			}
sl@0
  5035
sl@0
  5036
		}
sl@0
  5037
	//------------------------------------//
sl@0
  5038
sl@0
  5039
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  5040
	controller.Close();
sl@0
  5041
sl@0
  5042
	if (error)
sl@0
  5043
		{
sl@0
  5044
		verdict = EFail;
sl@0
  5045
		}
sl@0
  5046
sl@0
  5047
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5048
	__MM_HEAP_MARKEND;
sl@0
  5049
 
sl@0
  5050
	return verdict;
sl@0
  5051
	}
sl@0
  5052
sl@0
  5053
sl@0
  5054
//---------------------------------------------------------------
sl@0
  5055
sl@0
  5056
CTestStep_MMF_CTLFRM_U_0120::CTestStep_MMF_CTLFRM_U_0120()
sl@0
  5057
	/** Constructor
sl@0
  5058
	*/
sl@0
  5059
	{
sl@0
  5060
	// store the name of this test case
sl@0
  5061
	// this is the name that is used by the script file
sl@0
  5062
	// Each test step initialises it's own name
sl@0
  5063
	iTestStepName = _L("MM-MMF-CTLFRM-U-0120");
sl@0
  5064
sl@0
  5065
	
sl@0
  5066
	}
sl@0
  5067
sl@0
  5068
TVerdict CTestStep_MMF_CTLFRM_U_0120::DoTestStepL( void )
sl@0
  5069
/** Instantiate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  5070
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  5071
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  5072
 *  open a controller. Open the controller, check for errors and close the controller. 
sl@0
  5073
 *  (Test CMMFFormatSelectionParameters API).
sl@0
  5074
sl@0
  5075
 * Use case: N/A
sl@0
  5076
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5077
 */
sl@0
  5078
	{
sl@0
  5079
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5080
	__MM_HEAP_MARK;
sl@0
  5081
sl@0
  5082
	TVerdict verdict = EPass;
sl@0
  5083
sl@0
  5084
	TMMFPrioritySettings settings;
sl@0
  5085
	TInt error = KErrNone;
sl@0
  5086
	RMMFController controller1;
sl@0
  5087
sl@0
  5088
	settings.iPriority = 1;
sl@0
  5089
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5090
	settings.iState = EMMFStateIdle;
sl@0
  5091
sl@0
  5092
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5093
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5094
sl@0
  5095
	// Set the format match data
sl@0
  5096
sl@0
  5097
	//---------------------//
sl@0
  5098
	// Method being Tested //
sl@0
  5099
	//---------------------//
sl@0
  5100
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5101
	//---------------------//
sl@0
  5102
sl@0
  5103
	// Set the controller plugin play format match data
sl@0
  5104
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5105
sl@0
  5106
	// Get Controllers 
sl@0
  5107
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5108
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5109
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5110
sl@0
  5111
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5112
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5113
sl@0
  5114
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  5115
	controller1.Close();
sl@0
  5116
sl@0
  5117
	if (error)
sl@0
  5118
		{
sl@0
  5119
		verdict = EFail;
sl@0
  5120
		}
sl@0
  5121
sl@0
  5122
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5123
	__MM_HEAP_MARKEND;
sl@0
  5124
sl@0
  5125
	return verdict;
sl@0
  5126
	}
sl@0
  5127
sl@0
  5128
sl@0
  5129
//---------------------------------------------------------------
sl@0
  5130
sl@0
  5131
CTestStep_MMF_CTLFRM_U_0121::CTestStep_MMF_CTLFRM_U_0121()
sl@0
  5132
	/** Constructor
sl@0
  5133
	*/
sl@0
  5134
	{
sl@0
  5135
	// store the name of this test case
sl@0
  5136
	// this is the name that is used by the script file
sl@0
  5137
	// Each test step initialises it's own name
sl@0
  5138
	iTestStepName = _L("MM-MMF-CTLFRM-U-0121");
sl@0
  5139
sl@0
  5140
	
sl@0
  5141
	}
sl@0
  5142
sl@0
  5143
TVerdict CTestStep_MMF_CTLFRM_U_0121::DoTestStepL( void )
sl@0
  5144
/** As TSU_MMF_CTLFRM_U_0120
sl@0
  5145
 * Use case: N/A
sl@0
  5146
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5147
 */
sl@0
  5148
	{
sl@0
  5149
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5150
	__MM_HEAP_MARK;
sl@0
  5151
sl@0
  5152
	TVerdict verdict = EPass;
sl@0
  5153
sl@0
  5154
	TMMFPrioritySettings settings;
sl@0
  5155
	TInt error = KErrNone;
sl@0
  5156
	RMMFController controller1;
sl@0
  5157
sl@0
  5158
	settings.iPriority = 1;
sl@0
  5159
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5160
	settings.iState = EMMFStateIdle;
sl@0
  5161
sl@0
  5162
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5163
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5164
sl@0
  5165
	//---------------------//
sl@0
  5166
	// Method being Tested //
sl@0
  5167
	//---------------------//
sl@0
  5168
	_LIT8(KMimeData, "audio/mbeg");
sl@0
  5169
	fSelect->SetMatchToMimeTypeL(KMimeData);
sl@0
  5170
	//--------------------//
sl@0
  5171
sl@0
  5172
	// Set the controller plugin play format match data
sl@0
  5173
	cSelect->SetRequiredPlayFormatSupportL(*fSelect);
sl@0
  5174
sl@0
  5175
	cSelect->SetPreferredSupplierL(_L("Symbian"), CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  5176
sl@0
  5177
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5178
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5179
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5180
sl@0
  5181
	// Check Array Size here
sl@0
  5182
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5183
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5184
sl@0
  5185
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  5186
	controller1.Close();
sl@0
  5187
sl@0
  5188
	if (error)
sl@0
  5189
		{
sl@0
  5190
		verdict = EFail;
sl@0
  5191
		}
sl@0
  5192
sl@0
  5193
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5194
	__MM_HEAP_MARKEND;
sl@0
  5195
sl@0
  5196
	return verdict;
sl@0
  5197
	}
sl@0
  5198
sl@0
  5199
sl@0
  5200
//---------------------------------------------------------------
sl@0
  5201
sl@0
  5202
CTestStep_MMF_CTLFRM_U_0122::CTestStep_MMF_CTLFRM_U_0122()
sl@0
  5203
	/** Constructor
sl@0
  5204
	*/
sl@0
  5205
	{
sl@0
  5206
	// store the name of this test case
sl@0
  5207
	// this is the name that is used by the script file
sl@0
  5208
	// Each test step initialises it's own name
sl@0
  5209
	iTestStepName = _L("MM-MMF-CTLFRM-U-0122");
sl@0
  5210
sl@0
  5211
	
sl@0
  5212
	}
sl@0
  5213
sl@0
  5214
TVerdict CTestStep_MMF_CTLFRM_U_0122::DoTestStepL( void )
sl@0
  5215
/** As TSU_MMF_CTLFRM_U_0120
sl@0
  5216
 * Use case: N/A
sl@0
  5217
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5218
 */
sl@0
  5219
	{
sl@0
  5220
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5221
	__MM_HEAP_MARK;
sl@0
  5222
sl@0
  5223
	TVerdict verdict = EPass;
sl@0
  5224
sl@0
  5225
	TMMFPrioritySettings settings;
sl@0
  5226
	TInt error = KErrNone;
sl@0
  5227
	RMMFController controller1;
sl@0
  5228
sl@0
  5229
	settings.iPriority = 1;
sl@0
  5230
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5231
	settings.iState = EMMFStateIdle;
sl@0
  5232
sl@0
  5233
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5234
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5235
sl@0
  5236
	//---------------------//
sl@0
  5237
	// Method being Tested //
sl@0
  5238
	//---------------------//
sl@0
  5239
	_LIT8(KHeaderData, "RIFF????PAVE");
sl@0
  5240
	fSelect->SetMatchToHeaderDataL(KHeaderData); 
sl@0
  5241
	//--------------------//
sl@0
  5242
sl@0
  5243
	// Set the controller plugin play format match data
sl@0
  5244
	cSelect->SetRequiredPlayFormatSupportL(*fSelect);
sl@0
  5245
sl@0
  5246
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5247
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5248
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5249
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5250
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5251
	controller1.Close();
sl@0
  5252
sl@0
  5253
	if (error)
sl@0
  5254
		{
sl@0
  5255
		verdict = EFail;
sl@0
  5256
		}
sl@0
  5257
sl@0
  5258
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5259
	__MM_HEAP_MARKEND;
sl@0
  5260
sl@0
  5261
	return verdict;
sl@0
  5262
	}
sl@0
  5263
sl@0
  5264
sl@0
  5265
//---------------------------------------------------------------
sl@0
  5266
sl@0
  5267
CTestStep_MMF_CTLFRM_U_0123::CTestStep_MMF_CTLFRM_U_0123()
sl@0
  5268
	/** Constructor
sl@0
  5269
	*/
sl@0
  5270
	{
sl@0
  5271
	// store the name of this test case
sl@0
  5272
	// this is the name that is used by the script file
sl@0
  5273
	// Each test step initialises it's own name
sl@0
  5274
	iTestStepName = _L("MM-MMF-CTLFRM-U-0123");
sl@0
  5275
sl@0
  5276
	
sl@0
  5277
	}
sl@0
  5278
sl@0
  5279
TVerdict CTestStep_MMF_CTLFRM_U_0123::DoTestStepL( void )
sl@0
  5280
/** As TSU_MMF_CTLFRM_U_0120
sl@0
  5281
 * Use case: N/A
sl@0
  5282
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5283
 */
sl@0
  5284
	{
sl@0
  5285
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5286
	__MM_HEAP_MARK;
sl@0
  5287
sl@0
  5288
	TVerdict verdict = EPass;
sl@0
  5289
sl@0
  5290
	TMMFPrioritySettings settings;
sl@0
  5291
	TInt error = KErrNone;
sl@0
  5292
	RMMFController controller1;
sl@0
  5293
sl@0
  5294
	settings.iPriority = 1;
sl@0
  5295
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5296
	settings.iState = EMMFStateIdle;
sl@0
  5297
sl@0
  5298
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5299
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5300
sl@0
  5301
sl@0
  5302
	_LIT8(KHeaderData, "RIFF????PAVE");
sl@0
  5303
	fSelect->SetMatchToHeaderDataL(KHeaderData); 
sl@0
  5304
sl@0
  5305
sl@0
  5306
	//---------------------//
sl@0
  5307
	// Method being Tested //
sl@0
  5308
	//---------------------//
sl@0
  5309
	fSelect->MatchData();
sl@0
  5310
	//---------------------//
sl@0
  5311
sl@0
  5312
	// Set the controller plugin play format match data
sl@0
  5313
	cSelect->SetRequiredPlayFormatSupportL(*fSelect);
sl@0
  5314
sl@0
  5315
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5316
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5317
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5318
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5319
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5320
	controller1.Close();
sl@0
  5321
sl@0
  5322
	if (error)
sl@0
  5323
		{
sl@0
  5324
		verdict = EFail;
sl@0
  5325
		}
sl@0
  5326
sl@0
  5327
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5328
	__MM_HEAP_MARKEND;
sl@0
  5329
sl@0
  5330
	return verdict;
sl@0
  5331
	}
sl@0
  5332
sl@0
  5333
sl@0
  5334
//---------------------------------------------------------------
sl@0
  5335
sl@0
  5336
CTestStep_MMF_CTLFRM_U_0124::CTestStep_MMF_CTLFRM_U_0124()
sl@0
  5337
	/** Constructor
sl@0
  5338
	*/
sl@0
  5339
	{
sl@0
  5340
	// store the name of this test case
sl@0
  5341
	// this is the name that is used by the script file
sl@0
  5342
	// Each test step initialises it's own name
sl@0
  5343
	iTestStepName = _L("MM-MMF-CTLFRM-U-0124");
sl@0
  5344
sl@0
  5345
	
sl@0
  5346
	}
sl@0
  5347
sl@0
  5348
TVerdict CTestStep_MMF_CTLFRM_U_0124::DoTestStepL( void )
sl@0
  5349
/**As TSU_MMF_CTLFRM_U_0120
sl@0
  5350
 * Use case: N/A
sl@0
  5351
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5352
 */
sl@0
  5353
	{
sl@0
  5354
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5355
	__MM_HEAP_MARK;
sl@0
  5356
sl@0
  5357
	TVerdict verdict = EPass;
sl@0
  5358
sl@0
  5359
	TMMFPrioritySettings settings;
sl@0
  5360
	TInt error = KErrNone;
sl@0
  5361
	RMMFController controller1;
sl@0
  5362
sl@0
  5363
	settings.iPriority = 1;
sl@0
  5364
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5365
	settings.iState = EMMFStateIdle;
sl@0
  5366
sl@0
  5367
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5368
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5369
sl@0
  5370
	_LIT8(KHeaderData, "RIFF????PAVE");
sl@0
  5371
	fSelect->SetMatchToHeaderDataL(KHeaderData); 
sl@0
  5372
sl@0
  5373
	//---------------------//
sl@0
  5374
	// Method being Tested //
sl@0
  5375
	//---------------------//
sl@0
  5376
//	CMMFFormatSelectionParameters::TMatchDataType dataType;	//EABI warning removal
sl@0
  5377
//	dataType = fSelect->MatchDataType();
sl@0
  5378
	//--------------------//
sl@0
  5379
sl@0
  5380
	// Set the controller plugin play format match data
sl@0
  5381
	cSelect->SetRequiredPlayFormatSupportL(*fSelect);
sl@0
  5382
sl@0
  5383
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5384
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5385
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5386
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5387
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5388
	controller1.Close();
sl@0
  5389
sl@0
  5390
	if (error)
sl@0
  5391
		{
sl@0
  5392
		verdict = EFail;
sl@0
  5393
		}
sl@0
  5394
sl@0
  5395
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5396
	__MM_HEAP_MARKEND;
sl@0
  5397
sl@0
  5398
	return verdict;
sl@0
  5399
	}
sl@0
  5400
sl@0
  5401
//---------------------------------------------------------------
sl@0
  5402
sl@0
  5403
sl@0
  5404
sl@0
  5405
CTestStep_MMF_CTLFRM_U_0130::CTestStep_MMF_CTLFRM_U_0130()
sl@0
  5406
	/** Constructor
sl@0
  5407
	*/
sl@0
  5408
	{
sl@0
  5409
	// store the name of this test case
sl@0
  5410
	// this is the name that is used by the script file
sl@0
  5411
	// Each test step initialises it's own name
sl@0
  5412
	iTestStepName = _L("MM-MMF-CTLFRM-U-0130");
sl@0
  5413
sl@0
  5414
	
sl@0
  5415
	}
sl@0
  5416
sl@0
  5417
TVerdict CTestStep_MMF_CTLFRM_U_0130::DoTestStepL( void )
sl@0
  5418
/** Instantiate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  5419
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  5420
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  5421
 *  open a controller. Check the details obtained to open the controller are correct. Open 
sl@0
  5422
 *  the controller, check for errors and close the controller. 
sl@0
  5423
 *  (Test CMMFControllerPluginSelectionParameters API).
sl@0
  5424
sl@0
  5425
 * Use case: N/A
sl@0
  5426
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5427
 */
sl@0
  5428
	{
sl@0
  5429
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5430
	__MM_HEAP_MARK;
sl@0
  5431
sl@0
  5432
	TVerdict verdict = EPass;
sl@0
  5433
sl@0
  5434
	TMMFPrioritySettings settings;
sl@0
  5435
	TInt error = KErrNone;
sl@0
  5436
	RMMFController controller1;
sl@0
  5437
sl@0
  5438
	settings.iPriority = 1;
sl@0
  5439
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5440
	settings.iState = EMMFStateIdle;
sl@0
  5441
sl@0
  5442
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5443
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5444
sl@0
  5445
	//_LIT8(KHeaderData, "RIFF????PAVE");
sl@0
  5446
	//fSelect->SetMatchToHeaderDataL(KHeaderData);
sl@0
  5447
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5448
sl@0
  5449
	//---------------------//
sl@0
  5450
	// Method being Tested //
sl@0
  5451
	//---------------------//
sl@0
  5452
	// Set the controller plugin play format match data
sl@0
  5453
	cSelect->SetRequiredPlayFormatSupportL(*fSelect);
sl@0
  5454
	//--------------------//
sl@0
  5455
sl@0
  5456
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5457
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5458
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5459
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5460
sl@0
  5461
	TUid controllerUid;
sl@0
  5462
	controllerUid = controllers[0]->Uid();
sl@0
  5463
	
sl@0
  5464
	if (controllerUid == KTstControllerUid)
sl@0
  5465
		{
sl@0
  5466
		verdict = EPass;
sl@0
  5467
		}
sl@0
  5468
	else
sl@0
  5469
		{
sl@0
  5470
		verdict = EFail;
sl@0
  5471
		}
sl@0
  5472
sl@0
  5473
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5474
	controller1.Close();
sl@0
  5475
sl@0
  5476
	if (error)
sl@0
  5477
		{
sl@0
  5478
		verdict = EFail;
sl@0
  5479
		}
sl@0
  5480
sl@0
  5481
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5482
	__MM_HEAP_MARKEND;
sl@0
  5483
sl@0
  5484
	return verdict;
sl@0
  5485
	}
sl@0
  5486
sl@0
  5487
sl@0
  5488
//---------------------------------------------------------------
sl@0
  5489
sl@0
  5490
sl@0
  5491
CTestStep_MMF_CTLFRM_U_0131::CTestStep_MMF_CTLFRM_U_0131()
sl@0
  5492
	/** Constructor
sl@0
  5493
	*/
sl@0
  5494
	{
sl@0
  5495
	// store the name of this test case
sl@0
  5496
	// this is the name that is used by the script file
sl@0
  5497
	// Each test step initialises it's own name
sl@0
  5498
	iTestStepName = _L("MM-MMF-CTLFRM-U-0131");
sl@0
  5499
sl@0
  5500
	
sl@0
  5501
	}
sl@0
  5502
sl@0
  5503
TVerdict CTestStep_MMF_CTLFRM_U_0131::DoTestStepL( void )
sl@0
  5504
/** As TSU_MMF_CTLFRM_U_0130
sl@0
  5505
sl@0
  5506
 * Use case: N/A
sl@0
  5507
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5508
 */
sl@0
  5509
	{
sl@0
  5510
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5511
	__MM_HEAP_MARK;
sl@0
  5512
sl@0
  5513
	TVerdict verdict = EPass;
sl@0
  5514
sl@0
  5515
	TMMFPrioritySettings settings;
sl@0
  5516
	TInt error = KErrNone;
sl@0
  5517
	RMMFController controller1;
sl@0
  5518
sl@0
  5519
	settings.iPriority = 1;
sl@0
  5520
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5521
	settings.iState = EMMFStateIdle;
sl@0
  5522
sl@0
  5523
sl@0
  5524
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5525
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5526
sl@0
  5527
	fSelect->SetMatchToFileNameL(_L("test.ai"));
sl@0
  5528
sl@0
  5529
	//---------------------//
sl@0
  5530
	// Method being Tested //
sl@0
  5531
	//---------------------//
sl@0
  5532
	// Set the controller plugin play format match data
sl@0
  5533
	cSelect->SetRequiredRecordFormatSupportL(*fSelect);
sl@0
  5534
	//--------------------//
sl@0
  5535
sl@0
  5536
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5537
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5538
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5539
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5540
sl@0
  5541
	TUid controllerUid;
sl@0
  5542
	controllerUid = controllers[0]->Uid();
sl@0
  5543
	
sl@0
  5544
	if (controllerUid == KTstControllerUid)
sl@0
  5545
		{
sl@0
  5546
		verdict = EPass;
sl@0
  5547
		}
sl@0
  5548
	else
sl@0
  5549
		{
sl@0
  5550
		verdict = EFail;
sl@0
  5551
		}
sl@0
  5552
sl@0
  5553
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5554
	controller1.Close();
sl@0
  5555
sl@0
  5556
	if (error)
sl@0
  5557
		{
sl@0
  5558
		verdict = EFail;
sl@0
  5559
		}
sl@0
  5560
sl@0
  5561
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5562
	__MM_HEAP_MARKEND;
sl@0
  5563
sl@0
  5564
	return verdict;
sl@0
  5565
	}
sl@0
  5566
sl@0
  5567
sl@0
  5568
//---------------------------------------------------------------
sl@0
  5569
sl@0
  5570
sl@0
  5571
CTestStep_MMF_CTLFRM_U_0140::CTestStep_MMF_CTLFRM_U_0140()
sl@0
  5572
	/** Constructor
sl@0
  5573
	*/
sl@0
  5574
	{
sl@0
  5575
	// store the name of this test case
sl@0
  5576
	// this is the name that is used by the script file
sl@0
  5577
	// Each test step initialises it's own name
sl@0
  5578
	iTestStepName = _L("MM-MMF-CTLFRM-U-0140");
sl@0
  5579
sl@0
  5580
	
sl@0
  5581
	}
sl@0
  5582
sl@0
  5583
TVerdict CTestStep_MMF_CTLFRM_U_0140::DoTestStepL( void )
sl@0
  5584
/** Instantiate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  5585
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  5586
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  5587
 *  open a controller. Check the details obtained to open the controller are correct. Open 
sl@0
  5588
 *  the controller, check for errors and close the controller. 
sl@0
  5589
 *  (Test CMMFPluginImplementationInformation API)
sl@0
  5590
sl@0
  5591
 * Use case: N/A
sl@0
  5592
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5593
 */
sl@0
  5594
	{
sl@0
  5595
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5596
	__MM_HEAP_MARK;
sl@0
  5597
sl@0
  5598
	TVerdict verdict = EPass;
sl@0
  5599
sl@0
  5600
	TMMFPrioritySettings settings;
sl@0
  5601
	TInt error = KErrNone;
sl@0
  5602
	RMMFController controller1;
sl@0
  5603
sl@0
  5604
	settings.iPriority = 1;
sl@0
  5605
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5606
	settings.iState = EMMFStateIdle;
sl@0
  5607
sl@0
  5608
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5609
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5610
sl@0
  5611
	// Set the format match data
sl@0
  5612
sl@0
  5613
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5614
sl@0
  5615
	// Set the controller plugin play format match data
sl@0
  5616
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5617
sl@0
  5618
	// Get Controllers 
sl@0
  5619
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5620
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5621
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5622
sl@0
  5623
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5624
sl@0
  5625
	//---------------------//
sl@0
  5626
	// Method being Tested //
sl@0
  5627
	//---------------------//
sl@0
  5628
	TUid controllerUid;
sl@0
  5629
	controllerUid = controllers[0]->Uid();
sl@0
  5630
	
sl@0
  5631
	if (controllerUid == KTstControllerUid)
sl@0
  5632
		{
sl@0
  5633
		verdict = EPass;
sl@0
  5634
		}
sl@0
  5635
	else
sl@0
  5636
		{
sl@0
  5637
		verdict = EFail;
sl@0
  5638
		}
sl@0
  5639
	//--------------------//
sl@0
  5640
sl@0
  5641
sl@0
  5642
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5643
	controller1.Close();
sl@0
  5644
sl@0
  5645
	if (error)
sl@0
  5646
		{
sl@0
  5647
		verdict = EFail;
sl@0
  5648
		}
sl@0
  5649
sl@0
  5650
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5651
	__MM_HEAP_MARKEND;
sl@0
  5652
sl@0
  5653
	return verdict;
sl@0
  5654
	}
sl@0
  5655
sl@0
  5656
sl@0
  5657
//---------------------------------------------------------------
sl@0
  5658
sl@0
  5659
sl@0
  5660
CTestStep_MMF_CTLFRM_U_0141::CTestStep_MMF_CTLFRM_U_0141()
sl@0
  5661
	/** Constructor
sl@0
  5662
	*/
sl@0
  5663
	{
sl@0
  5664
	// store the name of this test case
sl@0
  5665
	// this is the name that is used by the script file
sl@0
  5666
	// Each test step initialises it's own name
sl@0
  5667
	iTestStepName = _L("MM-MMF-CTLFRM-U-0141");
sl@0
  5668
sl@0
  5669
	
sl@0
  5670
	}
sl@0
  5671
sl@0
  5672
TVerdict CTestStep_MMF_CTLFRM_U_0141::DoTestStepL( void )
sl@0
  5673
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  5674
sl@0
  5675
 * Use case: N/A
sl@0
  5676
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5677
 */
sl@0
  5678
	{
sl@0
  5679
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5680
	__MM_HEAP_MARK;
sl@0
  5681
sl@0
  5682
	TVerdict verdict = EPass;
sl@0
  5683
sl@0
  5684
	_LIT(KExpectedName,"CMMFTestController");
sl@0
  5685
sl@0
  5686
	TMMFPrioritySettings settings;
sl@0
  5687
	TInt error = KErrNone;
sl@0
  5688
	RMMFController controller1;
sl@0
  5689
sl@0
  5690
	settings.iPriority = 1;
sl@0
  5691
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5692
	settings.iState = EMMFStateIdle;
sl@0
  5693
sl@0
  5694
sl@0
  5695
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5696
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5697
sl@0
  5698
	// Set the format match data
sl@0
  5699
sl@0
  5700
	//---------------------//
sl@0
  5701
	// Method being Tested //
sl@0
  5702
	//---------------------//
sl@0
  5703
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5704
	//---------------------//
sl@0
  5705
sl@0
  5706
	// Set the controller plugin play format match data
sl@0
  5707
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5708
sl@0
  5709
	// Get Controllers 
sl@0
  5710
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5711
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5712
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5713
sl@0
  5714
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5715
sl@0
  5716
	//---------------------//
sl@0
  5717
	// Method being Tested //
sl@0
  5718
	//---------------------//
sl@0
  5719
	TPtrC controllerName;
sl@0
  5720
	controllerName.Set(controllers[0]->DisplayName());
sl@0
  5721
	INFO_PRINTF2(_L("Controller Name: %S"),&controllerName);
sl@0
  5722
sl@0
  5723
	if (controllerName == KExpectedName)
sl@0
  5724
		{
sl@0
  5725
		verdict = EPass;
sl@0
  5726
		}
sl@0
  5727
	else
sl@0
  5728
		{
sl@0
  5729
		verdict = EFail;
sl@0
  5730
		}
sl@0
  5731
	//--------------------//
sl@0
  5732
sl@0
  5733
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5734
	controller1.Close();
sl@0
  5735
sl@0
  5736
	if (error)
sl@0
  5737
		{
sl@0
  5738
		verdict = EFail;
sl@0
  5739
		}
sl@0
  5740
sl@0
  5741
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5742
	__MM_HEAP_MARKEND;
sl@0
  5743
sl@0
  5744
	return verdict;
sl@0
  5745
	}
sl@0
  5746
sl@0
  5747
sl@0
  5748
//---------------------------------------------------------------
sl@0
  5749
sl@0
  5750
sl@0
  5751
CTestStep_MMF_CTLFRM_U_0142::CTestStep_MMF_CTLFRM_U_0142()
sl@0
  5752
	/** Constructor
sl@0
  5753
	*/
sl@0
  5754
	{
sl@0
  5755
	// store the name of this test case
sl@0
  5756
	// this is the name that is used by the script file
sl@0
  5757
	// Each test step initialises it's own name
sl@0
  5758
	iTestStepName = _L("MM-MMF-CTLFRM-U-0142");
sl@0
  5759
sl@0
  5760
	
sl@0
  5761
	}
sl@0
  5762
sl@0
  5763
TVerdict CTestStep_MMF_CTLFRM_U_0142::DoTestStepL( void )
sl@0
  5764
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  5765
sl@0
  5766
 * Use case: N/A
sl@0
  5767
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5768
 */
sl@0
  5769
	{
sl@0
  5770
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5771
	__MM_HEAP_MARK;
sl@0
  5772
sl@0
  5773
	TVerdict verdict = EPass;
sl@0
  5774
sl@0
  5775
	_LIT(KExpectedSupplier, "TSU_MMF_CTLFRM");
sl@0
  5776
sl@0
  5777
	TMMFPrioritySettings settings;
sl@0
  5778
	TInt error = KErrNone;
sl@0
  5779
	RMMFController controller1;
sl@0
  5780
sl@0
  5781
	settings.iPriority = 1;
sl@0
  5782
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5783
	settings.iState = EMMFStateIdle;
sl@0
  5784
sl@0
  5785
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5786
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5787
sl@0
  5788
	// Set the format match data
sl@0
  5789
sl@0
  5790
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5791
sl@0
  5792
	// Set the controller plugin play format match data
sl@0
  5793
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5794
sl@0
  5795
	// Get Controllers 
sl@0
  5796
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5797
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5798
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5799
sl@0
  5800
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5801
sl@0
  5802
	//---------------------//
sl@0
  5803
	// Method being Tested //
sl@0
  5804
	//---------------------//
sl@0
  5805
	TPtrC supplier;
sl@0
  5806
sl@0
  5807
	supplier.Set(controllers[0]->Supplier());
sl@0
  5808
sl@0
  5809
	INFO_PRINTF2(_L("Controller Name: %S"),&supplier);
sl@0
  5810
	TPtrC expectedSupplierPtrC;
sl@0
  5811
	expectedSupplierPtrC.Set(KExpectedSupplier);
sl@0
  5812
sl@0
  5813
	if (*supplier.Ptr() == *expectedSupplierPtrC.Ptr())
sl@0
  5814
		{
sl@0
  5815
		verdict = EPass;
sl@0
  5816
		}
sl@0
  5817
	else
sl@0
  5818
		{
sl@0
  5819
		verdict = EFail;
sl@0
  5820
		}
sl@0
  5821
	//--------------------//
sl@0
  5822
sl@0
  5823
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5824
	controller1.Close();
sl@0
  5825
sl@0
  5826
	if (error)
sl@0
  5827
		{
sl@0
  5828
		verdict = EFail;
sl@0
  5829
		}
sl@0
  5830
sl@0
  5831
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5832
	__MM_HEAP_MARKEND;
sl@0
  5833
sl@0
  5834
	return verdict;
sl@0
  5835
	}
sl@0
  5836
sl@0
  5837
sl@0
  5838
//---------------------------------------------------------------
sl@0
  5839
sl@0
  5840
CTestStep_MMF_CTLFRM_U_0143::CTestStep_MMF_CTLFRM_U_0143()
sl@0
  5841
	/** Constructor
sl@0
  5842
	*/
sl@0
  5843
	{
sl@0
  5844
	// store the name of this test case
sl@0
  5845
	// this is the name that is used by the script file
sl@0
  5846
	// Each test step initialises it's own name
sl@0
  5847
	iTestStepName = _L("MM-MMF-CTLFRM-U-0143");
sl@0
  5848
sl@0
  5849
	
sl@0
  5850
	}
sl@0
  5851
sl@0
  5852
TVerdict CTestStep_MMF_CTLFRM_U_0143::DoTestStepL( void )
sl@0
  5853
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  5854
sl@0
  5855
 * Use case: N/A
sl@0
  5856
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5857
 */
sl@0
  5858
	{
sl@0
  5859
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5860
	__MM_HEAP_MARK;
sl@0
  5861
sl@0
  5862
	TVerdict verdict = EPass;
sl@0
  5863
sl@0
  5864
	// Expected result
sl@0
  5865
	TInt expectVersionNo = 3;
sl@0
  5866
sl@0
  5867
	TMMFPrioritySettings settings;
sl@0
  5868
	TInt error = KErrNone;
sl@0
  5869
	RMMFController controller1;
sl@0
  5870
sl@0
  5871
	settings.iPriority = 1;
sl@0
  5872
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5873
	settings.iState = EMMFStateIdle;
sl@0
  5874
sl@0
  5875
sl@0
  5876
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5877
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5878
sl@0
  5879
	// Set the format match data
sl@0
  5880
sl@0
  5881
	//---------------------//
sl@0
  5882
	// Method being Tested //
sl@0
  5883
	//---------------------//
sl@0
  5884
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5885
	//---------------------//
sl@0
  5886
sl@0
  5887
	// Set the controller plugin play format match data
sl@0
  5888
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5889
sl@0
  5890
	// Get Controllers 
sl@0
  5891
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5892
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5893
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5894
sl@0
  5895
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // instantiate the controller
sl@0
  5896
sl@0
  5897
sl@0
  5898
	//---------------------//
sl@0
  5899
	// Method being Tested //
sl@0
  5900
	//---------------------//
sl@0
  5901
	TInt versionNo;
sl@0
  5902
	versionNo = controllers[0]->Version();
sl@0
  5903
	INFO_PRINTF2(_L("Controller Name:%d"),versionNo);
sl@0
  5904
sl@0
  5905
	if (expectVersionNo != versionNo)
sl@0
  5906
		{
sl@0
  5907
		verdict = EFail;
sl@0
  5908
		}
sl@0
  5909
	//--------------------//
sl@0
  5910
sl@0
  5911
sl@0
  5912
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5913
	controller1.Close();
sl@0
  5914
sl@0
  5915
	if (error)
sl@0
  5916
		{
sl@0
  5917
		verdict = EFail;
sl@0
  5918
		}
sl@0
  5919
sl@0
  5920
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  5921
	__MM_HEAP_MARKEND;
sl@0
  5922
sl@0
  5923
	return verdict;
sl@0
  5924
	}
sl@0
  5925
sl@0
  5926
sl@0
  5927
//---------------------------------------------------------------
sl@0
  5928
sl@0
  5929
sl@0
  5930
CTestStep_MMF_CTLFRM_U_0144::CTestStep_MMF_CTLFRM_U_0144()
sl@0
  5931
	/** Constructor
sl@0
  5932
	*/
sl@0
  5933
	{
sl@0
  5934
	// store the name of this test case
sl@0
  5935
	// this is the name that is used by the script file
sl@0
  5936
	// Each test step initialises it's own name
sl@0
  5937
	iTestStepName = _L("MM-MMF-CTLFRM-U-0144");
sl@0
  5938
sl@0
  5939
	
sl@0
  5940
	}
sl@0
  5941
sl@0
  5942
TVerdict CTestStep_MMF_CTLFRM_U_0144::DoTestStepL( void )
sl@0
  5943
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  5944
sl@0
  5945
 * Use case: N/A
sl@0
  5946
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  5947
 */
sl@0
  5948
	{
sl@0
  5949
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  5950
	__MM_HEAP_MARK;
sl@0
  5951
sl@0
  5952
	TVerdict verdict = EPass;
sl@0
  5953
sl@0
  5954
	TMMFPrioritySettings settings;
sl@0
  5955
	TInt error = KErrNone;
sl@0
  5956
	RMMFController controller1;
sl@0
  5957
sl@0
  5958
	settings.iPriority = 1;
sl@0
  5959
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  5960
	settings.iState = EMMFStateIdle;
sl@0
  5961
sl@0
  5962
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  5963
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  5964
sl@0
  5965
	// Set the format match data
sl@0
  5966
sl@0
  5967
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  5968
sl@0
  5969
	// Set the controller plugin play format match data
sl@0
  5970
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  5971
sl@0
  5972
	// Get Controllers 
sl@0
  5973
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  5974
	CleanupResetAndDestroyPushL(controllers);
sl@0
  5975
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  5976
sl@0
  5977
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  5978
sl@0
  5979
	//---------------------//
sl@0
  5980
	// Method being Tested //
sl@0
  5981
	//---------------------//
sl@0
  5982
	const RArray<TUid>& mediaIds = controllers[0]->SupportedMediaIds();
sl@0
  5983
sl@0
  5984
	TUid controllerUid = mediaIds[0];
sl@0
  5985
	if (controllerUid == KExpectedMediaIDUid140)
sl@0
  5986
		{
sl@0
  5987
		verdict = EPass;
sl@0
  5988
		}
sl@0
  5989
	else
sl@0
  5990
		{
sl@0
  5991
		verdict = EFail;
sl@0
  5992
		}
sl@0
  5993
	//--------------------//
sl@0
  5994
sl@0
  5995
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  5996
	controller1.Close();
sl@0
  5997
sl@0
  5998
	if (error)
sl@0
  5999
		{
sl@0
  6000
		verdict = EFail;
sl@0
  6001
		}
sl@0
  6002
		
sl@0
  6003
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6004
	__MM_HEAP_MARKEND;
sl@0
  6005
sl@0
  6006
	return verdict;
sl@0
  6007
	}
sl@0
  6008
sl@0
  6009
//---------------------------------------------------------------
sl@0
  6010
sl@0
  6011
sl@0
  6012
CTestStep_MMF_CTLFRM_U_0145::CTestStep_MMF_CTLFRM_U_0145()
sl@0
  6013
	/** Constructor
sl@0
  6014
	*/
sl@0
  6015
	{
sl@0
  6016
	// store the name of this test case
sl@0
  6017
	// this is the name that is used by the script file
sl@0
  6018
	// Each test step initialises it's own name
sl@0
  6019
	iTestStepName = _L("MM-MMF-CTLFRM-U-0145");
sl@0
  6020
sl@0
  6021
	
sl@0
  6022
	}
sl@0
  6023
sl@0
  6024
TVerdict CTestStep_MMF_CTLFRM_U_0145::DoTestStepL( void )
sl@0
  6025
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  6026
sl@0
  6027
 * Use case: N/A
sl@0
  6028
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6029
 */
sl@0
  6030
	{
sl@0
  6031
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6032
	__MM_HEAP_MARK;
sl@0
  6033
sl@0
  6034
	TVerdict verdict = EPass;
sl@0
  6035
sl@0
  6036
	TMMFPrioritySettings settings;
sl@0
  6037
	TInt error = KErrNone;
sl@0
  6038
	RMMFController controller1;
sl@0
  6039
sl@0
  6040
	settings.iPriority = 1;
sl@0
  6041
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6042
	settings.iState = EMMFStateIdle;
sl@0
  6043
sl@0
  6044
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6045
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6046
sl@0
  6047
	// Set the format match data
sl@0
  6048
sl@0
  6049
	//---------------------//
sl@0
  6050
	// Method being Tested //
sl@0
  6051
	//---------------------//
sl@0
  6052
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  6053
	//---------------------//
sl@0
  6054
sl@0
  6055
	// Set the controller plugin play format match data
sl@0
  6056
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6057
sl@0
  6058
	// Get Controllers 
sl@0
  6059
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6060
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6061
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  6062
sl@0
  6063
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6064
sl@0
  6065
	//---------------------//
sl@0
  6066
	// Method being Tested //
sl@0
  6067
	//---------------------//
sl@0
  6068
	TBool supplierSupported = controllers[0]->SupportsSupplier(_L("TSU_MMF_CTLFRM"));
sl@0
  6069
sl@0
  6070
	if (!supplierSupported)
sl@0
  6071
		{
sl@0
  6072
		verdict = EFail;
sl@0
  6073
		}
sl@0
  6074
	//--------------------//
sl@0
  6075
sl@0
  6076
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6077
	controller1.Close();
sl@0
  6078
sl@0
  6079
	if (error)
sl@0
  6080
		{
sl@0
  6081
		verdict = EFail;
sl@0
  6082
		}
sl@0
  6083
sl@0
  6084
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6085
	__MM_HEAP_MARKEND;
sl@0
  6086
sl@0
  6087
	return verdict;
sl@0
  6088
	}
sl@0
  6089
sl@0
  6090
//---------------------------------------------------------------
sl@0
  6091
sl@0
  6092
sl@0
  6093
CTestStep_MMF_CTLFRM_U_0146::CTestStep_MMF_CTLFRM_U_0146()
sl@0
  6094
	/** Constructor
sl@0
  6095
	*/
sl@0
  6096
	{
sl@0
  6097
	// store the name of this test case
sl@0
  6098
	// this is the name that is used by the script file
sl@0
  6099
	// Each test step initialises it's own name
sl@0
  6100
	iTestStepName = _L("MM-MMF-CTLFRM-U-0146");
sl@0
  6101
sl@0
  6102
	
sl@0
  6103
	}
sl@0
  6104
sl@0
  6105
TVerdict CTestStep_MMF_CTLFRM_U_0146::DoTestStepL( void )
sl@0
  6106
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  6107
 * Use case: N/A
sl@0
  6108
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6109
 */
sl@0
  6110
	{
sl@0
  6111
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6112
	__MM_HEAP_MARK;
sl@0
  6113
sl@0
  6114
	TVerdict verdict = EPass;
sl@0
  6115
sl@0
  6116
	TMMFPrioritySettings settings;
sl@0
  6117
	TInt error = KErrNone;
sl@0
  6118
	RMMFController controller1;
sl@0
  6119
sl@0
  6120
	settings.iPriority = 1;
sl@0
  6121
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6122
	settings.iState = EMMFStateIdle;
sl@0
  6123
sl@0
  6124
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6125
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6126
sl@0
  6127
	// Set the format match data
sl@0
  6128
sl@0
  6129
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  6130
sl@0
  6131
	// Set the controller plugin play format match data
sl@0
  6132
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6133
sl@0
  6134
	// Get Controllers 
sl@0
  6135
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6136
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6137
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  6138
sl@0
  6139
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6140
sl@0
  6141
	//---------------------//
sl@0
  6142
	// Method being Tested //
sl@0
  6143
	//---------------------//
sl@0
  6144
	TBool mediaSupported = controllers[0]->SupportsMediaId(KExpectedMediaIDUid140);
sl@0
  6145
	
sl@0
  6146
	if (!mediaSupported)
sl@0
  6147
		{
sl@0
  6148
		verdict = EFail;
sl@0
  6149
		}
sl@0
  6150
	//--------------------//
sl@0
  6151
sl@0
  6152
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6153
	controller1.Close();
sl@0
  6154
sl@0
  6155
	if (error)
sl@0
  6156
		{
sl@0
  6157
		verdict = EFail;
sl@0
  6158
		}
sl@0
  6159
sl@0
  6160
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6161
	__MM_HEAP_MARKEND;
sl@0
  6162
sl@0
  6163
	return verdict;
sl@0
  6164
	}
sl@0
  6165
sl@0
  6166
//---------------------------------------------------------------
sl@0
  6167
sl@0
  6168
CTestStep_MMF_CTLFRM_U_0150::CTestStep_MMF_CTLFRM_U_0150()
sl@0
  6169
	/** Constructor
sl@0
  6170
	*/
sl@0
  6171
	{
sl@0
  6172
	// store the name of this test case
sl@0
  6173
	// this is the name that is used by the script file
sl@0
  6174
	// Each test step initialises it's own name
sl@0
  6175
	iTestStepName = _L("MM-MMF-CTLFRM-U-0150");
sl@0
  6176
sl@0
  6177
	
sl@0
  6178
	}
sl@0
  6179
sl@0
  6180
TVerdict CTestStep_MMF_CTLFRM_U_0150::DoTestStepL( void )
sl@0
  6181
/** Instanciate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  6182
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  6183
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  6184
 *  open a controller. Check the details obtained to open the controller are correct. Open 
sl@0
  6185
 *  the controller, check for errors and close the controller. 
sl@0
  6186
 *  (Test CMMFControllerImplementationInformation API)
sl@0
  6187
sl@0
  6188
 * Use case: N/A
sl@0
  6189
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6190
 */
sl@0
  6191
	{
sl@0
  6192
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6193
	__MM_HEAP_MARK;
sl@0
  6194
sl@0
  6195
	TVerdict verdict = EPass;
sl@0
  6196
sl@0
  6197
	TMMFPrioritySettings settings;
sl@0
  6198
	TInt error = KErrNone;
sl@0
  6199
	RMMFController controller1;
sl@0
  6200
sl@0
  6201
	settings.iPriority = 1;
sl@0
  6202
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6203
	settings.iState = EMMFStateIdle;
sl@0
  6204
sl@0
  6205
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6206
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6207
sl@0
  6208
	// Set the format match data
sl@0
  6209
sl@0
  6210
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  6211
sl@0
  6212
	// Set the controller plugin play format match data
sl@0
  6213
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6214
sl@0
  6215
	// Get Controllers 
sl@0
  6216
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6217
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6218
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  6219
sl@0
  6220
	//---------------------//
sl@0
  6221
	// Method being Tested //
sl@0
  6222
	//---------------------//
sl@0
  6223
	RMMFFormatImplInfoArray controllersPlayFormats = controllers[0]->PlayFormats();
sl@0
  6224
	INFO_PRINTF2(_L("Number of Play Formats: %d"),controllersPlayFormats.Count());
sl@0
  6225
sl@0
  6226
	TUid formatUid = controllersPlayFormats[0]->Uid();
sl@0
  6227
sl@0
  6228
	if (formatUid == KMmfUidFormatPAVReadUid || 
sl@0
  6229
		formatUid == KMmfUidFormatFAWReadUid ||
sl@0
  6230
		formatUid == KMmfUidFormatAIReadUid  ||
sl@0
  6231
		formatUid == KMmfUidFormatMBEGReadUid)
sl@0
  6232
		{
sl@0
  6233
		verdict = EPass;
sl@0
  6234
		}
sl@0
  6235
	else
sl@0
  6236
		{
sl@0
  6237
		verdict = EFail;
sl@0
  6238
		}
sl@0
  6239
	//--------------------//
sl@0
  6240
sl@0
  6241
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6242
sl@0
  6243
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6244
	controller1.Close();
sl@0
  6245
sl@0
  6246
	if (error)
sl@0
  6247
		{
sl@0
  6248
		verdict = EFail;
sl@0
  6249
		}
sl@0
  6250
sl@0
  6251
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6252
	__MM_HEAP_MARKEND;
sl@0
  6253
sl@0
  6254
	return verdict;
sl@0
  6255
	}
sl@0
  6256
sl@0
  6257
//---------------------------------------------------------------
sl@0
  6258
sl@0
  6259
sl@0
  6260
CTestStep_MMF_CTLFRM_U_0151::CTestStep_MMF_CTLFRM_U_0151()
sl@0
  6261
	/** Constructor
sl@0
  6262
	*/
sl@0
  6263
	{
sl@0
  6264
	// store the name of this test case
sl@0
  6265
	// this is the name that is used by the script file
sl@0
  6266
	// Each test step initialises it's own name
sl@0
  6267
	iTestStepName = _L("MM-MMF-CTLFRM-U-0151");
sl@0
  6268
sl@0
  6269
	
sl@0
  6270
	}
sl@0
  6271
sl@0
  6272
TVerdict CTestStep_MMF_CTLFRM_U_0151::DoTestStepL( void )
sl@0
  6273
/** As TSU_MMF_CTLFRM_U_0150
sl@0
  6274
 * Use case: N/A
sl@0
  6275
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6276
 */
sl@0
  6277
	{
sl@0
  6278
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6279
	__MM_HEAP_MARK;
sl@0
  6280
sl@0
  6281
	TVerdict verdict = EPass;
sl@0
  6282
sl@0
  6283
	TMMFPrioritySettings settings;
sl@0
  6284
	TInt error = KErrNone;
sl@0
  6285
	RMMFController controller1;
sl@0
  6286
sl@0
  6287
	settings.iPriority = 1;
sl@0
  6288
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6289
	settings.iState = EMMFStateIdle;
sl@0
  6290
sl@0
  6291
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6292
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6293
sl@0
  6294
	// Set the format match data
sl@0
  6295
	fSelect->SetMatchToFileNameL(_L("test.ai"));
sl@0
  6296
sl@0
  6297
	// Set the controller plugin play format match data
sl@0
  6298
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  6299
sl@0
  6300
	// Get Controllers 
sl@0
  6301
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6302
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6303
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6304
sl@0
  6305
	//---------------------//
sl@0
  6306
	// Method being Tested //
sl@0
  6307
	//---------------------//
sl@0
  6308
	RMMFFormatImplInfoArray controllersRecordFormats = controllers[0]->RecordFormats();
sl@0
  6309
	INFO_PRINTF2(_L("Number of Record Formats: %d"),controllersRecordFormats.Count());
sl@0
  6310
sl@0
  6311
	TUid formatUid = controllersRecordFormats[0]->Uid();
sl@0
  6312
sl@0
  6313
	if (formatUid == KMmfUidFormatPAVWriteUid  || 
sl@0
  6314
		formatUid == KMmfUidFormatFAWWriteUid ||
sl@0
  6315
		formatUid == KMmfUidFormatAIWriteUid)
sl@0
  6316
		{
sl@0
  6317
		verdict = EPass;
sl@0
  6318
		}
sl@0
  6319
	else
sl@0
  6320
		{
sl@0
  6321
		verdict = EFail;
sl@0
  6322
		}
sl@0
  6323
	//--------------------//
sl@0
  6324
sl@0
  6325
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6326
sl@0
  6327
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6328
	controller1.Close();
sl@0
  6329
sl@0
  6330
	if (error)
sl@0
  6331
		{
sl@0
  6332
		verdict = EFail;
sl@0
  6333
		}
sl@0
  6334
sl@0
  6335
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6336
	__MM_HEAP_MARKEND;
sl@0
  6337
sl@0
  6338
	return verdict;
sl@0
  6339
	}
sl@0
  6340
sl@0
  6341
//------------------------------------------------------------
sl@0
  6342
sl@0
  6343
CTestStep_MMF_CTLFRM_U_0197::CTestStep_MMF_CTLFRM_U_0197()
sl@0
  6344
	/** Constructor
sl@0
  6345
	*/
sl@0
  6346
	{
sl@0
  6347
	// store the name of this test case
sl@0
  6348
	// this is the name that is used by the script file
sl@0
  6349
	// Each test step initialises it's own name
sl@0
  6350
	iTestStepName = _L("MM-MMF-CTLFRM-U-0197");
sl@0
  6351
sl@0
  6352
	
sl@0
  6353
	}
sl@0
  6354
sl@0
  6355
TVerdict CTestStep_MMF_CTLFRM_U_0197::DoTestStepL( void )
sl@0
  6356
/** As TSU_MMF_CTLFRM_U_0140
sl@0
  6357
sl@0
  6358
 * Use case: N/A
sl@0
  6359
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6360
 */
sl@0
  6361
	{
sl@0
  6362
	
sl@0
  6363
	_LIT8(KExpectedText, "rtsp");
sl@0
  6364
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6365
	__MM_HEAP_MARK;
sl@0
  6366
sl@0
  6367
	TVerdict verdict = EPass;
sl@0
  6368
sl@0
  6369
	TMMFPrioritySettings settings;
sl@0
  6370
	TInt error = KErrNone;
sl@0
  6371
	RMMFController controller1;
sl@0
  6372
sl@0
  6373
	settings.iPriority = 1;
sl@0
  6374
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6375
	settings.iState = EMMFStateIdle;
sl@0
  6376
sl@0
  6377
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6378
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6379
sl@0
  6380
	// Set the format match data
sl@0
  6381
	fSelect->SetMatchToUriSupportL(_L("rtsp://www.symbian.com/first/test/directory/test.rm"));
sl@0
  6382
	
sl@0
  6383
	// Set the controller plugin play format match data
sl@0
  6384
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6385
sl@0
  6386
	// Get Controllers 
sl@0
  6387
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6388
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6389
	cSelect->ListImplementationsL(controllers);  // Populates the array with all the suitable controllers
sl@0
  6390
sl@0
  6391
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6392
sl@0
  6393
	//---------------------//
sl@0
  6394
	// Method being Tested //
sl@0
  6395
	//---------------------//
sl@0
  6396
	const CDesC8Array* uriSchemes = &controllers[0]->SupportedUriSchemes();
sl@0
  6397
sl@0
  6398
	if (uriSchemes->Count() > 0)
sl@0
  6399
    	{
sl@0
  6400
		TPtrC8 ptrC;
sl@0
  6401
		ptrC.Set(uriSchemes->MdcaPoint(0));
sl@0
  6402
		
sl@0
  6403
		if (ptrC.Compare(KExpectedText)==0)
sl@0
  6404
			{
sl@0
  6405
			verdict = EPass;
sl@0
  6406
			}
sl@0
  6407
		else
sl@0
  6408
			{
sl@0
  6409
			verdict = EFail;
sl@0
  6410
			}
sl@0
  6411
    	}
sl@0
  6412
sl@0
  6413
	//--------------------//
sl@0
  6414
sl@0
  6415
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6416
	controller1.Close();
sl@0
  6417
sl@0
  6418
	if (error)
sl@0
  6419
		{
sl@0
  6420
		verdict = EFail;
sl@0
  6421
		}
sl@0
  6422
		
sl@0
  6423
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6424
	__MM_HEAP_MARKEND;
sl@0
  6425
sl@0
  6426
	return verdict;
sl@0
  6427
	}
sl@0
  6428
	
sl@0
  6429
		
sl@0
  6430
	
sl@0
  6431
//------------------------------------------------------------
sl@0
  6432
sl@0
  6433
sl@0
  6434
sl@0
  6435
//---------------------------------------------------------------
sl@0
  6436
sl@0
  6437
CTestStep_MMF_CTLFRM_U_0152::CTestStep_MMF_CTLFRM_U_0152()
sl@0
  6438
	/** Constructor
sl@0
  6439
	*/
sl@0
  6440
	{
sl@0
  6441
	// store the name of this test case
sl@0
  6442
	// this is the name that is used by the script file
sl@0
  6443
	// Each test step initialises it's own name
sl@0
  6444
	iTestStepName = _L("MM-MMF-CTLFRM-U-0152");
sl@0
  6445
	}
sl@0
  6446
sl@0
  6447
sl@0
  6448
sl@0
  6449
sl@0
  6450
sl@0
  6451
sl@0
  6452
TVerdict CTestStep_MMF_CTLFRM_U_0152::DoTestStepL( void )
sl@0
  6453
/** 
sl@0
  6454
 * Call the RMMFController::Open(..) for a number of controllers and determine what Heap size has been allocated.
sl@0
  6455
 *
sl@0
  6456
 * This test needs access to the private member iSubThread in RMMFControllerProxy. To achieve this,
sl@0
  6457
 * private has been #defined to public oprior to including MmfControllerFramework.h and them #undef.
sl@0
  6458
 * This avoided the use of a friend declaration, but may later result in a maintenance problem.
sl@0
  6459
 *
sl@0
  6460
 * Test for fix to INC038123
sl@0
  6461
 */
sl@0
  6462
	{
sl@0
  6463
sl@0
  6464
	INFO_PRINTF1(_L("The test step is not available on EKA2 - Skipping test!"));
sl@0
  6465
	return EPass;
sl@0
  6466
sl@0
  6467
	}
sl@0
  6468
sl@0
  6469
sl@0
  6470
//---------------------------------------------------------------
sl@0
  6471
sl@0
  6472
CTestStep_MMF_CTLFRM_U_0160::CTestStep_MMF_CTLFRM_U_0160()
sl@0
  6473
	/** Constructor
sl@0
  6474
	*/
sl@0
  6475
	{
sl@0
  6476
	// store the name of this test case
sl@0
  6477
	// this is the name that is used by the script file
sl@0
  6478
	// Each test step initialises it's own name
sl@0
  6479
	iTestStepName = _L("MM-MMF-CTLFRM-U-0160");
sl@0
  6480
sl@0
  6481
	
sl@0
  6482
	}
sl@0
  6483
sl@0
  6484
TVerdict CTestStep_MMF_CTLFRM_U_0160::DoTestStepL( void )
sl@0
  6485
/** 
sl@0
  6486
 * Use case: N/A
sl@0
  6487
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6488
 */
sl@0
  6489
	{
sl@0
  6490
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6491
	__MM_HEAP_MARK;
sl@0
  6492
sl@0
  6493
	TVerdict verdict = EPass;
sl@0
  6494
	_LIT8(KExpectedText, ".ai");
sl@0
  6495
	
sl@0
  6496
sl@0
  6497
	TMMFPrioritySettings settings;
sl@0
  6498
	TInt error = KErrNone;
sl@0
  6499
	RMMFController controller1;
sl@0
  6500
sl@0
  6501
	settings.iPriority = 1;
sl@0
  6502
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6503
	settings.iState = EMMFStateIdle;
sl@0
  6504
sl@0
  6505
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6506
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6507
sl@0
  6508
	// Set the format match data
sl@0
  6509
	fSelect->SetMatchToFileNameL(_L("test.ai"));
sl@0
  6510
sl@0
  6511
sl@0
  6512
	// Set the controller plugin play format match data
sl@0
  6513
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  6514
sl@0
  6515
	// Get Controllers 
sl@0
  6516
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6517
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6518
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6519
	if (controllers.Count() > 0 )
sl@0
  6520
		{
sl@0
  6521
		RMMFFormatImplInfoArray controllersRecordFormats = controllers[0]->RecordFormats();
sl@0
  6522
		INFO_PRINTF2(_L("Number of Record Formats: %d"),controllersRecordFormats.Count());
sl@0
  6523
		for (TInt recordFormatCount = 0;recordFormatCount < controllersRecordFormats.Count();recordFormatCount++)
sl@0
  6524
			{
sl@0
  6525
			//---------------------//
sl@0
  6526
			// Method being Tested //
sl@0
  6527
			const CDesC8Array* fileExtensions = &controllersRecordFormats[recordFormatCount]->SupportedFileExtensions();
sl@0
  6528
			//---------------------//
sl@0
  6529
		 	if (fileExtensions->Count() > 0)
sl@0
  6530
            	{
sl@0
  6531
				TPtrC8 ptrC;
sl@0
  6532
				ptrC.Set(fileExtensions->MdcaPoint(0));
sl@0
  6533
				if (ptrC.Compare(KExpectedText)==0)
sl@0
  6534
					{
sl@0
  6535
					verdict = EPass;
sl@0
  6536
					break;
sl@0
  6537
					}
sl@0
  6538
				else
sl@0
  6539
					{
sl@0
  6540
					verdict = EFail;
sl@0
  6541
					}
sl@0
  6542
            	}
sl@0
  6543
			}	
sl@0
  6544
		}
sl@0
  6545
	else
sl@0
  6546
		{
sl@0
  6547
		verdict = EFail;
sl@0
  6548
		}
sl@0
  6549
	if (controllers.Count() >0)//if loop added so that it will enter into loop only if Controller count >0
sl@0
  6550
		{
sl@0
  6551
		User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6552
		controller1.Close();
sl@0
  6553
		}
sl@0
  6554
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6555
	if (error)
sl@0
  6556
		{
sl@0
  6557
		verdict = EFail;
sl@0
  6558
		}
sl@0
  6559
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6560
	__MM_HEAP_MARKEND;
sl@0
  6561
	return verdict;
sl@0
  6562
	}
sl@0
  6563
sl@0
  6564
//---------------------------------------------------------------
sl@0
  6565
sl@0
  6566
sl@0
  6567
sl@0
  6568
CTestStep_MMF_CTLFRM_U_0161::CTestStep_MMF_CTLFRM_U_0161()
sl@0
  6569
	/** Constructor
sl@0
  6570
	*/
sl@0
  6571
	{
sl@0
  6572
	// store the name of this test case
sl@0
  6573
	// this is the name that is used by the script file
sl@0
  6574
	// Each test step initialises it's own name
sl@0
  6575
	iTestStepName = _L("MM-MMF-CTLFRM-U-0161");
sl@0
  6576
sl@0
  6577
	
sl@0
  6578
	}
sl@0
  6579
sl@0
  6580
TVerdict CTestStep_MMF_CTLFRM_U_0161::DoTestStepL( void )
sl@0
  6581
/** 
sl@0
  6582
 * Use case: N/A
sl@0
  6583
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6584
 */
sl@0
  6585
	{
sl@0
  6586
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6587
	__MM_HEAP_MARK;
sl@0
  6588
sl@0
  6589
	TVerdict verdict = EPass;
sl@0
  6590
	_LIT8(KExpectedText,"audio/mbeg");
sl@0
  6591
sl@0
  6592
	TMMFPrioritySettings settings;
sl@0
  6593
	TInt error = KErrNone;
sl@0
  6594
	RMMFController controller1;
sl@0
  6595
sl@0
  6596
	settings.iPriority = 1;
sl@0
  6597
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6598
	settings.iState = EMMFStateIdle;
sl@0
  6599
sl@0
  6600
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6601
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6602
sl@0
  6603
	// Set the format match data
sl@0
  6604
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  6605
sl@0
  6606
	// Set the controller plugin play format match data
sl@0
  6607
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6608
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  6609
sl@0
  6610
	// Get Controllers 
sl@0
  6611
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6612
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6613
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6614
sl@0
  6615
	if (controllers.Count() > 0)
sl@0
  6616
		{
sl@0
  6617
		RMMFFormatImplInfoArray controllersPlayFormats = controllers[0]->PlayFormats();
sl@0
  6618
		INFO_PRINTF2(_L("Number of Play Formats: %d"),controllersPlayFormats.Count());
sl@0
  6619
sl@0
  6620
		if (controllersPlayFormats.Count() > 0)
sl@0
  6621
			{
sl@0
  6622
			//---------------------//
sl@0
  6623
			// Method being Tested //
sl@0
  6624
			const CDesC8Array* mimeTypes = &controllersPlayFormats[1]->SupportedMimeTypes();
sl@0
  6625
			//---------------------//
sl@0
  6626
	
sl@0
  6627
			if (mimeTypes->Count() <= 0)
sl@0
  6628
				{
sl@0
  6629
				verdict = EFail;
sl@0
  6630
				}
sl@0
  6631
			else
sl@0
  6632
				{
sl@0
  6633
				TPtrC8 ptrC;
sl@0
  6634
				ptrC.Set(mimeTypes->MdcaPoint(0));
sl@0
  6635
				if (ptrC.Compare(KExpectedText) == 0)
sl@0
  6636
					{
sl@0
  6637
					verdict = EPass;
sl@0
  6638
					}
sl@0
  6639
				else
sl@0
  6640
					{
sl@0
  6641
					verdict = EFail;
sl@0
  6642
					}
sl@0
  6643
				}
sl@0
  6644
			}
sl@0
  6645
		else
sl@0
  6646
			{
sl@0
  6647
			verdict = EFail;
sl@0
  6648
			}
sl@0
  6649
		}
sl@0
  6650
	else
sl@0
  6651
		{
sl@0
  6652
		verdict = EFail;
sl@0
  6653
		}
sl@0
  6654
sl@0
  6655
sl@0
  6656
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6657
sl@0
  6658
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6659
	controller1.Close();
sl@0
  6660
sl@0
  6661
	if (error)
sl@0
  6662
		{
sl@0
  6663
		verdict = EFail;
sl@0
  6664
		}
sl@0
  6665
sl@0
  6666
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6667
	__MM_HEAP_MARKEND;
sl@0
  6668
sl@0
  6669
	return verdict;
sl@0
  6670
	}
sl@0
  6671
sl@0
  6672
//---------------------------------------------------------------
sl@0
  6673
sl@0
  6674
sl@0
  6675
CTestStep_MMF_CTLFRM_U_0162::CTestStep_MMF_CTLFRM_U_0162()
sl@0
  6676
	/** Constructor
sl@0
  6677
	*/
sl@0
  6678
	{
sl@0
  6679
	// store the name of this test case
sl@0
  6680
	// this is the name that is used by the script file
sl@0
  6681
	// Each test step initialises it's own name
sl@0
  6682
	iTestStepName = _L("MM-MMF-CTLFRM-U-0162");
sl@0
  6683
sl@0
  6684
	
sl@0
  6685
	}
sl@0
  6686
sl@0
  6687
TVerdict CTestStep_MMF_CTLFRM_U_0162::DoTestStepL( void )
sl@0
  6688
/** 
sl@0
  6689
 * Use case: N/A
sl@0
  6690
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6691
 */
sl@0
  6692
	{
sl@0
  6693
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6694
	__MM_HEAP_MARK;
sl@0
  6695
sl@0
  6696
	TVerdict verdict = EPass;
sl@0
  6697
	_LIT8(KExpectedText, "RIFF????PAVE");
sl@0
  6698
sl@0
  6699
	TMMFPrioritySettings settings;
sl@0
  6700
	TInt error = KErrNone;
sl@0
  6701
	RMMFController controller1;
sl@0
  6702
sl@0
  6703
	settings.iPriority = 1;
sl@0
  6704
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6705
	settings.iState = EMMFStateIdle;
sl@0
  6706
sl@0
  6707
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6708
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6709
sl@0
  6710
	// Set the format match data
sl@0
  6711
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  6712
sl@0
  6713
	// Set the controller plugin play format match data
sl@0
  6714
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6715
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  6716
sl@0
  6717
	// Get Controllers 
sl@0
  6718
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6719
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6720
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6721
sl@0
  6722
	//---------------------//
sl@0
  6723
	// Method being Tested //
sl@0
  6724
	//---------------------//
sl@0
  6725
	RMMFFormatImplInfoArray controllersPlayFormats = controllers[0]->PlayFormats();
sl@0
  6726
	INFO_PRINTF2(_L("Number of Play Formats: %d"),controllersPlayFormats.Count());
sl@0
  6727
sl@0
  6728
	if (controllersPlayFormats.Count() > 0)
sl@0
  6729
		{
sl@0
  6730
		//---------------------//
sl@0
  6731
		// Method being Tested //
sl@0
  6732
		const CDesC8Array* headerData = &controllersPlayFormats[0]->SupportedHeaderData();
sl@0
  6733
		//---------------------//
sl@0
  6734
sl@0
  6735
		if (headerData->Count() <= 0)
sl@0
  6736
			{
sl@0
  6737
			verdict = EFail;
sl@0
  6738
			}
sl@0
  6739
		else
sl@0
  6740
			{
sl@0
  6741
			TPtrC8 ptrC;
sl@0
  6742
			ptrC.Set(headerData->MdcaPoint(0));
sl@0
  6743
			if (ptrC.Compare(KExpectedText)==0)
sl@0
  6744
				{
sl@0
  6745
				verdict = EPass;
sl@0
  6746
				}
sl@0
  6747
			else
sl@0
  6748
				{
sl@0
  6749
				verdict = EFail;
sl@0
  6750
				}
sl@0
  6751
			}
sl@0
  6752
		}
sl@0
  6753
	else
sl@0
  6754
		{
sl@0
  6755
		verdict = EFail;
sl@0
  6756
		}
sl@0
  6757
sl@0
  6758
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6759
sl@0
  6760
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6761
	controller1.Close();
sl@0
  6762
sl@0
  6763
	if (error)
sl@0
  6764
		{
sl@0
  6765
		verdict = EFail;
sl@0
  6766
		}
sl@0
  6767
sl@0
  6768
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6769
	__MM_HEAP_MARKEND;
sl@0
  6770
sl@0
  6771
	return verdict;
sl@0
  6772
	}
sl@0
  6773
sl@0
  6774
//---------------------------------------------------------------
sl@0
  6775
sl@0
  6776
sl@0
  6777
CTestStep_MMF_CTLFRM_U_0163::CTestStep_MMF_CTLFRM_U_0163()
sl@0
  6778
	/** Constructor
sl@0
  6779
	*/
sl@0
  6780
	{
sl@0
  6781
	// store the name of this test case
sl@0
  6782
	// this is the name that is used by the script file
sl@0
  6783
	// Each test step initialises it's own name
sl@0
  6784
	iTestStepName = _L("MM-MMF-CTLFRM-U-0163");
sl@0
  6785
sl@0
  6786
	
sl@0
  6787
	}
sl@0
  6788
sl@0
  6789
TVerdict CTestStep_MMF_CTLFRM_U_0163::DoTestStepL( void )
sl@0
  6790
/** 
sl@0
  6791
 * Use case: N/A
sl@0
  6792
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6793
 */
sl@0
  6794
	{
sl@0
  6795
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6796
	__MM_HEAP_MARK;
sl@0
  6797
sl@0
  6798
	TVerdict verdict = EPass;
sl@0
  6799
	_LIT8(KExpectedText, ".ai");
sl@0
  6800
sl@0
  6801
	TMMFPrioritySettings settings;
sl@0
  6802
	TInt error = KErrNone;
sl@0
  6803
	RMMFController controller1;
sl@0
  6804
sl@0
  6805
	settings.iPriority = 1;
sl@0
  6806
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6807
	settings.iState = EMMFStateIdle;
sl@0
  6808
sl@0
  6809
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6810
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6811
sl@0
  6812
	// Set the format match data
sl@0
  6813
	fSelect->SetMatchToFileNameL(_L("test.ai"));
sl@0
  6814
sl@0
  6815
	// Set the controller plugin play format match data
sl@0
  6816
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  6817
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  6818
sl@0
  6819
	// Get Controllers 
sl@0
  6820
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6821
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6822
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6823
	if (controllers.Count() > 0)
sl@0
  6824
		{
sl@0
  6825
		//---------------------//
sl@0
  6826
		// Method being Tested //
sl@0
  6827
		//---------------------//
sl@0
  6828
		RMMFFormatImplInfoArray controllersRecordFormats = controllers[0]->RecordFormats();
sl@0
  6829
		INFO_PRINTF2(_L("Number of Record Formats: %d"),controllersRecordFormats.Count());
sl@0
  6830
		TBufC8<32> bufC8Expected;
sl@0
  6831
		bufC8Expected = KExpectedText;
sl@0
  6832
		for (TInt recordFormatCount=0;recordFormatCount<controllersRecordFormats.Count();recordFormatCount++)
sl@0
  6833
			{
sl@0
  6834
			TBool fileExtensionSupported = controllersRecordFormats[recordFormatCount]->SupportsFileExtension(bufC8Expected);
sl@0
  6835
			if (fileExtensionSupported)
sl@0
  6836
				{
sl@0
  6837
				verdict = EPass;
sl@0
  6838
				break;
sl@0
  6839
				}
sl@0
  6840
			else if (!fileExtensionSupported)
sl@0
  6841
				{
sl@0
  6842
				verdict = EFail;
sl@0
  6843
				}
sl@0
  6844
			}
sl@0
  6845
		}
sl@0
  6846
	else
sl@0
  6847
		{
sl@0
  6848
		verdict = EFail;
sl@0
  6849
		}
sl@0
  6850
sl@0
  6851
	if (controllers.Count() >0) //if loop added so that it will enter into loop only if Controller count >0
sl@0
  6852
		{
sl@0
  6853
		User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6854
		controller1.Close();
sl@0
  6855
		}
sl@0
  6856
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6857
	if (error)
sl@0
  6858
		{
sl@0
  6859
		verdict = EFail;
sl@0
  6860
		}
sl@0
  6861
sl@0
  6862
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6863
	__MM_HEAP_MARKEND;
sl@0
  6864
sl@0
  6865
	return verdict;
sl@0
  6866
	}
sl@0
  6867
sl@0
  6868
//---------------------------------------------------------------
sl@0
  6869
sl@0
  6870
sl@0
  6871
sl@0
  6872
CTestStep_MMF_CTLFRM_U_0164::CTestStep_MMF_CTLFRM_U_0164()
sl@0
  6873
	/** Constructor
sl@0
  6874
	*/
sl@0
  6875
	{
sl@0
  6876
	// store the name of this test case
sl@0
  6877
	// this is the name that is used by the script file
sl@0
  6878
	// Each test step initialises it's own name
sl@0
  6879
	iTestStepName = _L("MM-MMF-CTLFRM-U-0164");
sl@0
  6880
sl@0
  6881
	
sl@0
  6882
	}
sl@0
  6883
sl@0
  6884
TVerdict CTestStep_MMF_CTLFRM_U_0164::DoTestStepL( void )
sl@0
  6885
/** 
sl@0
  6886
 * Use case: N/A
sl@0
  6887
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6888
 */
sl@0
  6889
	{
sl@0
  6890
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6891
	__MM_HEAP_MARK;
sl@0
  6892
sl@0
  6893
	TVerdict verdict = EPass;
sl@0
  6894
	_LIT8(KExpectedText, "audio/mbeg");
sl@0
  6895
sl@0
  6896
	TMMFPrioritySettings settings;
sl@0
  6897
	TInt error = KErrNone;
sl@0
  6898
	RMMFController controller1;
sl@0
  6899
sl@0
  6900
	settings.iPriority = 1;
sl@0
  6901
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6902
	settings.iState = EMMFStateIdle;
sl@0
  6903
sl@0
  6904
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6905
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6906
sl@0
  6907
	// Set the format match data
sl@0
  6908
	fSelect->SetMatchToFileNameL(_L("test.mp3"));
sl@0
  6909
sl@0
  6910
	// Set the controller plugin play format match data
sl@0
  6911
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  6912
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  6913
sl@0
  6914
	// Get Controllers 
sl@0
  6915
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  6916
	CleanupResetAndDestroyPushL(controllers);
sl@0
  6917
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  6918
sl@0
  6919
	//---------------------//
sl@0
  6920
	// Method being Tested //
sl@0
  6921
	//---------------------//
sl@0
  6922
	RMMFFormatImplInfoArray controllersPlayFormats = controllers[0]->PlayFormats();
sl@0
  6923
	INFO_PRINTF2(_L("Number of Play Formats: %d"),controllersPlayFormats.Count());
sl@0
  6924
sl@0
  6925
	if (controllersPlayFormats.Count() > 0)
sl@0
  6926
		{
sl@0
  6927
		TBufC8<32> bufC8Expected;
sl@0
  6928
		bufC8Expected = KExpectedText;
sl@0
  6929
		//---------------------//
sl@0
  6930
		// Method being Tested //
sl@0
  6931
		TBool mimeTypeSupported = controllersPlayFormats[1]->SupportsMimeType(bufC8Expected);
sl@0
  6932
		//---------------------//
sl@0
  6933
sl@0
  6934
		if (!mimeTypeSupported)
sl@0
  6935
			{
sl@0
  6936
			verdict = EFail;
sl@0
  6937
			}
sl@0
  6938
		}
sl@0
  6939
	else
sl@0
  6940
		{
sl@0
  6941
		verdict = EFail;
sl@0
  6942
		}
sl@0
  6943
sl@0
  6944
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  6945
sl@0
  6946
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  6947
	controller1.Close();
sl@0
  6948
sl@0
  6949
	if (error)
sl@0
  6950
		{
sl@0
  6951
		verdict = EFail;
sl@0
  6952
		}
sl@0
  6953
sl@0
  6954
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  6955
	__MM_HEAP_MARKEND;
sl@0
  6956
sl@0
  6957
	return verdict;
sl@0
  6958
	}
sl@0
  6959
sl@0
  6960
//---------------------------------------------------------------
sl@0
  6961
sl@0
  6962
sl@0
  6963
CTestStep_MMF_CTLFRM_U_0165::CTestStep_MMF_CTLFRM_U_0165()
sl@0
  6964
	/** Constructor
sl@0
  6965
	*/
sl@0
  6966
	{
sl@0
  6967
	// store the name of this test case
sl@0
  6968
	// this is the name that is used by the script file
sl@0
  6969
	// Each test step initialises it's own name
sl@0
  6970
	iTestStepName = _L("MM-MMF-CTLFRM-U-0165");
sl@0
  6971
sl@0
  6972
	
sl@0
  6973
	}
sl@0
  6974
sl@0
  6975
TVerdict CTestStep_MMF_CTLFRM_U_0165::DoTestStepL( void )
sl@0
  6976
/** 
sl@0
  6977
 * Use case: N/A
sl@0
  6978
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  6979
 */
sl@0
  6980
	{
sl@0
  6981
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  6982
	__MM_HEAP_MARK;
sl@0
  6983
sl@0
  6984
	TVerdict verdict = EPass;
sl@0
  6985
	_LIT8(KExpectedText, "RIFF????PAVE");
sl@0
  6986
sl@0
  6987
	TMMFPrioritySettings settings;
sl@0
  6988
	TInt error = KErrNone;
sl@0
  6989
	RMMFController controller1;
sl@0
  6990
sl@0
  6991
	settings.iPriority = 1;
sl@0
  6992
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  6993
	settings.iState = EMMFStateIdle;
sl@0
  6994
sl@0
  6995
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  6996
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  6997
sl@0
  6998
	// Set the format match data
sl@0
  6999
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7000
sl@0
  7001
	// Set the controller plugin play format match data
sl@0
  7002
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7003
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7004
sl@0
  7005
	// Get Controllers 
sl@0
  7006
	RMMFControllerImplInfoArray controllers; // Array to hold all the controllers support the match data
sl@0
  7007
	CleanupResetAndDestroyPushL(controllers);
sl@0
  7008
	cSelect->ListImplementationsL(controllers); // Populates the array with all the suitable controllers
sl@0
  7009
sl@0
  7010
	//---------------------//
sl@0
  7011
	// Method being Tested //
sl@0
  7012
	//---------------------//
sl@0
  7013
	RMMFFormatImplInfoArray controllersPlayFormats = controllers[0]->PlayFormats();
sl@0
  7014
	INFO_PRINTF2(_L("Number of Play Formats: %d"),controllersPlayFormats.Count());
sl@0
  7015
sl@0
  7016
	if (controllersPlayFormats.Count() > 0)
sl@0
  7017
		{
sl@0
  7018
		TBufC8<32> bufC8Expected;
sl@0
  7019
		bufC8Expected = KExpectedText;
sl@0
  7020
		//---------------------//
sl@0
  7021
		// Method being Tested //
sl@0
  7022
		TBool headerDataSupported = controllersPlayFormats[0]->SupportsHeaderDataL(bufC8Expected);
sl@0
  7023
		//---------------------//
sl@0
  7024
sl@0
  7025
		if (!headerDataSupported)
sl@0
  7026
			{
sl@0
  7027
			verdict = EFail;
sl@0
  7028
			}
sl@0
  7029
		}
sl@0
  7030
	else
sl@0
  7031
		{
sl@0
  7032
		verdict = EFail;
sl@0
  7033
		}
sl@0
  7034
sl@0
  7035
	User::LeaveIfError(error = controller1.Open(controllers[0]->Uid(), settings)); // iinstantiate the controller
sl@0
  7036
sl@0
  7037
	CleanupStack::PopAndDestroy(3);//controllers, fSelect, cSelect
sl@0
  7038
	controller1.Close();
sl@0
  7039
sl@0
  7040
	if (error)
sl@0
  7041
		{
sl@0
  7042
		verdict = EFail;
sl@0
  7043
		}
sl@0
  7044
sl@0
  7045
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7046
	__MM_HEAP_MARKEND;
sl@0
  7047
sl@0
  7048
	return verdict;
sl@0
  7049
	}
sl@0
  7050
sl@0
  7051
//---------------------------------------------------------------
sl@0
  7052
sl@0
  7053
sl@0
  7054
sl@0
  7055
CTestStep_MMF_CTLFRM_U_0170::CTestStep_MMF_CTLFRM_U_0170()
sl@0
  7056
	/** Constructor
sl@0
  7057
	*/
sl@0
  7058
	{
sl@0
  7059
	// store the name of this test case
sl@0
  7060
	// this is the name that is used by the script file
sl@0
  7061
	// Each test step initialises it's own name
sl@0
  7062
	iTestStepName = _L("MM-MMF-CTLFRM-U-0170");
sl@0
  7063
sl@0
  7064
	
sl@0
  7065
	}
sl@0
  7066
sl@0
  7067
TVerdict CTestStep_MMF_CTLFRM_U_0170::DoTestStepL( void )
sl@0
  7068
/** 
sl@0
  7069
 * Use case: N/A
sl@0
  7070
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  7071
 */
sl@0
  7072
	{
sl@0
  7073
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7074
	__MM_HEAP_MARK;
sl@0
  7075
sl@0
  7076
	TVerdict verdict = EPass;
sl@0
  7077
//	TMMFPrioritySettings settings;					//EABI warning removal
sl@0
  7078
sl@0
  7079
//	settings.iPriority = 1;
sl@0
  7080
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7081
//	settings.iState = EMMFStateIdle;
sl@0
  7082
sl@0
  7083
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7084
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7085
sl@0
  7086
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7087
sl@0
  7088
	// Set the format match data
sl@0
  7089
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7090
sl@0
  7091
	// Set the controller plugin play format match data
sl@0
  7092
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7093
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7094
sl@0
  7095
sl@0
  7096
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7097
sl@0
  7098
	//---------------------//
sl@0
  7099
	// Method being Tested //
sl@0
  7100
	//---------------------//
sl@0
  7101
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7102
	//---------------------//
sl@0
  7103
	
sl@0
  7104
	// Get Encode Format(s)
sl@0
  7105
	RMMFFormatImplInfoArray formats;
sl@0
  7106
	CleanupResetAndDestroyPushL(formats);
sl@0
  7107
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7108
sl@0
  7109
sl@0
  7110
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7111
	TUid formatUid;
sl@0
  7112
	formatUid = formats[0]->Uid();	
sl@0
  7113
	if (formatUid == KMmfUidFormatPAVWriteUid)
sl@0
  7114
		{
sl@0
  7115
		verdict = EPass;
sl@0
  7116
		}
sl@0
  7117
	else
sl@0
  7118
		{
sl@0
  7119
		verdict = EFail;
sl@0
  7120
		}
sl@0
  7121
sl@0
  7122
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7123
sl@0
  7124
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7125
	__MM_HEAP_MARKEND;
sl@0
  7126
sl@0
  7127
	return verdict;
sl@0
  7128
	}
sl@0
  7129
sl@0
  7130
//---------------------------------------------------------------
sl@0
  7131
sl@0
  7132
CTestStep_MMF_CTLFRM_U_0171::CTestStep_MMF_CTLFRM_U_0171()
sl@0
  7133
	/** Constructor
sl@0
  7134
	*/
sl@0
  7135
	{
sl@0
  7136
	// store the name of this test case
sl@0
  7137
	// this is the name that is used by the script file
sl@0
  7138
	// Each test step initialises it's own name
sl@0
  7139
	iTestStepName = _L("MM-MMF-CTLFRM-U-0171");
sl@0
  7140
sl@0
  7141
	
sl@0
  7142
	}
sl@0
  7143
sl@0
  7144
TVerdict CTestStep_MMF_CTLFRM_U_0171::DoTestStepL( void )
sl@0
  7145
/** 
sl@0
  7146
 * Use case: N/A
sl@0
  7147
 * @test Req. 
sl@0
  7148
 */
sl@0
  7149
	{
sl@0
  7150
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7151
	__MM_HEAP_MARK;
sl@0
  7152
sl@0
  7153
	TVerdict verdict = EPass;
sl@0
  7154
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7155
sl@0
  7156
//	settings.iPriority = 1;
sl@0
  7157
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7158
//	settings.iState = EMMFStateIdle;
sl@0
  7159
sl@0
  7160
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7161
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7162
sl@0
  7163
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7164
sl@0
  7165
	// Set the format match data
sl@0
  7166
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7167
sl@0
  7168
	// Set the controller plugin play format match data
sl@0
  7169
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7170
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7171
sl@0
  7172
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7173
sl@0
  7174
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7175
sl@0
  7176
	//---------------------//
sl@0
  7177
	
sl@0
  7178
	// Get Encode Format(s)
sl@0
  7179
	RMMFFormatImplInfoArray formats;
sl@0
  7180
	CleanupResetAndDestroyPushL(formats);
sl@0
  7181
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7182
sl@0
  7183
sl@0
  7184
	RArray<TUid> mediaIds;
sl@0
  7185
sl@0
  7186
	//---------------------//
sl@0
  7187
	// Method being Tested //
sl@0
  7188
	//---------------------//
sl@0
  7189
	fEncodeSelect->SetMediaIdsL(mediaIds, CMMFPluginSelectionParameters::EAllowOnlySuppliedMediaIds);
sl@0
  7190
	//---------------------//
sl@0
  7191
sl@0
  7192
	TUid uid = {0x101FF9FF};
sl@0
  7193
sl@0
  7194
	if (mediaIds.Count() > 0)
sl@0
  7195
		{
sl@0
  7196
		if (mediaIds[0] == uid)
sl@0
  7197
			{
sl@0
  7198
			verdict = EPass;
sl@0
  7199
			}
sl@0
  7200
		}
sl@0
  7201
	else
sl@0
  7202
		{
sl@0
  7203
		verdict = EFail;
sl@0
  7204
		}
sl@0
  7205
sl@0
  7206
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7207
	TUid formatUid;
sl@0
  7208
	formatUid = formats[0]->Uid();	
sl@0
  7209
	if (formatUid == KMmfUidFormatPAVWriteUid)
sl@0
  7210
		{
sl@0
  7211
		verdict = EPass;
sl@0
  7212
		}
sl@0
  7213
	else
sl@0
  7214
		{
sl@0
  7215
		verdict = EFail;
sl@0
  7216
		}
sl@0
  7217
sl@0
  7218
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7219
sl@0
  7220
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7221
	__MM_HEAP_MARKEND;
sl@0
  7222
sl@0
  7223
	return verdict;
sl@0
  7224
	}
sl@0
  7225
sl@0
  7226
//---------------------------------------------------------------
sl@0
  7227
sl@0
  7228
sl@0
  7229
CTestStep_MMF_CTLFRM_U_0172::CTestStep_MMF_CTLFRM_U_0172()
sl@0
  7230
	/** Constructor
sl@0
  7231
	*/
sl@0
  7232
	{
sl@0
  7233
	// store the name of this test case
sl@0
  7234
	// this is the name that is used by the script file
sl@0
  7235
	// Each test step initialises it's own name
sl@0
  7236
	iTestStepName = _L("MM-MMF-CTLFRM-U-0172");
sl@0
  7237
sl@0
  7238
	
sl@0
  7239
	}
sl@0
  7240
sl@0
  7241
TVerdict CTestStep_MMF_CTLFRM_U_0172::DoTestStepL( void )
sl@0
  7242
/** 
sl@0
  7243
 * Use case: N/A
sl@0
  7244
 * @test Req. under test 
sl@0
  7245
 */
sl@0
  7246
	{
sl@0
  7247
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7248
	__MM_HEAP_MARK;
sl@0
  7249
sl@0
  7250
	TVerdict verdict = EPass;
sl@0
  7251
	_LIT(KExpectedText, "Symbian");
sl@0
  7252
sl@0
  7253
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7254
sl@0
  7255
//	settings.iPriority = 1;
sl@0
  7256
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7257
//	settings.iState = EMMFStateIdle;
sl@0
  7258
sl@0
  7259
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7260
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7261
sl@0
  7262
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7263
sl@0
  7264
	// Set the format match data
sl@0
  7265
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7266
sl@0
  7267
	// Set the controller plugin play format match data
sl@0
  7268
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7269
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7270
sl@0
  7271
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7272
sl@0
  7273
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7274
	//---------------------//
sl@0
  7275
	
sl@0
  7276
	// Get Encode Format(s)
sl@0
  7277
	RMMFFormatImplInfoArray formats;
sl@0
  7278
	CleanupResetAndDestroyPushL(formats);
sl@0
  7279
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7280
sl@0
  7281
	//---------------------//
sl@0
  7282
	// Method being Tested //
sl@0
  7283
	//---------------------//
sl@0
  7284
	TBufC<12> bufC = fEncodeSelect->PreferredSupplier();
sl@0
  7285
	//---------------------//
sl@0
  7286
sl@0
  7287
	if ((bufC == KExpectedText) && (verdict == EPass))
sl@0
  7288
		{
sl@0
  7289
		verdict = EPass;
sl@0
  7290
		}
sl@0
  7291
	else
sl@0
  7292
		{
sl@0
  7293
		verdict = EFail;
sl@0
  7294
		}
sl@0
  7295
sl@0
  7296
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7297
	TUid formatUid;
sl@0
  7298
	formatUid = formats[0]->Uid();	
sl@0
  7299
	if (formatUid == KMmfUidFormatPAVWriteUid && verdict == EPass)
sl@0
  7300
		{
sl@0
  7301
		verdict = EPass;
sl@0
  7302
		}
sl@0
  7303
	else
sl@0
  7304
		{
sl@0
  7305
		verdict = EFail;
sl@0
  7306
		}
sl@0
  7307
sl@0
  7308
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7309
sl@0
  7310
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7311
	__MM_HEAP_MARKEND;
sl@0
  7312
sl@0
  7313
	return verdict;
sl@0
  7314
	}
sl@0
  7315
sl@0
  7316
//---------------------------------------------------------------
sl@0
  7317
sl@0
  7318
sl@0
  7319
CTestStep_MMF_CTLFRM_U_0173::CTestStep_MMF_CTLFRM_U_0173()
sl@0
  7320
	/** Constructor
sl@0
  7321
	*/
sl@0
  7322
	{
sl@0
  7323
	// store the name of this test case
sl@0
  7324
	// this is the name that is used by the script file
sl@0
  7325
	// Each test step initialises it's own name
sl@0
  7326
	iTestStepName = _L("MM-MMF-CTLFRM-U-0173");
sl@0
  7327
sl@0
  7328
	
sl@0
  7329
	}
sl@0
  7330
sl@0
  7331
TVerdict CTestStep_MMF_CTLFRM_U_0173::DoTestStepL( void )
sl@0
  7332
/** 
sl@0
  7333
 * Use case: N/A
sl@0
  7334
 * @test Req. under test 
sl@0
  7335
 */
sl@0
  7336
	{
sl@0
  7337
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7338
	__MM_HEAP_MARK;
sl@0
  7339
sl@0
  7340
	TVerdict verdict = EPass;
sl@0
  7341
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7342
sl@0
  7343
//	settings.iPriority = 1;
sl@0
  7344
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7345
//	settings.iState = EMMFStateIdle;
sl@0
  7346
sl@0
  7347
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7348
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7349
sl@0
  7350
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7351
sl@0
  7352
	// Set the format match data
sl@0
  7353
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7354
sl@0
  7355
	// Set the controller plugin play format match data
sl@0
  7356
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7357
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7358
sl@0
  7359
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7360
sl@0
  7361
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7362
	//---------------------//
sl@0
  7363
	
sl@0
  7364
	// Get Encode Format(s)
sl@0
  7365
	RMMFFormatImplInfoArray formats;
sl@0
  7366
	CleanupResetAndDestroyPushL(formats);
sl@0
  7367
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7368
sl@0
  7369
	//---------------------//
sl@0
  7370
	// Method being Tested //
sl@0
  7371
	//---------------------//
sl@0
  7372
	if ((fEncodeSelect->PreferredSupplierMatchType() == CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned) && (verdict == EPass))
sl@0
  7373
		{
sl@0
  7374
		verdict = EPass;
sl@0
  7375
		}
sl@0
  7376
	else
sl@0
  7377
		{
sl@0
  7378
		verdict = EFail;
sl@0
  7379
		}
sl@0
  7380
	//---------------------//
sl@0
  7381
sl@0
  7382
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7383
	TUid formatUid;
sl@0
  7384
	formatUid = formats[0]->Uid();	
sl@0
  7385
	if (formatUid == KMmfUidFormatPAVWriteUid && verdict == EPass)
sl@0
  7386
		{
sl@0
  7387
		verdict = EPass;
sl@0
  7388
		}
sl@0
  7389
	else
sl@0
  7390
		{
sl@0
  7391
		verdict = EFail;
sl@0
  7392
		}
sl@0
  7393
sl@0
  7394
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7395
sl@0
  7396
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7397
	__MM_HEAP_MARKEND;
sl@0
  7398
sl@0
  7399
	return verdict;
sl@0
  7400
	}
sl@0
  7401
sl@0
  7402
//---------------------------------------------------------------
sl@0
  7403
sl@0
  7404
sl@0
  7405
CTestStep_MMF_CTLFRM_U_0174::CTestStep_MMF_CTLFRM_U_0174()
sl@0
  7406
	/** Constructor
sl@0
  7407
	*/
sl@0
  7408
	{
sl@0
  7409
	// store the name of this test case
sl@0
  7410
	// this is the name that is used by the script file
sl@0
  7411
	// Each test step initialises it's own name
sl@0
  7412
	iTestStepName = _L("MM-MMF-CTLFRM-U-0174");
sl@0
  7413
sl@0
  7414
	
sl@0
  7415
	}
sl@0
  7416
sl@0
  7417
TVerdict CTestStep_MMF_CTLFRM_U_0174::DoTestStepL( void )
sl@0
  7418
/** 
sl@0
  7419
 * Use case: N/A
sl@0
  7420
 * @test Req. under test 
sl@0
  7421
 */
sl@0
  7422
	{
sl@0
  7423
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7424
	__MM_HEAP_MARK;
sl@0
  7425
sl@0
  7426
	TVerdict verdict = EPass;
sl@0
  7427
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7428
sl@0
  7429
//	settings.iPriority = 1;
sl@0
  7430
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7431
//	settings.iState = EMMFStateIdle;
sl@0
  7432
sl@0
  7433
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7434
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7435
sl@0
  7436
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7437
sl@0
  7438
	// Set the format match data
sl@0
  7439
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7440
sl@0
  7441
	// Set the controller plugin play format match data
sl@0
  7442
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  7443
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7444
sl@0
  7445
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7446
sl@0
  7447
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7448
	//---------------------//
sl@0
  7449
	
sl@0
  7450
	// Get Encode Format(s)
sl@0
  7451
	RMMFFormatImplInfoArray formats;
sl@0
  7452
	CleanupResetAndDestroyPushL(formats);
sl@0
  7453
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7454
sl@0
  7455
	TUid testUid = {0x12345679};
sl@0
  7456
	RArray<TUid> mediaIdsToAdd;
sl@0
  7457
	mediaIdsToAdd.Append(testUid);
sl@0
  7458
sl@0
  7459
	fEncodeSelect->SetMediaIdsL(mediaIdsToAdd, CMMFPluginSelectionParameters::EAllowOtherMediaIds);
sl@0
  7460
sl@0
  7461
	//---------------------//
sl@0
  7462
	// Method being Tested //
sl@0
  7463
	//---------------------//
sl@0
  7464
	const RArray<TUid>& mediaIds = fEncodeSelect->MediaIds();
sl@0
  7465
	//---------------------//
sl@0
  7466
sl@0
  7467
	if (mediaIds.Count() > 0)
sl@0
  7468
		{
sl@0
  7469
		TUid uid = {0x12345679};
sl@0
  7470
sl@0
  7471
		if (mediaIds[0] == uid)
sl@0
  7472
			{
sl@0
  7473
			verdict = EPass;
sl@0
  7474
			}
sl@0
  7475
		else
sl@0
  7476
			{
sl@0
  7477
			verdict = EFail;
sl@0
  7478
			}
sl@0
  7479
		}
sl@0
  7480
	else
sl@0
  7481
		{
sl@0
  7482
		verdict = EFail;
sl@0
  7483
		}
sl@0
  7484
sl@0
  7485
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7486
	TUid formatUid;
sl@0
  7487
	formatUid = formats[0]->Uid();	
sl@0
  7488
	if (formatUid == KMmfUidFormatPAVWriteUid && verdict == EPass)
sl@0
  7489
		{
sl@0
  7490
		verdict = EPass;
sl@0
  7491
		}
sl@0
  7492
	else
sl@0
  7493
		{
sl@0
  7494
		verdict = EFail;
sl@0
  7495
		}
sl@0
  7496
sl@0
  7497
sl@0
  7498
	mediaIdsToAdd.Remove(0); // Remove otherwise TUid will be destroyed below and Panic.
sl@0
  7499
	mediaIdsToAdd.Close();
sl@0
  7500
sl@0
  7501
	CleanupStack::PopAndDestroy(4);// formats, fSelect, cSelect, fEncodeSelect
sl@0
  7502
sl@0
  7503
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7504
	__MM_HEAP_MARKEND;
sl@0
  7505
sl@0
  7506
	return verdict;
sl@0
  7507
	}
sl@0
  7508
sl@0
  7509
//---------------------------------------------------------------
sl@0
  7510
sl@0
  7511
CTestStep_MMF_CTLFRM_U_0175::CTestStep_MMF_CTLFRM_U_0175()
sl@0
  7512
	/** Constructor
sl@0
  7513
	*/
sl@0
  7514
	{
sl@0
  7515
	// store the name of this test case
sl@0
  7516
	// this is the name that is used by the script file
sl@0
  7517
	// Each test step initialises it's own name
sl@0
  7518
	iTestStepName = _L("MM-MMF-CTLFRM-U-0175");
sl@0
  7519
sl@0
  7520
	
sl@0
  7521
	}
sl@0
  7522
sl@0
  7523
TVerdict CTestStep_MMF_CTLFRM_U_0175::DoTestStepL( void )
sl@0
  7524
/** 
sl@0
  7525
 * Use case: N/A
sl@0
  7526
 * @test Req. under test 
sl@0
  7527
 */
sl@0
  7528
	{
sl@0
  7529
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7530
	__MM_HEAP_MARK;
sl@0
  7531
sl@0
  7532
	TVerdict verdict = EPass;
sl@0
  7533
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7534
sl@0
  7535
//	settings.iPriority = 1;
sl@0
  7536
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7537
//	settings.iState = EMMFStateIdle;
sl@0
  7538
sl@0
  7539
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7540
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7541
sl@0
  7542
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7543
sl@0
  7544
	// Set the format match data
sl@0
  7545
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7546
sl@0
  7547
	// Set the controller plugin play format match data
sl@0
  7548
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7549
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7550
sl@0
  7551
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7552
sl@0
  7553
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7554
	//---------------------//
sl@0
  7555
	
sl@0
  7556
	// Get Encode Format(s)
sl@0
  7557
	RMMFFormatImplInfoArray formats;
sl@0
  7558
	CleanupResetAndDestroyPushL(formats);
sl@0
  7559
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7560
sl@0
  7561
	//---------------------//
sl@0
  7562
	// Method being Tested //
sl@0
  7563
	//---------------------//
sl@0
  7564
	if ((fEncodeSelect->MediaIdMatchType() == CMMFPluginSelectionParameters::ENoMediaIdMatch) && (verdict == EPass))
sl@0
  7565
		{
sl@0
  7566
		verdict = EPass;
sl@0
  7567
		}
sl@0
  7568
	else
sl@0
  7569
		{
sl@0
  7570
		verdict = EFail;
sl@0
  7571
		}
sl@0
  7572
	//---------------------//
sl@0
  7573
sl@0
  7574
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7575
	TUid formatUid;
sl@0
  7576
	formatUid = formats[0]->Uid();	
sl@0
  7577
	if (formatUid == KMmfUidFormatPAVWriteUid && verdict == EPass)
sl@0
  7578
		{
sl@0
  7579
		verdict = EPass;
sl@0
  7580
		}
sl@0
  7581
	else
sl@0
  7582
		{
sl@0
  7583
		verdict = EFail;
sl@0
  7584
		}
sl@0
  7585
sl@0
  7586
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7587
sl@0
  7588
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7589
	__MM_HEAP_MARKEND;
sl@0
  7590
sl@0
  7591
	return verdict;
sl@0
  7592
	}
sl@0
  7593
sl@0
  7594
//---------------------------------------------------------------
sl@0
  7595
sl@0
  7596
CTestStep_MMF_CTLFRM_U_0176::CTestStep_MMF_CTLFRM_U_0176()
sl@0
  7597
	/** Constructor
sl@0
  7598
	*/
sl@0
  7599
	{
sl@0
  7600
	// store the name of this test case
sl@0
  7601
	// this is the name that is used by the script file
sl@0
  7602
	// Each test step initialises it's own name
sl@0
  7603
	iTestStepName = _L("MM-MMF-CTLFRM-U-0176");
sl@0
  7604
sl@0
  7605
	
sl@0
  7606
	}
sl@0
  7607
sl@0
  7608
TVerdict CTestStep_MMF_CTLFRM_U_0176::DoTestStepL( void )
sl@0
  7609
/** 
sl@0
  7610
 * Use case: N/A
sl@0
  7611
 * @test Req. under test 
sl@0
  7612
 */
sl@0
  7613
	{
sl@0
  7614
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7615
	__MM_HEAP_MARK;
sl@0
  7616
sl@0
  7617
	TVerdict verdict = EPass;
sl@0
  7618
//	TMMFPrioritySettings settings;		//EABI warning removal
sl@0
  7619
sl@0
  7620
//	settings.iPriority = 1;
sl@0
  7621
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7622
//	settings.iState = EMMFStateIdle;
sl@0
  7623
sl@0
  7624
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7625
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7626
sl@0
  7627
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7628
sl@0
  7629
	// Set the format match data
sl@0
  7630
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7631
sl@0
  7632
	// Set the controller plugin play format match data
sl@0
  7633
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7634
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7635
sl@0
  7636
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7637
sl@0
  7638
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7639
	//---------------------//
sl@0
  7640
	
sl@0
  7641
	// Get Encode Format(s)
sl@0
  7642
	RMMFFormatImplInfoArray formats;
sl@0
  7643
	CleanupResetAndDestroyPushL(formats);
sl@0
  7644
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7645
sl@0
  7646
	//---------------------//
sl@0
  7647
	// Method being Tested //
sl@0
  7648
	//---------------------//
sl@0
  7649
	TUid uid = fEncodeSelect->InterfaceUid();
sl@0
  7650
	//---------------------//
sl@0
  7651
sl@0
  7652
	if (uid == KMmfUidPluginInterfaceFormatEncodeUid)
sl@0
  7653
		{
sl@0
  7654
		verdict = EPass;
sl@0
  7655
		}
sl@0
  7656
	else
sl@0
  7657
		{
sl@0
  7658
		verdict = EFail;
sl@0
  7659
		}
sl@0
  7660
sl@0
  7661
sl@0
  7662
sl@0
  7663
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7664
	TUid formatUid;
sl@0
  7665
	formatUid = formats[0]->Uid();	
sl@0
  7666
	if (formatUid == KMmfUidFormatPAVWriteUid && verdict == EPass)
sl@0
  7667
		{
sl@0
  7668
		verdict = EPass;
sl@0
  7669
		}
sl@0
  7670
	else
sl@0
  7671
		{
sl@0
  7672
		verdict = EFail;
sl@0
  7673
		}
sl@0
  7674
sl@0
  7675
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7676
sl@0
  7677
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7678
	__MM_HEAP_MARKEND;
sl@0
  7679
sl@0
  7680
	return verdict;
sl@0
  7681
	}
sl@0
  7682
sl@0
  7683
//---------------------------------------------------------------
sl@0
  7684
sl@0
  7685
sl@0
  7686
sl@0
  7687
CTestStep_MMF_CTLFRM_U_0180::CTestStep_MMF_CTLFRM_U_0180()
sl@0
  7688
	/** Constructor
sl@0
  7689
	*/
sl@0
  7690
	{
sl@0
  7691
	// store the name of this test case
sl@0
  7692
	// this is the name that is used by the script file
sl@0
  7693
	// Each test step initialises it's own name
sl@0
  7694
	iTestStepName = _L("MM-MMF-CTLFRM-U-0180");
sl@0
  7695
sl@0
  7696
	
sl@0
  7697
	}
sl@0
  7698
sl@0
  7699
TVerdict CTestStep_MMF_CTLFRM_U_0180::DoTestStepL( void )
sl@0
  7700
/** 
sl@0
  7701
 * Use case: N/A
sl@0
  7702
 * @test Req. under test 
sl@0
  7703
 */
sl@0
  7704
	{
sl@0
  7705
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7706
	__MM_HEAP_MARK;
sl@0
  7707
sl@0
  7708
	TVerdict verdict = EPass;
sl@0
  7709
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7710
sl@0
  7711
//	settings.iPriority = 1;
sl@0
  7712
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7713
//	settings.iState = EMMFStateIdle;
sl@0
  7714
sl@0
  7715
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7716
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7717
sl@0
  7718
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7719
sl@0
  7720
	// Set the format match data
sl@0
  7721
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7722
sl@0
  7723
	// Set the controller plugin play format match data
sl@0
  7724
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7725
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7726
sl@0
  7727
sl@0
  7728
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7729
sl@0
  7730
	//---------------------//
sl@0
  7731
	// Method being Tested //
sl@0
  7732
	//---------------------//
sl@0
  7733
	fEncodeSelect->SetPreferredSupplierL(_L("Simbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7734
	//---------------------//
sl@0
  7735
	
sl@0
  7736
	// Get Encode Format(s)
sl@0
  7737
	RMMFFormatImplInfoArray formats;
sl@0
  7738
	CleanupResetAndDestroyPushL(formats);
sl@0
  7739
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7740
sl@0
  7741
sl@0
  7742
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  7743
	TUid formatUid;
sl@0
  7744
sl@0
  7745
	if (formats.Count() > 0)
sl@0
  7746
		{
sl@0
  7747
		formatUid = formats[0]->Uid();	
sl@0
  7748
		if (formatUid == KMmfUidFormatPAVWriteUid)
sl@0
  7749
			{
sl@0
  7750
			verdict = EFail;  // Wrong if correct ID occurs
sl@0
  7751
			}
sl@0
  7752
		else
sl@0
  7753
			{
sl@0
  7754
			verdict = EPass;
sl@0
  7755
			}
sl@0
  7756
		}
sl@0
  7757
	else
sl@0
  7758
		{
sl@0
  7759
		verdict = EPass;
sl@0
  7760
		}
sl@0
  7761
sl@0
  7762
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7763
sl@0
  7764
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7765
	__MM_HEAP_MARKEND;
sl@0
  7766
sl@0
  7767
	return verdict;
sl@0
  7768
	}
sl@0
  7769
sl@0
  7770
//---------------------------------------------------------------
sl@0
  7771
sl@0
  7772
CTestStep_MMF_CTLFRM_U_0181::CTestStep_MMF_CTLFRM_U_0181()
sl@0
  7773
	/** Constructor
sl@0
  7774
	*/
sl@0
  7775
	{
sl@0
  7776
	// store the name of this test case
sl@0
  7777
	// this is the name that is used by the script file
sl@0
  7778
	// Each test step initialises it's own name
sl@0
  7779
	iTestStepName = _L("MM-MMF-CTLFRM-U-0181");
sl@0
  7780
sl@0
  7781
	
sl@0
  7782
	}
sl@0
  7783
sl@0
  7784
TVerdict CTestStep_MMF_CTLFRM_U_0181::DoTestStepL( void )
sl@0
  7785
/** 
sl@0
  7786
 * Use case: N/A
sl@0
  7787
 * @test Req. under test 
sl@0
  7788
 */
sl@0
  7789
	{
sl@0
  7790
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7791
	__MM_HEAP_MARK;
sl@0
  7792
sl@0
  7793
	TVerdict verdict = EPass;
sl@0
  7794
sl@0
  7795
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7796
sl@0
  7797
//	settings.iPriority = 1;
sl@0
  7798
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7799
//	settings.iState = EMMFStateIdle;
sl@0
  7800
sl@0
  7801
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7802
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7803
sl@0
  7804
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7805
sl@0
  7806
	// Set the format match data
sl@0
  7807
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7808
sl@0
  7809
	// Set the controller plugin play format match data
sl@0
  7810
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7811
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7812
sl@0
  7813
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7814
sl@0
  7815
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7816
sl@0
  7817
	//---------------------//
sl@0
  7818
	
sl@0
  7819
	// Get Encode Format(s)
sl@0
  7820
	RMMFFormatImplInfoArray formats;
sl@0
  7821
	CleanupResetAndDestroyPushL(formats);
sl@0
  7822
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7823
sl@0
  7824
sl@0
  7825
	RArray<TUid> mediaIds;
sl@0
  7826
sl@0
  7827
	//---------------------//
sl@0
  7828
	// Method being Tested //
sl@0
  7829
	//---------------------//
sl@0
  7830
	// Incorrect Enum Passed
sl@0
  7831
	fEncodeSelect->SetMediaIdsL(mediaIds, CMMFPluginSelectionParameters::EAllowOtherMediaIds);
sl@0
  7832
	//---------------------//
sl@0
  7833
sl@0
  7834
	TUid uid = {0x101FF9FF};
sl@0
  7835
sl@0
  7836
	// Should return nothing
sl@0
  7837
	if (mediaIds.Count() > 0)
sl@0
  7838
		{
sl@0
  7839
		if (mediaIds[0] == uid)
sl@0
  7840
			{
sl@0
  7841
			verdict = EFail;
sl@0
  7842
			}
sl@0
  7843
		}
sl@0
  7844
	else
sl@0
  7845
		{
sl@0
  7846
		verdict = EPass;
sl@0
  7847
		}
sl@0
  7848
sl@0
  7849
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7850
sl@0
  7851
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7852
	__MM_HEAP_MARKEND;
sl@0
  7853
sl@0
  7854
	return verdict;
sl@0
  7855
	}
sl@0
  7856
sl@0
  7857
//---------------------------------------------------------------
sl@0
  7858
sl@0
  7859
sl@0
  7860
CTestStep_MMF_CTLFRM_U_0182::CTestStep_MMF_CTLFRM_U_0182()
sl@0
  7861
	/** Constructor
sl@0
  7862
	*/
sl@0
  7863
	{
sl@0
  7864
	// store the name of this test case
sl@0
  7865
	// this is the name that is used by the script file
sl@0
  7866
	// Each test step initialises it's own name
sl@0
  7867
	iTestStepName = _L("MM-MMF-CTLFRM-U-0182");
sl@0
  7868
sl@0
  7869
	
sl@0
  7870
	}
sl@0
  7871
sl@0
  7872
TVerdict CTestStep_MMF_CTLFRM_U_0182::DoTestStepL( void )
sl@0
  7873
/** 
sl@0
  7874
 * Use case: N/A
sl@0
  7875
 * @test Req. under test 
sl@0
  7876
 */
sl@0
  7877
	{
sl@0
  7878
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7879
	__MM_HEAP_MARK;
sl@0
  7880
sl@0
  7881
	TVerdict verdict = EPass;
sl@0
  7882
	_LIT(KExpectedText, "Symbian");
sl@0
  7883
sl@0
  7884
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7885
sl@0
  7886
//	settings.iPriority = 1;
sl@0
  7887
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7888
//	settings.iState = EMMFStateIdle;
sl@0
  7889
sl@0
  7890
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7891
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7892
sl@0
  7893
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7894
sl@0
  7895
	// Set the format match data
sl@0
  7896
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7897
sl@0
  7898
	// Set the controller plugin play format match data
sl@0
  7899
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7900
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7901
sl@0
  7902
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7903
sl@0
  7904
	fEncodeSelect->SetPreferredSupplierL(_L("Simbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7905
	//---------------------//
sl@0
  7906
	
sl@0
  7907
	// Get Encode Format(s)
sl@0
  7908
	RMMFFormatImplInfoArray formats;
sl@0
  7909
	CleanupResetAndDestroyPushL(formats);
sl@0
  7910
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7911
sl@0
  7912
	//---------------------//
sl@0
  7913
	// Method being Tested //
sl@0
  7914
	//---------------------//
sl@0
  7915
	TBufC<12> bufC = fEncodeSelect->PreferredSupplier();
sl@0
  7916
	//---------------------//
sl@0
  7917
sl@0
  7918
	// Shouldn't return Symbian, should be Simbian
sl@0
  7919
	if ((bufC == KExpectedText) && (verdict == EPass))
sl@0
  7920
		{
sl@0
  7921
		verdict = EFail;
sl@0
  7922
		}
sl@0
  7923
	else
sl@0
  7924
		{
sl@0
  7925
		verdict = EPass;
sl@0
  7926
		}
sl@0
  7927
sl@0
  7928
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  7929
sl@0
  7930
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  7931
	__MM_HEAP_MARKEND;
sl@0
  7932
sl@0
  7933
	return verdict;
sl@0
  7934
	}
sl@0
  7935
sl@0
  7936
//---------------------------------------------------------------
sl@0
  7937
sl@0
  7938
sl@0
  7939
CTestStep_MMF_CTLFRM_U_0183::CTestStep_MMF_CTLFRM_U_0183()
sl@0
  7940
	/** Constructor
sl@0
  7941
	*/
sl@0
  7942
	{
sl@0
  7943
	// store the name of this test case
sl@0
  7944
	// this is the name that is used by the script file
sl@0
  7945
	// Each test step initialises it's own name
sl@0
  7946
	iTestStepName = _L("MM-MMF-CTLFRM-U-0183");
sl@0
  7947
sl@0
  7948
	
sl@0
  7949
	}
sl@0
  7950
sl@0
  7951
TVerdict CTestStep_MMF_CTLFRM_U_0183::DoTestStepL( void )
sl@0
  7952
/** 
sl@0
  7953
 * Use case: N/A
sl@0
  7954
 * @test Req. under test 
sl@0
  7955
 */
sl@0
  7956
	{
sl@0
  7957
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  7958
	__MM_HEAP_MARK;
sl@0
  7959
sl@0
  7960
	TVerdict verdict = EPass;
sl@0
  7961
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  7962
sl@0
  7963
//	settings.iPriority = 1;
sl@0
  7964
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  7965
//	settings.iState = EMMFStateIdle;
sl@0
  7966
sl@0
  7967
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  7968
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  7969
sl@0
  7970
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  7971
sl@0
  7972
	// Set the format match data
sl@0
  7973
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  7974
sl@0
  7975
	// Set the controller plugin play format match data
sl@0
  7976
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  7977
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  7978
sl@0
  7979
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  7980
sl@0
  7981
	fEncodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  7982
	//---------------------//
sl@0
  7983
	
sl@0
  7984
	// Get Encode Format(s)
sl@0
  7985
	RMMFFormatImplInfoArray formats;
sl@0
  7986
	CleanupResetAndDestroyPushL(formats);
sl@0
  7987
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  7988
sl@0
  7989
	//---------------------//
sl@0
  7990
	// Method being Tested //
sl@0
  7991
	//---------------------//
sl@0
  7992
	if ((fEncodeSelect->PreferredSupplierMatchType() == CMMFPluginSelectionParameters::ENoPreferredSupplierMatch) && (verdict == EFail))
sl@0
  7993
		{
sl@0
  7994
		verdict = EFail;
sl@0
  7995
		}
sl@0
  7996
	else
sl@0
  7997
		{
sl@0
  7998
		verdict = EPass;
sl@0
  7999
		}
sl@0
  8000
	//---------------------//
sl@0
  8001
sl@0
  8002
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  8003
sl@0
  8004
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8005
	__MM_HEAP_MARKEND;
sl@0
  8006
sl@0
  8007
	return verdict;
sl@0
  8008
	}
sl@0
  8009
sl@0
  8010
//---------------------------------------------------------------
sl@0
  8011
sl@0
  8012
sl@0
  8013
CTestStep_MMF_CTLFRM_U_0184::CTestStep_MMF_CTLFRM_U_0184()
sl@0
  8014
	/** Constructor
sl@0
  8015
	*/
sl@0
  8016
	{
sl@0
  8017
	// store the name of this test case
sl@0
  8018
	// this is the name that is used by the script file
sl@0
  8019
	// Each test step initialises it's own name
sl@0
  8020
	iTestStepName = _L("MM-MMF-CTLFRM-U-0184");
sl@0
  8021
sl@0
  8022
	
sl@0
  8023
	}
sl@0
  8024
sl@0
  8025
TVerdict CTestStep_MMF_CTLFRM_U_0184::DoTestStepL( void )
sl@0
  8026
/** 
sl@0
  8027
 * Use case: N/A
sl@0
  8028
 * @test Req. under test 
sl@0
  8029
 */
sl@0
  8030
	{
sl@0
  8031
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8032
	__MM_HEAP_MARK;
sl@0
  8033
sl@0
  8034
	TVerdict verdict = EPass;
sl@0
  8035
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8036
sl@0
  8037
//	settings.iPriority = 1;
sl@0
  8038
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8039
//	settings.iState = EMMFStateIdle;
sl@0
  8040
sl@0
  8041
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8042
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8043
sl@0
  8044
	CMMFFormatEncodePluginSelectionParameters* fEncodeSelect = CMMFFormatEncodePluginSelectionParameters::NewLC();
sl@0
  8045
sl@0
  8046
	// Set the format match data
sl@0
  8047
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8048
sl@0
  8049
	// Set the controller plugin play format match data
sl@0
  8050
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  8051
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8052
sl@0
  8053
	fEncodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8054
sl@0
  8055
	fEncodeSelect->SetPreferredSupplierL(_L("Simbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8056
	//---------------------//
sl@0
  8057
	
sl@0
  8058
	// Get Encode Format(s)
sl@0
  8059
	RMMFFormatImplInfoArray formats;
sl@0
  8060
	CleanupResetAndDestroyPushL(formats);
sl@0
  8061
	fEncodeSelect->ListImplementationsL(formats);
sl@0
  8062
sl@0
  8063
	RArray<TUid> mediaIdsToAdd; 
sl@0
  8064
sl@0
  8065
	// Pass Empty Array
sl@0
  8066
	fEncodeSelect->SetMediaIdsL(mediaIdsToAdd, CMMFPluginSelectionParameters::EAllowOtherMediaIds);
sl@0
  8067
	
sl@0
  8068
sl@0
  8069
	//---------------------//
sl@0
  8070
	// Method being Tested //
sl@0
  8071
	//---------------------//
sl@0
  8072
	const RArray<TUid>& mediaIds = fEncodeSelect->MediaIds();
sl@0
  8073
	//---------------------//
sl@0
  8074
sl@0
  8075
	if (mediaIds.Count() > 0)
sl@0
  8076
		{
sl@0
  8077
		TUid uid = {0x12345679};
sl@0
  8078
		if (mediaIds[0] == uid)
sl@0
  8079
			{
sl@0
  8080
			verdict = EFail;
sl@0
  8081
			}
sl@0
  8082
		else
sl@0
  8083
			{
sl@0
  8084
			verdict = EPass;
sl@0
  8085
			}
sl@0
  8086
		}
sl@0
  8087
	else
sl@0
  8088
		{
sl@0
  8089
		verdict = EPass;
sl@0
  8090
		}
sl@0
  8091
sl@0
  8092
	mediaIdsToAdd.Close();
sl@0
  8093
sl@0
  8094
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fEncodeSelect
sl@0
  8095
sl@0
  8096
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8097
	__MM_HEAP_MARKEND;
sl@0
  8098
sl@0
  8099
	return verdict;
sl@0
  8100
	}
sl@0
  8101
sl@0
  8102
//---------------------------------------------------------------
sl@0
  8103
sl@0
  8104
sl@0
  8105
CTestStep_MMF_CTLFRM_U_0190::CTestStep_MMF_CTLFRM_U_0190()
sl@0
  8106
	/** Constructor
sl@0
  8107
	*/
sl@0
  8108
	{
sl@0
  8109
	// store the name of this test case
sl@0
  8110
	// this is the name that is used by the script file
sl@0
  8111
	// Each test step initialises it's own name
sl@0
  8112
	iTestStepName = _L("MM-MMF-CTLFRM-U-0190");
sl@0
  8113
sl@0
  8114
	
sl@0
  8115
	}
sl@0
  8116
sl@0
  8117
TVerdict CTestStep_MMF_CTLFRM_U_0190::DoTestStepL( void )
sl@0
  8118
/** 
sl@0
  8119
 * Use case: N/A
sl@0
  8120
 * @test Req. under test 
sl@0
  8121
 */
sl@0
  8122
	{
sl@0
  8123
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8124
	__MM_HEAP_MARK;
sl@0
  8125
sl@0
  8126
	TVerdict verdict = EPass;
sl@0
  8127
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8128
sl@0
  8129
//	settings.iPriority = 1;
sl@0
  8130
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8131
//	settings.iState = EMMFStateIdle;
sl@0
  8132
sl@0
  8133
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8134
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8135
sl@0
  8136
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8137
sl@0
  8138
	// Set the format match data
sl@0
  8139
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8140
sl@0
  8141
	// Set the controller plugin play format match data
sl@0
  8142
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8143
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8144
sl@0
  8145
sl@0
  8146
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8147
sl@0
  8148
	//---------------------//
sl@0
  8149
	// Method being Tested //
sl@0
  8150
	//---------------------//
sl@0
  8151
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8152
	//---------------------//
sl@0
  8153
	
sl@0
  8154
	// Get Decode Format(s)
sl@0
  8155
	RMMFFormatImplInfoArray formats;
sl@0
  8156
	CleanupResetAndDestroyPushL(formats);
sl@0
  8157
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8158
sl@0
  8159
sl@0
  8160
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8161
	TUid formatUid;
sl@0
  8162
	formatUid = formats[0]->Uid();	
sl@0
  8163
	if (formatUid == KMmfUidFormatPAVReadUid)
sl@0
  8164
		{
sl@0
  8165
		verdict = EPass;
sl@0
  8166
		}
sl@0
  8167
	else
sl@0
  8168
		{
sl@0
  8169
		verdict = EFail;
sl@0
  8170
		}
sl@0
  8171
sl@0
  8172
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8173
sl@0
  8174
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8175
	__MM_HEAP_MARKEND;
sl@0
  8176
sl@0
  8177
	return verdict;
sl@0
  8178
	}
sl@0
  8179
sl@0
  8180
//---------------------------------------------------------------
sl@0
  8181
sl@0
  8182
CTestStep_MMF_CTLFRM_U_0191::CTestStep_MMF_CTLFRM_U_0191()
sl@0
  8183
	/** Constructor
sl@0
  8184
	*/
sl@0
  8185
	{
sl@0
  8186
	// store the name of this test case
sl@0
  8187
	// this is the name that is used by the script file
sl@0
  8188
	// Each test step initialises it's own name
sl@0
  8189
	iTestStepName = _L("MM-MMF-CTLFRM-U-0191");
sl@0
  8190
sl@0
  8191
	
sl@0
  8192
	}
sl@0
  8193
sl@0
  8194
TVerdict CTestStep_MMF_CTLFRM_U_0191::DoTestStepL( void )
sl@0
  8195
/** 
sl@0
  8196
 * Use case: N/A
sl@0
  8197
 * @test Req. under test 
sl@0
  8198
 */
sl@0
  8199
	{
sl@0
  8200
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8201
	__MM_HEAP_MARK;
sl@0
  8202
sl@0
  8203
	TVerdict verdict = EPass;
sl@0
  8204
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8205
sl@0
  8206
//	settings.iPriority = 1;
sl@0
  8207
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8208
//	settings.iState = EMMFStateIdle;
sl@0
  8209
sl@0
  8210
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8211
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8212
sl@0
  8213
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8214
sl@0
  8215
	// Set the format match data
sl@0
  8216
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8217
sl@0
  8218
	// Set the controller plugin play format match data
sl@0
  8219
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8220
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8221
sl@0
  8222
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8223
sl@0
  8224
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8225
sl@0
  8226
	//---------------------//
sl@0
  8227
	
sl@0
  8228
	// Get Decode Format(s)
sl@0
  8229
	RMMFFormatImplInfoArray formats;
sl@0
  8230
	CleanupResetAndDestroyPushL(formats);
sl@0
  8231
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8232
sl@0
  8233
sl@0
  8234
	RArray<TUid> mediaIds;
sl@0
  8235
sl@0
  8236
	//---------------------//
sl@0
  8237
	// Method being Tested //
sl@0
  8238
	//---------------------//
sl@0
  8239
	fDecodeSelect->SetMediaIdsL(mediaIds, CMMFPluginSelectionParameters::EAllowOnlySuppliedMediaIds);
sl@0
  8240
	//---------------------//
sl@0
  8241
sl@0
  8242
	TUid uid = {0x101FF9FF};
sl@0
  8243
sl@0
  8244
	if (mediaIds.Count() > 0)
sl@0
  8245
		{
sl@0
  8246
		if (mediaIds[0] == uid)
sl@0
  8247
			{
sl@0
  8248
			verdict = EPass;
sl@0
  8249
			}
sl@0
  8250
		}
sl@0
  8251
	else
sl@0
  8252
		{
sl@0
  8253
		verdict = EFail;
sl@0
  8254
		}
sl@0
  8255
sl@0
  8256
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8257
	TUid formatUid;
sl@0
  8258
	formatUid = formats[0]->Uid();	
sl@0
  8259
	if (formatUid == KMmfUidFormatPAVReadUid)
sl@0
  8260
		{
sl@0
  8261
		verdict = EPass;
sl@0
  8262
		}
sl@0
  8263
	else
sl@0
  8264
		{
sl@0
  8265
		verdict = EFail;
sl@0
  8266
		}
sl@0
  8267
sl@0
  8268
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8269
sl@0
  8270
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8271
	__MM_HEAP_MARKEND;
sl@0
  8272
sl@0
  8273
	return verdict;
sl@0
  8274
	}
sl@0
  8275
sl@0
  8276
//---------------------------------------------------------------
sl@0
  8277
sl@0
  8278
sl@0
  8279
CTestStep_MMF_CTLFRM_U_0192::CTestStep_MMF_CTLFRM_U_0192()
sl@0
  8280
	/** Constructor
sl@0
  8281
	*/
sl@0
  8282
	{
sl@0
  8283
	// store the name of this test case
sl@0
  8284
	// this is the name that is used by the script file
sl@0
  8285
	// Each test step initialises it's own name
sl@0
  8286
	iTestStepName = _L("MM-MMF-CTLFRM-U-0192");
sl@0
  8287
sl@0
  8288
	
sl@0
  8289
	}
sl@0
  8290
sl@0
  8291
TVerdict CTestStep_MMF_CTLFRM_U_0192::DoTestStepL( void )
sl@0
  8292
/** 
sl@0
  8293
 * Use case: N/A
sl@0
  8294
 * @test Req. under test 
sl@0
  8295
 */
sl@0
  8296
	{
sl@0
  8297
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8298
	__MM_HEAP_MARK;
sl@0
  8299
sl@0
  8300
	TVerdict verdict = EPass;
sl@0
  8301
	_LIT(KExpectedText, "Symbian");
sl@0
  8302
sl@0
  8303
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8304
sl@0
  8305
//	settings.iPriority = 1;
sl@0
  8306
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8307
//	settings.iState = EMMFStateIdle;
sl@0
  8308
sl@0
  8309
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8310
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8311
sl@0
  8312
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8313
sl@0
  8314
	// Set the format match data
sl@0
  8315
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8316
sl@0
  8317
	// Set the controller plugin play format match data
sl@0
  8318
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8319
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8320
sl@0
  8321
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8322
sl@0
  8323
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8324
	//---------------------//
sl@0
  8325
	
sl@0
  8326
	// Get Decode Format(s)
sl@0
  8327
	RMMFFormatImplInfoArray formats;
sl@0
  8328
	CleanupResetAndDestroyPushL(formats);
sl@0
  8329
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8330
sl@0
  8331
	//---------------------//
sl@0
  8332
	// Method being Tested //
sl@0
  8333
	//---------------------//
sl@0
  8334
	TBufC<12> bufC = fDecodeSelect->PreferredSupplier();
sl@0
  8335
	//---------------------//
sl@0
  8336
sl@0
  8337
	if ((bufC == KExpectedText) && (verdict == EPass))
sl@0
  8338
		{
sl@0
  8339
		verdict = EPass;
sl@0
  8340
		}
sl@0
  8341
	else
sl@0
  8342
		{
sl@0
  8343
		verdict = EFail;
sl@0
  8344
		}
sl@0
  8345
sl@0
  8346
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8347
	TUid formatUid;
sl@0
  8348
	formatUid = formats[0]->Uid();	
sl@0
  8349
	if (formatUid == KMmfUidFormatPAVReadUid && verdict == EPass)
sl@0
  8350
		{
sl@0
  8351
		verdict = EPass;
sl@0
  8352
		}
sl@0
  8353
	else
sl@0
  8354
		{
sl@0
  8355
		verdict = EFail;
sl@0
  8356
		}
sl@0
  8357
sl@0
  8358
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8359
sl@0
  8360
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8361
	__MM_HEAP_MARKEND;
sl@0
  8362
sl@0
  8363
	return verdict;
sl@0
  8364
	}
sl@0
  8365
sl@0
  8366
//---------------------------------------------------------------
sl@0
  8367
sl@0
  8368
sl@0
  8369
CTestStep_MMF_CTLFRM_U_0193::CTestStep_MMF_CTLFRM_U_0193()
sl@0
  8370
	/** Constructor
sl@0
  8371
	*/
sl@0
  8372
	{
sl@0
  8373
	// store the name of this test case
sl@0
  8374
	// this is the name that is used by the script file
sl@0
  8375
	// Each test step initialises it's own name
sl@0
  8376
	iTestStepName = _L("MM-MMF-CTLFRM-U-0193");
sl@0
  8377
sl@0
  8378
	
sl@0
  8379
	}
sl@0
  8380
sl@0
  8381
TVerdict CTestStep_MMF_CTLFRM_U_0193::DoTestStepL( void )
sl@0
  8382
/** 
sl@0
  8383
 * Use case: N/A
sl@0
  8384
 * @test Req. under test 
sl@0
  8385
 */
sl@0
  8386
	{
sl@0
  8387
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8388
	__MM_HEAP_MARK;
sl@0
  8389
sl@0
  8390
	TVerdict verdict = EPass;
sl@0
  8391
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8392
sl@0
  8393
sl@0
  8394
//	settings.iPriority = 1;
sl@0
  8395
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8396
//	settings.iState = EMMFStateIdle;
sl@0
  8397
sl@0
  8398
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8399
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8400
sl@0
  8401
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8402
sl@0
  8403
	// Set the format match data
sl@0
  8404
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8405
sl@0
  8406
	// Set the controller plugin play format match data
sl@0
  8407
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8408
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8409
sl@0
  8410
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8411
sl@0
  8412
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8413
	//---------------------//
sl@0
  8414
	
sl@0
  8415
	// Get Decode Format(s)
sl@0
  8416
	RMMFFormatImplInfoArray formats;
sl@0
  8417
	CleanupResetAndDestroyPushL(formats);
sl@0
  8418
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8419
sl@0
  8420
	//---------------------//
sl@0
  8421
	// Method being Tested //
sl@0
  8422
	//---------------------//
sl@0
  8423
	if ((fDecodeSelect->PreferredSupplierMatchType() == CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned) && (verdict == EPass))
sl@0
  8424
		{
sl@0
  8425
		verdict = EPass;
sl@0
  8426
		}
sl@0
  8427
	else
sl@0
  8428
		{
sl@0
  8429
		verdict = EFail;
sl@0
  8430
		}
sl@0
  8431
	//---------------------//
sl@0
  8432
sl@0
  8433
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8434
	TUid formatUid;
sl@0
  8435
	formatUid = formats[0]->Uid();	
sl@0
  8436
	if (formatUid == KMmfUidFormatPAVReadUid && verdict == EPass)
sl@0
  8437
		{
sl@0
  8438
		verdict = EPass;
sl@0
  8439
		}
sl@0
  8440
	else
sl@0
  8441
		{
sl@0
  8442
		verdict = EFail;
sl@0
  8443
		}
sl@0
  8444
sl@0
  8445
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8446
sl@0
  8447
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8448
	__MM_HEAP_MARKEND;
sl@0
  8449
sl@0
  8450
	return verdict;
sl@0
  8451
	}
sl@0
  8452
sl@0
  8453
//---------------------------------------------------------------
sl@0
  8454
sl@0
  8455
sl@0
  8456
CTestStep_MMF_CTLFRM_U_0194::CTestStep_MMF_CTLFRM_U_0194()
sl@0
  8457
	/** Constructor
sl@0
  8458
	*/
sl@0
  8459
	{
sl@0
  8460
	// store the name of this test case
sl@0
  8461
	// this is the name that is used by the script file
sl@0
  8462
	// Each test step initialises it's own name
sl@0
  8463
	iTestStepName = _L("MM-MMF-CTLFRM-U-0194");
sl@0
  8464
sl@0
  8465
	
sl@0
  8466
	}
sl@0
  8467
sl@0
  8468
TVerdict CTestStep_MMF_CTLFRM_U_0194::DoTestStepL( void )
sl@0
  8469
/**
sl@0
  8470
 * Use case: N/A
sl@0
  8471
 * @test Req. under test 
sl@0
  8472
 */
sl@0
  8473
	{
sl@0
  8474
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8475
	__MM_HEAP_MARK;
sl@0
  8476
sl@0
  8477
	TVerdict verdict = EPass;
sl@0
  8478
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8479
sl@0
  8480
sl@0
  8481
//	settings.iPriority = 1;
sl@0
  8482
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8483
//	settings.iState = EMMFStateIdle;
sl@0
  8484
sl@0
  8485
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8486
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8487
sl@0
  8488
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8489
sl@0
  8490
	// Set the format match data
sl@0
  8491
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8492
sl@0
  8493
	// Set the controller plugin play format match data
sl@0
  8494
	cSelect->SetRequiredRecordFormatSupportL(*fSelect); 
sl@0
  8495
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8496
sl@0
  8497
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8498
sl@0
  8499
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8500
	//---------------------//
sl@0
  8501
	
sl@0
  8502
	// Get Decode Format(s)
sl@0
  8503
	RMMFFormatImplInfoArray formats;
sl@0
  8504
	CleanupResetAndDestroyPushL(formats);
sl@0
  8505
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8506
sl@0
  8507
	TUid testUid = {0x12345679};
sl@0
  8508
	RArray<TUid> mediaIdsToAdd;
sl@0
  8509
	mediaIdsToAdd.Append(testUid);
sl@0
  8510
sl@0
  8511
	fDecodeSelect->SetMediaIdsL(mediaIdsToAdd, CMMFPluginSelectionParameters::EAllowOtherMediaIds);
sl@0
  8512
sl@0
  8513
	//---------------------//
sl@0
  8514
	// Method being Tested //
sl@0
  8515
	//---------------------//
sl@0
  8516
	const RArray<TUid>& mediaIds = fDecodeSelect->MediaIds();
sl@0
  8517
	//---------------------//
sl@0
  8518
sl@0
  8519
	if (mediaIds.Count() > 0)
sl@0
  8520
		{
sl@0
  8521
		TUid uid = {0x12345679};
sl@0
  8522
		if (mediaIds[0] == uid)
sl@0
  8523
			{
sl@0
  8524
			verdict = EPass;
sl@0
  8525
			}
sl@0
  8526
		else
sl@0
  8527
			{
sl@0
  8528
			verdict = EFail;
sl@0
  8529
			}
sl@0
  8530
		}
sl@0
  8531
	else
sl@0
  8532
		{
sl@0
  8533
		verdict = EFail;
sl@0
  8534
		}
sl@0
  8535
sl@0
  8536
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8537
	TUid formatUid;
sl@0
  8538
	formatUid = formats[0]->Uid();	
sl@0
  8539
	if (formatUid == KMmfUidFormatPAVReadUid && verdict == EPass)
sl@0
  8540
		{
sl@0
  8541
		verdict = EPass;
sl@0
  8542
		}
sl@0
  8543
	else
sl@0
  8544
		{
sl@0
  8545
		verdict = EFail;
sl@0
  8546
		}
sl@0
  8547
sl@0
  8548
	mediaIdsToAdd.Remove(0); // Remove otherwise TUid will be destroyed below and Panic.
sl@0
  8549
	mediaIdsToAdd.Close();
sl@0
  8550
sl@0
  8551
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8552
sl@0
  8553
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8554
	__MM_HEAP_MARKEND;
sl@0
  8555
sl@0
  8556
	return verdict;
sl@0
  8557
	}
sl@0
  8558
sl@0
  8559
//---------------------------------------------------------------
sl@0
  8560
sl@0
  8561
CTestStep_MMF_CTLFRM_U_0195::CTestStep_MMF_CTLFRM_U_0195()
sl@0
  8562
	/** Constructor
sl@0
  8563
	*/
sl@0
  8564
	{
sl@0
  8565
	// store the name of this test case
sl@0
  8566
	// this is the name that is used by the script file
sl@0
  8567
	// Each test step initialises it's own name
sl@0
  8568
	iTestStepName = _L("MM-MMF-CTLFRM-U-0195");
sl@0
  8569
sl@0
  8570
	
sl@0
  8571
	}
sl@0
  8572
sl@0
  8573
TVerdict CTestStep_MMF_CTLFRM_U_0195::DoTestStepL( void )
sl@0
  8574
/** 
sl@0
  8575
 * Use case: N/A
sl@0
  8576
 * @test Req. under test 
sl@0
  8577
 */
sl@0
  8578
	{
sl@0
  8579
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8580
	__MM_HEAP_MARK;
sl@0
  8581
sl@0
  8582
	TVerdict verdict = EPass;
sl@0
  8583
sl@0
  8584
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8585
sl@0
  8586
//	settings.iPriority = 1;
sl@0
  8587
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8588
//	settings.iState = EMMFStateIdle;
sl@0
  8589
sl@0
  8590
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8591
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8592
sl@0
  8593
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8594
sl@0
  8595
	// Set the format match data
sl@0
  8596
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8597
sl@0
  8598
	// Set the controller plugin play format match data
sl@0
  8599
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8600
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8601
sl@0
  8602
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8603
sl@0
  8604
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8605
	//---------------------//
sl@0
  8606
	
sl@0
  8607
	// Get Decode Format(s)
sl@0
  8608
	RMMFFormatImplInfoArray formats;
sl@0
  8609
	CleanupResetAndDestroyPushL(formats);
sl@0
  8610
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8611
sl@0
  8612
	//---------------------//
sl@0
  8613
	// Method being Tested //
sl@0
  8614
	//---------------------//
sl@0
  8615
	
sl@0
  8616
	if ((fDecodeSelect->MediaIdMatchType() == CMMFPluginSelectionParameters::ENoMediaIdMatch) && (verdict == EPass))
sl@0
  8617
		{
sl@0
  8618
		verdict = EPass;
sl@0
  8619
		}
sl@0
  8620
	else
sl@0
  8621
		{
sl@0
  8622
		verdict = EFail;
sl@0
  8623
		}
sl@0
  8624
	//---------------------//
sl@0
  8625
sl@0
  8626
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8627
	TUid formatUid;
sl@0
  8628
	formatUid = formats[0]->Uid();	
sl@0
  8629
	if (formatUid == KMmfUidFormatPAVReadUid && verdict == EPass)
sl@0
  8630
		{
sl@0
  8631
		verdict = EPass;
sl@0
  8632
		}
sl@0
  8633
	else
sl@0
  8634
		{
sl@0
  8635
		verdict = EFail;
sl@0
  8636
		}
sl@0
  8637
sl@0
  8638
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8639
sl@0
  8640
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8641
	__MM_HEAP_MARKEND;
sl@0
  8642
sl@0
  8643
	return verdict;
sl@0
  8644
	}
sl@0
  8645
sl@0
  8646
//---------------------------------------------------------------
sl@0
  8647
sl@0
  8648
CTestStep_MMF_CTLFRM_U_0196::CTestStep_MMF_CTLFRM_U_0196()
sl@0
  8649
	/** Constructor
sl@0
  8650
	*/
sl@0
  8651
	{
sl@0
  8652
	// store the name of this test case
sl@0
  8653
	// this is the name that is used by the script file
sl@0
  8654
	// Each test step initialises it's own name
sl@0
  8655
	iTestStepName = _L("MM-MMF-CTLFRM-U-0196");
sl@0
  8656
sl@0
  8657
	
sl@0
  8658
	}
sl@0
  8659
sl@0
  8660
TVerdict CTestStep_MMF_CTLFRM_U_0196::DoTestStepL( void )
sl@0
  8661
/** 
sl@0
  8662
 * Use case: N/A
sl@0
  8663
 * @test Req. under test 
sl@0
  8664
 */
sl@0
  8665
	{
sl@0
  8666
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8667
	__MM_HEAP_MARK;
sl@0
  8668
sl@0
  8669
	TVerdict verdict = EPass;
sl@0
  8670
//	TMMFPrioritySettings settings;	//EABI warning removal
sl@0
  8671
sl@0
  8672
//	settings.iPriority = 1;
sl@0
  8673
//	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8674
//	settings.iState = EMMFStateIdle;
sl@0
  8675
sl@0
  8676
	CMMFControllerPluginSelectionParameters* cSelect = CMMFControllerPluginSelectionParameters::NewLC();
sl@0
  8677
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8678
sl@0
  8679
	CMMFFormatDecodePluginSelectionParameters* fDecodeSelect = CMMFFormatDecodePluginSelectionParameters::NewLC();
sl@0
  8680
sl@0
  8681
	// Set the format match data
sl@0
  8682
	fSelect->SetMatchToFileNameL(_L("test.pav"));
sl@0
  8683
sl@0
  8684
	// Set the controller plugin play format match data
sl@0
  8685
	cSelect->SetRequiredPlayFormatSupportL(*fSelect); 
sl@0
  8686
	cSelect->SetPreferredSupplierL(KTestControllerSupplier, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList);
sl@0
  8687
sl@0
  8688
	fDecodeSelect->SetRequiredFormatSupportL(*fSelect);
sl@0
  8689
sl@0
  8690
	fDecodeSelect->SetPreferredSupplierL(_L("Symbian"),CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
sl@0
  8691
	//---------------------//
sl@0
  8692
	
sl@0
  8693
	// Get Decode Format(s)
sl@0
  8694
	RMMFFormatImplInfoArray formats;
sl@0
  8695
	CleanupResetAndDestroyPushL(formats);
sl@0
  8696
	fDecodeSelect->ListImplementationsL(formats);
sl@0
  8697
sl@0
  8698
	//---------------------//
sl@0
  8699
	// Method being Tested //
sl@0
  8700
	//---------------------//
sl@0
  8701
	TUid uid = fDecodeSelect->InterfaceUid();
sl@0
  8702
	//---------------------//
sl@0
  8703
sl@0
  8704
	if (uid == KMmfUidPluginInterfaceFormatDecodeUid)
sl@0
  8705
		{
sl@0
  8706
		verdict = EPass;
sl@0
  8707
		}
sl@0
  8708
	else
sl@0
  8709
		{
sl@0
  8710
		verdict = EFail;
sl@0
  8711
		}
sl@0
  8712
sl@0
  8713
sl@0
  8714
	// Check the Uid is correct, hense the correct interface has been obtained
sl@0
  8715
	TUid formatUid;
sl@0
  8716
	formatUid = formats[0]->Uid();	
sl@0
  8717
	if (formatUid == KMmfUidFormatPAVReadUid && verdict == EPass)
sl@0
  8718
		{
sl@0
  8719
		verdict = EPass;
sl@0
  8720
		}
sl@0
  8721
	else
sl@0
  8722
		{
sl@0
  8723
		verdict = EFail;
sl@0
  8724
		}
sl@0
  8725
sl@0
  8726
	CleanupStack::PopAndDestroy(4);//formats, fSelect, cSelect, fDecodeSelect
sl@0
  8727
sl@0
  8728
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  8729
	__MM_HEAP_MARKEND;
sl@0
  8730
sl@0
  8731
	return verdict;
sl@0
  8732
	}
sl@0
  8733
sl@0
  8734
//---------------------------------------------------------------
sl@0
  8735
sl@0
  8736
CTestStep_MMF_CTLFRM_U_0125::CTestStep_MMF_CTLFRM_U_0125()
sl@0
  8737
	/** Constructor
sl@0
  8738
	*/
sl@0
  8739
	{
sl@0
  8740
	// store the name of this test case
sl@0
  8741
	// this is the name that is used by the script file
sl@0
  8742
	// Each test step initialises it's own name
sl@0
  8743
	iTestStepName = _L("MM-MMF-CTLFRM-U-0125");
sl@0
  8744
sl@0
  8745
	
sl@0
  8746
	}
sl@0
  8747
sl@0
  8748
TVerdict CTestStep_MMF_CTLFRM_U_0125::DoTestStepL( void )
sl@0
  8749
/** Instantiate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  8750
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  8751
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  8752
 *  open a controller. Open the controller, check for errors and close the controller. 
sl@0
  8753
 *  (Test CMMFFormatSelectionParameters API).
sl@0
  8754
sl@0
  8755
 * Use case: N/A
sl@0
  8756
 * @test Req. under test REQ172.5.5 REQ172.5.5.13
sl@0
  8757
 */
sl@0
  8758
	{
sl@0
  8759
	const TInt KNumberTestURIs = 5;
sl@0
  8760
	_LIT(KTestUri1,"rtsp://www.symbian.com/first/test/directory/test.rm");
sl@0
  8761
	_LIT(KTestUri2,"www.symbian.com/first/test/directory/test.rm#garbage characters");
sl@0
  8762
	_LIT(KTestUri3,"rtsp://www.symbian.com/first/test/directory/test.rm?param=22050&cat=find");
sl@0
  8763
	_LIT(KTestUri4,"rtsp://www.symbian.com/first/test/directory/test.rm?param=22050&cat=find#garbage characters at end of url");
sl@0
  8764
	_LIT(KTestUri5,"rtsp://194.252.88.2:554/yle24/mobile/uusin.rm?cloakport=\"80,554,7");
sl@0
  8765
	_LIT8(KExpectedMatchData,".rm");
sl@0
  8766
sl@0
  8767
sl@0
  8768
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8769
	__MM_HEAP_MARK;
sl@0
  8770
sl@0
  8771
	TVerdict verdict = EPass;
sl@0
  8772
sl@0
  8773
	TPtrC testURIs[KNumberTestURIs];
sl@0
  8774
	TPtrC8 expectedMatchData[KNumberTestURIs];
sl@0
  8775
	testURIs[0].Set(KTestUri1);
sl@0
  8776
	testURIs[1].Set(KTestUri2);
sl@0
  8777
	testURIs[2].Set(KTestUri3);
sl@0
  8778
	testURIs[3].Set(KTestUri4);
sl@0
  8779
	testURIs[4].Set(KTestUri5);
sl@0
  8780
sl@0
  8781
	expectedMatchData[0].Set(KExpectedMatchData);
sl@0
  8782
	expectedMatchData[1].Set(KExpectedMatchData);
sl@0
  8783
	expectedMatchData[2].Set(KExpectedMatchData);
sl@0
  8784
	expectedMatchData[3].Set(KExpectedMatchData);
sl@0
  8785
	expectedMatchData[4].Set(KExpectedMatchData);
sl@0
  8786
sl@0
  8787
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8788
sl@0
  8789
	// Set the format match data
sl@0
  8790
	for (TInt i=0;i<KNumberTestURIs;i++)
sl@0
  8791
		{
sl@0
  8792
		//---------------------//
sl@0
  8793
		// Method being Tested //
sl@0
  8794
		//---------------------//
sl@0
  8795
		fSelect->SetMatchToUriL(testURIs[i]);
sl@0
  8796
		//---------------------//
sl@0
  8797
 	
sl@0
  8798
 		if (fSelect->MatchDataType() == CMMFFormatSelectionParameters::EMatchFileExtension)
sl@0
  8799
			{
sl@0
  8800
			const TDesC8& matchData = fSelect->MatchData();
sl@0
  8801
		
sl@0
  8802
			// make a unicode copy of the match data (file extension) for printing out
sl@0
  8803
			HBufC* bufMatchData = HBufC::NewL(matchData.Length());
sl@0
  8804
sl@0
  8805
			TPtr ptr = bufMatchData->Des();
sl@0
  8806
			ptr.Copy(matchData);
sl@0
  8807
			if (!(matchData == expectedMatchData[i]))
sl@0
  8808
				{
sl@0
  8809
				INFO_PRINTF3(_L("Uri Match Data failed on URI: %S | extension: %S"),
sl@0
  8810
								&testURIs[i],
sl@0
  8811
								bufMatchData);
sl@0
  8812
				verdict = EFail;
sl@0
  8813
				} else {
sl@0
  8814
sl@0
  8815
				INFO_PRINTF3(_L("Success  URI: %S | extension: %S"),
sl@0
  8816
								&testURIs[i],
sl@0
  8817
								bufMatchData);
sl@0
  8818
sl@0
  8819
				}
sl@0
  8820
			delete bufMatchData;
sl@0
  8821
sl@0
  8822
			}				
sl@0
  8823
		else
sl@0
  8824
			{
sl@0
  8825
  			INFO_PRINTF1(_L("MatchDataType set to incorrect type (should be EMatchFileExtension)"));
sl@0
  8826
  			verdict = EFail;
sl@0
  8827
			}
sl@0
  8828
		}
sl@0
  8829
sl@0
  8830
	CleanupStack::Pop(fSelect);
sl@0
  8831
		
sl@0
  8832
	
sl@0
  8833
	return verdict;
sl@0
  8834
	}
sl@0
  8835
sl@0
  8836
sl@0
  8837
//------------------------------------------------------------------
sl@0
  8838
sl@0
  8839
//---------------------------------------------------------------
sl@0
  8840
sl@0
  8841
CTestStep_MMF_CTLFRM_U_0198::CTestStep_MMF_CTLFRM_U_0198()
sl@0
  8842
	/** Constructor
sl@0
  8843
	*/
sl@0
  8844
	{
sl@0
  8845
	// store the name of this test case
sl@0
  8846
	// this is the name that is used by the script file
sl@0
  8847
	// Each test step initialises it's own name
sl@0
  8848
	iTestStepName = _L("MM-MMF-CTLFRM-U-0198");
sl@0
  8849
sl@0
  8850
	
sl@0
  8851
	}
sl@0
  8852
sl@0
  8853
TVerdict CTestStep_MMF_CTLFRM_U_0198::DoTestStepL( void )
sl@0
  8854
/** Instantiate a CMMFControllerPluginSelectionParameters and CMMFFormatSelectionParameters 
sl@0
  8855
 *  set the parameters appropiately (See API Method Calls and Parameters) to obtain 
sl@0
  8856
 *  controller Implementation Uid's in a CMMFControllerImplementationInformation Array to 
sl@0
  8857
 *  open a controller. Open the controller, check for errors and close the controller. 
sl@0
  8858
 *  (Test CMMFFormatSelectionParameters API).
sl@0
  8859
sl@0
  8860
 * Use case: N/A
sl@0
  8861
 * @test Req. under CR0632 
sl@0
  8862
 */
sl@0
  8863
	{
sl@0
  8864
	const TInt KNumberTestURIs = 5;
sl@0
  8865
	_LIT(KTestUri1,"rtsp://www.symbian.com/first/test/directory/test.rm");
sl@0
  8866
	_LIT(KTestUri2,"www.symbian.com/first/test/directory/test.rm#garbage characters");
sl@0
  8867
	_LIT(KTestUri3,"rtsp://www.symbian.com/first/test/directory/test.rm?param=22050&cat=find");
sl@0
  8868
	_LIT(KTestUri4,"rtsp://www.symbian.com/first/test/directory/test.rm?param=22050&cat=find#garbage characters at end of url");
sl@0
  8869
	_LIT(KTestUri5,"rtsp://194.252.88.2:554/yle24/mobile/uusin.rm?cloakport=\"80,554,7");
sl@0
  8870
	_LIT8(KExpectedMatchData,"rtsp");
sl@0
  8871
	_LIT8(KExpectedMatchData2,"");
sl@0
  8872
sl@0
  8873
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8874
	__MM_HEAP_MARK;
sl@0
  8875
sl@0
  8876
	TVerdict verdict = EPass;
sl@0
  8877
sl@0
  8878
	TPtrC testURIs[KNumberTestURIs];
sl@0
  8879
	TPtrC8 expectedMatchData[KNumberTestURIs];
sl@0
  8880
	testURIs[0].Set(KTestUri1);
sl@0
  8881
	testURIs[1].Set(KTestUri2);
sl@0
  8882
	testURIs[2].Set(KTestUri3);
sl@0
  8883
	testURIs[3].Set(KTestUri4);
sl@0
  8884
	testURIs[4].Set(KTestUri5);
sl@0
  8885
sl@0
  8886
	expectedMatchData[0].Set(KExpectedMatchData);
sl@0
  8887
	expectedMatchData[1].Set(KExpectedMatchData2);
sl@0
  8888
	expectedMatchData[2].Set(KExpectedMatchData);
sl@0
  8889
	expectedMatchData[3].Set(KExpectedMatchData);
sl@0
  8890
	expectedMatchData[4].Set(KExpectedMatchData);
sl@0
  8891
sl@0
  8892
	CMMFFormatSelectionParameters* fSelect = CMMFFormatSelectionParameters::NewLC();
sl@0
  8893
sl@0
  8894
	// Set the format match data
sl@0
  8895
	for (TInt i=0;i<KNumberTestURIs;i++)
sl@0
  8896
		{
sl@0
  8897
		//---------------------//
sl@0
  8898
		// Method being Tested //
sl@0
  8899
		//---------------------//
sl@0
  8900
		fSelect->SetMatchToUriSupportL(testURIs[i]);
sl@0
  8901
		//---------------------//
sl@0
  8902
 	
sl@0
  8903
 		if (fSelect->MatchDataType() == CMMFFormatSelectionParameters::EMatchUri)
sl@0
  8904
			{
sl@0
  8905
			const TDesC8& matchurischeme = fSelect->MatchUriScheme();
sl@0
  8906
		
sl@0
  8907
			HBufC* bufMatchData = HBufC::NewL(matchurischeme.Length());
sl@0
  8908
sl@0
  8909
			TPtr ptr = bufMatchData->Des();
sl@0
  8910
			ptr.Copy(matchurischeme);
sl@0
  8911
			if (!(matchurischeme == expectedMatchData[i]))
sl@0
  8912
				{
sl@0
  8913
				INFO_PRINTF3(_L("Uri Match Data failed on URI: %S | scheme: %S"),
sl@0
  8914
								&testURIs[i],
sl@0
  8915
								bufMatchData);
sl@0
  8916
				verdict = EFail;
sl@0
  8917
				} else {
sl@0
  8918
sl@0
  8919
				INFO_PRINTF3(_L("Success  URI: %S | scheme: %S"),
sl@0
  8920
								&testURIs[i],
sl@0
  8921
								bufMatchData);
sl@0
  8922
sl@0
  8923
				}
sl@0
  8924
			delete bufMatchData;
sl@0
  8925
sl@0
  8926
			}				
sl@0
  8927
		else
sl@0
  8928
			{
sl@0
  8929
  			INFO_PRINTF1(_L("MatchDataType set to incorrect type (should be EMatchUri)"));
sl@0
  8930
  			verdict = EFail;
sl@0
  8931
			}
sl@0
  8932
		}
sl@0
  8933
sl@0
  8934
	CleanupStack::Pop(fSelect);
sl@0
  8935
		
sl@0
  8936
	
sl@0
  8937
	return verdict;
sl@0
  8938
	}
sl@0
  8939
sl@0
  8940
sl@0
  8941
#ifdef SYMBIAN_BUILD_GCE
sl@0
  8942
//---------------------------------------------------------------------
sl@0
  8943
// Testing of the Standard Custom Commands of video surface support
sl@0
  8944
//----------------------------------------------------------------------
sl@0
  8945
sl@0
  8946
CTestStep_MMF_CTLFRM_U_0301::CTestStep_MMF_CTLFRM_U_0301()
sl@0
  8947
	/** Constructor
sl@0
  8948
	*/
sl@0
  8949
	{
sl@0
  8950
	// store the name of this test case
sl@0
  8951
	// this is the name that is used by the script file
sl@0
  8952
	// Each test step initialises it's own name
sl@0
  8953
	iTestStepName = _L("MM-MMF-CTLFRM-U-0301");
sl@0
  8954
	}
sl@0
  8955
sl@0
  8956
TVerdict CTestStep_MMF_CTLFRM_U_0301::DoTestStepL( void )
sl@0
  8957
/** Call the RMMFController::Open(..) (with the parameters from test 001), varify the 
sl@0
  8958
 *  return value is 0. Instantiate a CustomCommands Object (specified). Call 
sl@0
  8959
 *  RMMFVideoPlaySurfaceSupportCustomCommands Method specified and varify the 'error' 
sl@0
  8960
 *  is 0. Follow this by calling the  Custom Command 'KLogFunction' and varify the text 
sl@0
  8961
 *  value returned is equal to the specifed text in Test Step. Call the RMMFController::Close() 
sl@0
  8962
 *  on the Custom Controller. Varify 'error' is zero.
sl@0
  8963
sl@0
  8964
 * Use case: N/A
sl@0
  8965
 * @test Req. under test REQ 7418 
sl@0
  8966
 */
sl@0
  8967
	{
sl@0
  8968
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  8969
	__MM_HEAP_MARK;
sl@0
  8970
sl@0
  8971
	TVerdict verdict = EPass;
sl@0
  8972
	_LIT8(KExpectedResult, "MvpssUseSurfacesL Called");
sl@0
  8973
sl@0
  8974
	TMMFPrioritySettings settings;
sl@0
  8975
	TInt error = KErrNone;
sl@0
  8976
	RMMFController controller;
sl@0
  8977
sl@0
  8978
	settings.iPriority = 1;
sl@0
  8979
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  8980
	settings.iState = EMMFStateIdle;
sl@0
  8981
sl@0
  8982
	// Open a Custom Controller
sl@0
  8983
	error = controller.Open(KTstControllerUid,settings);
sl@0
  8984
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  8985
	
sl@0
  8986
	if (error == KErrNone)
sl@0
  8987
		{
sl@0
  8988
		RMMFVideoPlaySurfaceSupportCustomCommands customCommands(controller);
sl@0
  8989
sl@0
  8990
		error = customCommands.UseSurfaces();
sl@0
  8991
		INFO_PRINTF2(_L("customCommands.UseSurfaces() returns: %d"), error);
sl@0
  8992
		}
sl@0
  8993
	//------------------------------------//
sl@0
  8994
	// Getting Log from Custom Controller //
sl@0
  8995
	//------------------------------------//
sl@0
  8996
	if (error == KErrNone)
sl@0
  8997
		{
sl@0
  8998
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  8999
sl@0
  9000
		TBuf8<64> memFunctionText;
sl@0
  9001
	
sl@0
  9002
		TUid uid = {KMmfTestControllerUid};
sl@0
  9003
		TMMFMessageDestination handleInfo(uid);
sl@0
  9004
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9005
sl@0
  9006
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  9007
		
sl@0
  9008
		TBuf<64> memFunctionText16;
sl@0
  9009
		memFunctionText16.Copy(memFunctionText);
sl@0
  9010
	 	INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  9011
sl@0
  9012
		if (memFunctionText != KExpectedResult)
sl@0
  9013
			{
sl@0
  9014
			verdict = EFail;
sl@0
  9015
			}
sl@0
  9016
sl@0
  9017
		}
sl@0
  9018
	//------------------------------------//
sl@0
  9019
sl@0
  9020
	if (error != KErrNone)
sl@0
  9021
		{
sl@0
  9022
		INFO_PRINTF2(_L("Test case failed with error:%d"),error);
sl@0
  9023
		verdict = EFail;
sl@0
  9024
		}
sl@0
  9025
		
sl@0
  9026
		
sl@0
  9027
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9028
	controller.Close();
sl@0
  9029
sl@0
  9030
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9031
	__MM_HEAP_MARKEND;
sl@0
  9032
 
sl@0
  9033
	return verdict;
sl@0
  9034
	}
sl@0
  9035
sl@0
  9036
//---------------------------------------------------------------
sl@0
  9037
sl@0
  9038
CTestStep_MMF_CTLFRM_U_0303::CTestStep_MMF_CTLFRM_U_0303()
sl@0
  9039
	/** Constructor
sl@0
  9040
	*/
sl@0
  9041
	{
sl@0
  9042
	// store the name of this test case
sl@0
  9043
	// this is the name that is used by the script file
sl@0
  9044
	// Each test step initialises it's own name
sl@0
  9045
	
sl@0
  9046
	iTestStepName = _L("MM-MMF-CTLFRM-U-0303");
sl@0
  9047
	}
sl@0
  9048
sl@0
  9049
TVerdict CTestStep_MMF_CTLFRM_U_0303::DoTestStepL( void )
sl@0
  9050
/** As TSU_MMF_CTLFRM_U_0301
sl@0
  9051
sl@0
  9052
 * Use case: N/A
sl@0
  9053
 * @test Req. under test REQ1714.3.3
sl@0
  9054
 */
sl@0
  9055
	{
sl@0
  9056
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9057
	__MM_HEAP_MARK;
sl@0
  9058
sl@0
  9059
	TVerdict verdict = EPass;
sl@0
  9060
	_LIT8(KExpectedResult, "MvpssGetSurfaceParametersL Called");
sl@0
  9061
sl@0
  9062
	TMMFPrioritySettings settings;
sl@0
  9063
	TInt error = KErrNone;
sl@0
  9064
	RMMFController controller;
sl@0
  9065
sl@0
  9066
	settings.iPriority = 1;
sl@0
  9067
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9068
	settings.iState = EMMFStateIdle;
sl@0
  9069
sl@0
  9070
	TSurfaceId surfaceId;
sl@0
  9071
	TRect getRect;
sl@0
  9072
	TVideoAspectRatio par;
sl@0
  9073
sl@0
  9074
	// Open a Custom Controller
sl@0
  9075
	error = controller.Open(KTstControllerUid,settings);
sl@0
  9076
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9077
sl@0
  9078
	if (error == KErrNone)
sl@0
  9079
		{
sl@0
  9080
		RMMFVideoPlaySurfaceSupportCustomCommands customCommands(controller);
sl@0
  9081
sl@0
  9082
		error = customCommands.GetSurfaceParameters(surfaceId, getRect,par);
sl@0
  9083
		INFO_PRINTF2(_L("customCommands.GetSurfaceParameters returns: %d"), error);
sl@0
  9084
		}
sl@0
  9085
	
sl@0
  9086
	//From mmf test controller which sets the values
sl@0
  9087
	TSurfaceId expectedSurfaceId = {11111, 22222, 33333, 44444};
sl@0
  9088
	TInt expectedTlIx = 100;
sl@0
  9089
	TInt expectedTlIy = 50;
sl@0
  9090
	TInt expectedBrIx = 600;
sl@0
  9091
	TInt expectedBrIy = 200;
sl@0
  9092
	TInt expectedParIN = 1;
sl@0
  9093
	TInt expectedParID = 2;
sl@0
  9094
	
sl@0
  9095
sl@0
  9096
	//------------------------------------//
sl@0
  9097
	// Getting Log from Custom Controller //
sl@0
  9098
	//------------------------------------//
sl@0
  9099
	if (!error)
sl@0
  9100
		{
sl@0
  9101
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  9102
		
sl@0
  9103
		TBuf8<64> memFunctionText;
sl@0
  9104
	
sl@0
  9105
		TUid uid = {KMmfTestControllerUid};
sl@0
  9106
		TMMFMessageDestination handleInfo(uid);
sl@0
  9107
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9108
sl@0
  9109
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  9110
				
sl@0
  9111
		TBuf<64> memFunctionText16;
sl@0
  9112
		memFunctionText16.Copy(memFunctionText);
sl@0
  9113
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  9114
sl@0
  9115
		if (memFunctionText != KExpectedResult || expectedSurfaceId != surfaceId || expectedTlIx != getRect.iTl.iX ||
sl@0
  9116
			expectedTlIy != getRect.iTl.iY || expectedBrIx != getRect.iBr.iX || expectedBrIy != getRect.iBr.iY ||
sl@0
  9117
			expectedParIN != par.iNumerator || expectedParID != par.iDenominator)
sl@0
  9118
			{
sl@0
  9119
			INFO_PRINTF5(_L("Expected surfaceId %d %d %d %d"),
sl@0
  9120
							expectedSurfaceId.iInternal[0], expectedSurfaceId.iInternal[1],
sl@0
  9121
							expectedSurfaceId.iInternal[2], expectedSurfaceId.iInternal[3]);
sl@0
  9122
			INFO_PRINTF5(_L("surfaceId Available %d %d %d %d"),
sl@0
  9123
							surfaceId.iInternal[0], surfaceId.iInternal[1],
sl@0
  9124
							surfaceId.iInternal[2], surfaceId.iInternal[3]);
sl@0
  9125
			INFO_PRINTF2(_L("Expected Rect first %d"),expectedTlIx);
sl@0
  9126
			INFO_PRINTF2(_L("Rect first Available %d"),getRect.iTl.iX);
sl@0
  9127
			INFO_PRINTF2(_L("Expected Rect second %d"),expectedTlIy);
sl@0
  9128
			INFO_PRINTF2(_L("Rect second Available %d"),getRect.iTl.iY);
sl@0
  9129
			INFO_PRINTF2(_L("Expected Rect third %d"),expectedBrIx);
sl@0
  9130
	
sl@0
  9131
			INFO_PRINTF2(_L("Rect third Available %d"),getRect.iBr.iX);
sl@0
  9132
			INFO_PRINTF2(_L("Expected Rect fourth %d"),expectedBrIy);
sl@0
  9133
			INFO_PRINTF2(_L("Rect fourth Available %d"),getRect.iBr.iY);
sl@0
  9134
			INFO_PRINTF2(_L("Expected TVideoAspectRatio iNumerator %d"),expectedParIN);
sl@0
  9135
			INFO_PRINTF2(_L("TVideoAspectRatio iNumerator Available %d"),par.iNumerator);
sl@0
  9136
			INFO_PRINTF2(_L("Expected TVideoAspectRatio iDenominator %d"),expectedParID);
sl@0
  9137
			INFO_PRINTF2(_L("TVideoAspectRatio iDenominator Available %d"),par.iDenominator);
sl@0
  9138
	
sl@0
  9139
			verdict = EFail;
sl@0
  9140
			}
sl@0
  9141
sl@0
  9142
		}
sl@0
  9143
	//------------------------------------//
sl@0
  9144
sl@0
  9145
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9146
	controller.Close();
sl@0
  9147
sl@0
  9148
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9149
	__MM_HEAP_MARKEND;
sl@0
  9150
 
sl@0
  9151
	return verdict;
sl@0
  9152
	}
sl@0
  9153
sl@0
  9154
//---------------------------------------------------------------
sl@0
  9155
sl@0
  9156
CTestStep_MMF_CTLFRM_U_0305::CTestStep_MMF_CTLFRM_U_0305(TSurfaceId& aSurfaceId, TBool aNegTest)
sl@0
  9157
	/** Constructor
sl@0
  9158
	*/
sl@0
  9159
	{
sl@0
  9160
	// store the name of this test case
sl@0
  9161
	// this is the name that is used by the script file
sl@0
  9162
	// Each test step initialises it's own name
sl@0
  9163
	iNegTest = aNegTest;
sl@0
  9164
	
sl@0
  9165
	if (!aNegTest) // The value for the positive testing in test controller
sl@0
  9166
		{
sl@0
  9167
		iSurfaceId = aSurfaceId;
sl@0
  9168
		iTestStepName = _L("MM-MMF-CTLFRM-U-0305");
sl@0
  9169
		}
sl@0
  9170
	else  // Any other value for the negative testing
sl@0
  9171
		{
sl@0
  9172
		iSurfaceId2 = aSurfaceId;
sl@0
  9173
		iTestStepName = _L("MM-MMF-CTLFRM-U-0309");
sl@0
  9174
		}
sl@0
  9175
	}
sl@0
  9176
sl@0
  9177
TVerdict CTestStep_MMF_CTLFRM_U_0305::DoTestStepL()
sl@0
  9178
/** As TSU_MMF_CTLFRM_U_0301
sl@0
  9179
 * Use case: N/A
sl@0
  9180
 * @test Req. under test REQ 7418 
sl@0
  9181
 */
sl@0
  9182
	{
sl@0
  9183
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9184
	__MM_HEAP_MARK;
sl@0
  9185
sl@0
  9186
	TVerdict verdict = EPass;
sl@0
  9187
	_LIT8(KExpectedResult, "MvpssSurfaceRemovedL Called");
sl@0
  9188
sl@0
  9189
	TMMFPrioritySettings settings;
sl@0
  9190
	TInt error = KErrNone;
sl@0
  9191
	RMMFController controller;
sl@0
  9192
sl@0
  9193
	settings.iPriority = 1;
sl@0
  9194
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9195
	settings.iState = EMMFStateIdle;
sl@0
  9196
sl@0
  9197
	// Open a Custom Controller
sl@0
  9198
	error = controller.Open(KTstControllerUid,settings);
sl@0
  9199
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9200
sl@0
  9201
	TSurfaceId surfaceId;
sl@0
  9202
	if(iNegTest)
sl@0
  9203
		{
sl@0
  9204
		surfaceId = iSurfaceId2;
sl@0
  9205
		}
sl@0
  9206
	else
sl@0
  9207
		{
sl@0
  9208
		surfaceId = iSurfaceId;
sl@0
  9209
		}
sl@0
  9210
	
sl@0
  9211
	if (error == KErrNone)
sl@0
  9212
		{
sl@0
  9213
		RMMFVideoPlaySurfaceSupportCustomCommands customCommands(controller);
sl@0
  9214
		error = customCommands.SurfaceRemoved(surfaceId);
sl@0
  9215
		INFO_PRINTF2(_L("customCommands.SurfaceRemoved returns: %d"), error);
sl@0
  9216
		}
sl@0
  9217
sl@0
  9218
	//------------------------------------//
sl@0
  9219
	// Getting Log from Custom Controller //
sl@0
  9220
	//------------------------------------//
sl@0
  9221
	if (error == KErrNone)
sl@0
  9222
		{
sl@0
  9223
		INFO_PRINTF1(_L("Getting Log"));
sl@0
  9224
sl@0
  9225
		TBuf8<64> memFunctionText;
sl@0
  9226
	
sl@0
  9227
		TUid uid = {KMmfTestControllerUid};
sl@0
  9228
		TMMFMessageDestination handleInfo(uid);
sl@0
  9229
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9230
sl@0
  9231
		error = controller.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  9232
		
sl@0
  9233
		TBuf<64> memFunctionText16;
sl@0
  9234
		memFunctionText16.Copy(memFunctionText);
sl@0
  9235
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  9236
sl@0
  9237
		if (memFunctionText != KExpectedResult)
sl@0
  9238
			{
sl@0
  9239
			verdict = EFail;
sl@0
  9240
			}
sl@0
  9241
		}
sl@0
  9242
	
sl@0
  9243
	if (error != KErrNone)
sl@0
  9244
		{
sl@0
  9245
		if (iNegTest && error == KErrArgument)
sl@0
  9246
			{
sl@0
  9247
			INFO_PRINTF1(_L("Negative test; Expected return with -6"));
sl@0
  9248
			verdict = EPass;
sl@0
  9249
			}
sl@0
  9250
		else 
sl@0
  9251
			{
sl@0
  9252
			INFO_PRINTF2(_L("Failed with error:%d"),error);
sl@0
  9253
			verdict = EFail;
sl@0
  9254
			}
sl@0
  9255
		}
sl@0
  9256
	
sl@0
  9257
	if (iNegTest && error != KErrArgument)
sl@0
  9258
		{
sl@0
  9259
		INFO_PRINTF1(_L("Negative test; Expected return with -6"));
sl@0
  9260
		verdict = EFail;
sl@0
  9261
		}
sl@0
  9262
	//------------------------------------//
sl@0
  9263
sl@0
  9264
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9265
	controller.Close();
sl@0
  9266
sl@0
  9267
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9268
	__MM_HEAP_MARKEND;
sl@0
  9269
 
sl@0
  9270
	return verdict;
sl@0
  9271
	}
sl@0
  9272
sl@0
  9273
sl@0
  9274
//------------------------------------------------------------------
sl@0
  9275
sl@0
  9276
#endif // SYMBIAN_BUILD_GCE
sl@0
  9277
sl@0
  9278
RTestStep_MMF_CTLFRM_U_0200::RTestStep_MMF_CTLFRM_U_0200()
sl@0
  9279
	/** Constructor
sl@0
  9280
	*/
sl@0
  9281
	{
sl@0
  9282
	// store the name of this test case
sl@0
  9283
	// this is the name that is used by the script file
sl@0
  9284
	// Each test step initialises it's own name
sl@0
  9285
	iTestStepName = _L("MM-MMF-CTLFRM-U-0200");
sl@0
  9286
	}
sl@0
  9287
	
sl@0
  9288
TInt RTestStep_MMF_CTLFRM_U_0200::Timeout(TAny* aArg)
sl@0
  9289
	{
sl@0
  9290
	RTestStep_MMF_CTLFRM_U_0200* arg = static_cast<RTestStep_MMF_CTLFRM_U_0200*>(aArg);
sl@0
  9291
	arg->StopTest(KErrNone,EFail);
sl@0
  9292
	
sl@0
  9293
	return 0;
sl@0
  9294
	}
sl@0
  9295
	
sl@0
  9296
void RTestStep_MMF_CTLFRM_U_0200::KickoffTestL()
sl@0
  9297
/** 
sl@0
  9298
 * Call the RMMFController::Open(..) with the parameters specified, 
sl@0
  9299
 * verify the return value is 0. Sends an asynchronous custom command to the controller which generates a panic
sl@0
  9300
 * in the subthread, verify the return value is 0. Verify application thread terminates with KErrDied. (with Active Scheduler)
sl@0
  9301
sl@0
  9302
 * Use case: N/A
sl@0
  9303
 * @test Req. INC108007
sl@0
  9304
 */
sl@0
  9305
	{	
sl@0
  9306
	// Create an active object that will wrap the test execution
sl@0
  9307
	iAsyncTest = new (ELeave) CAsyncTest(this);
sl@0
  9308
	iAsyncTest->Start();
sl@0
  9309
	}
sl@0
  9310
sl@0
  9311
void RTestStep_MMF_CTLFRM_U_0200::CloseTest()
sl@0
  9312
	{
sl@0
  9313
	if (iAsyncTest)
sl@0
  9314
		{
sl@0
  9315
		iAsyncTest->Cancel();
sl@0
  9316
		delete iAsyncTest;
sl@0
  9317
		}
sl@0
  9318
	}
sl@0
  9319
	
sl@0
  9320
void RTestStep_MMF_CTLFRM_U_0200::OpeningController()
sl@0
  9321
	{
sl@0
  9322
	INFO_PRINTF1(_L("Attempting to Open Controller"));
sl@0
  9323
	}
sl@0
  9324
sl@0
  9325
void RTestStep_MMF_CTLFRM_U_0200::OpenCompleted(TInt aError)
sl@0
  9326
	{
sl@0
  9327
	INFO_PRINTF2(_L("Controller Open: %d"), aError);
sl@0
  9328
	}
sl@0
  9329
sl@0
  9330
void RTestStep_MMF_CTLFRM_U_0200::ClosingController()
sl@0
  9331
	{
sl@0
  9332
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9333
	}
sl@0
  9334
sl@0
  9335
void RTestStep_MMF_CTLFRM_U_0200::ClosingComplete()
sl@0
  9336
	{
sl@0
  9337
	INFO_PRINTF1(_L("Controller Closed"));
sl@0
  9338
	}
sl@0
  9339
sl@0
  9340
void RTestStep_MMF_CTLFRM_U_0200::SendingCustomCommand()
sl@0
  9341
	{
sl@0
  9342
	INFO_PRINTF1(_L("Sending Panic custom command"));
sl@0
  9343
	}
sl@0
  9344
	
sl@0
  9345
void RTestStep_MMF_CTLFRM_U_0200::CustomCommandSent(TInt aError)
sl@0
  9346
	{
sl@0
  9347
	INFO_PRINTF2(_L("Custom Command Sent: %d"), aError);
sl@0
  9348
	}
sl@0
  9349
sl@0
  9350
void RTestStep_MMF_CTLFRM_U_0200::CancellingCustomCommand()
sl@0
  9351
	{
sl@0
  9352
	INFO_PRINTF1(_L("Cancelling Panic custom command"));
sl@0
  9353
	}
sl@0
  9354
	
sl@0
  9355
void RTestStep_MMF_CTLFRM_U_0200::CustomCommandCancelled(TInt aError)
sl@0
  9356
	{
sl@0
  9357
	INFO_PRINTF2(_L("Custom Command Cancelled: %d"), aError);
sl@0
  9358
	}
sl@0
  9359
	
sl@0
  9360
void RTestStep_MMF_CTLFRM_U_0200::TestError(TInt aError)
sl@0
  9361
	{
sl@0
  9362
	if(aError!=KErrServerTerminated)
sl@0
  9363
		{
sl@0
  9364
		StopTest(aError,EFail);
sl@0
  9365
		}
sl@0
  9366
	else
sl@0
  9367
		{
sl@0
  9368
		StopTest(EPass);
sl@0
  9369
		}
sl@0
  9370
	}
sl@0
  9371
sl@0
  9372
RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::CAsyncTest(MMMF_CTRLFRM_U_0200_Observer* aObserver) 
sl@0
  9373
: CActive(EPriorityStandard)
sl@0
  9374
	{
sl@0
  9375
	iObserver = aObserver;
sl@0
  9376
	
sl@0
  9377
	CActiveScheduler::Add(this);
sl@0
  9378
	}
sl@0
  9379
sl@0
  9380
RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::~CAsyncTest()
sl@0
  9381
	{
sl@0
  9382
	Cancel();
sl@0
  9383
	
sl@0
  9384
	iObserver->ClosingController();
sl@0
  9385
	iController.Close();
sl@0
  9386
	iObserver->ClosingComplete();
sl@0
  9387
	}
sl@0
  9388
	
sl@0
  9389
void RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::Start()
sl@0
  9390
	{
sl@0
  9391
	TMMFPrioritySettings settings;
sl@0
  9392
	TInt error = KErrNone;
sl@0
  9393
	
sl@0
  9394
	settings.iPriority = 1;
sl@0
  9395
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9396
	settings.iState = EMMFStateIdle;
sl@0
  9397
sl@0
  9398
	iObserver->OpeningController();
sl@0
  9399
	
sl@0
  9400
	// Open a Custom Controller
sl@0
  9401
	error = iController.Open(KTestTerminationControllerUid,settings);
sl@0
  9402
	iObserver->OpenCompleted(error);
sl@0
  9403
sl@0
  9404
	//------------------------------------//
sl@0
  9405
	// Sending Panic Custom Command //
sl@0
  9406
	//------------------------------------//
sl@0
  9407
	if (!error)
sl@0
  9408
		{
sl@0
  9409
		iObserver->SendingCustomCommand();
sl@0
  9410
		TMMFMessageDestination handleInfo(KTestTerminationControllerUid);
sl@0
  9411
		iMessage = handleInfo;
sl@0
  9412
sl@0
  9413
		iController.CustomCommandAsync(iMessage, KDummyFunc1, KNullDesC8, KNullDesC8, iStatus);
sl@0
  9414
		SetActive();
sl@0
  9415
		}
sl@0
  9416
	else
sl@0
  9417
		iObserver->TestError(error);
sl@0
  9418
	}
sl@0
  9419
sl@0
  9420
void RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::RunL()
sl@0
  9421
	{
sl@0
  9422
	iObserver->CustomCommandSent(iStatus.Int());
sl@0
  9423
	iObserver->TestError(iStatus.Int());
sl@0
  9424
	}
sl@0
  9425
	
sl@0
  9426
TInt RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::RunError(TInt aError)
sl@0
  9427
	{
sl@0
  9428
	return aError;
sl@0
  9429
	}
sl@0
  9430
sl@0
  9431
void RTestStep_MMF_CTLFRM_U_0200::CAsyncTest::DoCancel()
sl@0
  9432
	{
sl@0
  9433
sl@0
  9434
	}
sl@0
  9435
sl@0
  9436
sl@0
  9437
//------------------------------------------------------------------
sl@0
  9438
sl@0
  9439
CTestStep_MMF_CTLFRM_U_0201::CTestStep_MMF_CTLFRM_U_0201()
sl@0
  9440
	/** Constructor
sl@0
  9441
	*/
sl@0
  9442
	{
sl@0
  9443
	// store the name of this test case
sl@0
  9444
	// this is the name that is used by the script file
sl@0
  9445
	// Each test step initialises it's own name
sl@0
  9446
	iTestStepName = _L("MM-MMF-CTLFRM-U-0201");
sl@0
  9447
sl@0
  9448
	
sl@0
  9449
	}
sl@0
  9450
sl@0
  9451
sl@0
  9452
TVerdict CTestStep_MMF_CTLFRM_U_0201::DoTestStepL( void )
sl@0
  9453
/** 
sl@0
  9454
 * Call the RMMFController::Open(..) with the parameters specified, 
sl@0
  9455
 * verify the return value is 0. Sends an asynchronous custom command to the controller which generates a panic
sl@0
  9456
 * in the subthread, verify the return value is 0. Close the controller after a timeout and 
sl@0
  9457
 * verify application thread terminates with KErrDied. (without Active Scheduler)
sl@0
  9458
sl@0
  9459
 * Use case: N/A
sl@0
  9460
 * @test Req. INC108007
sl@0
  9461
 */
sl@0
  9462
	{
sl@0
  9463
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9464
	__MM_HEAP_MARK;
sl@0
  9465
sl@0
  9466
	TVerdict verdict = EPass;
sl@0
  9467
sl@0
  9468
	TMMFPrioritySettings settings;
sl@0
  9469
	TInt error = KErrNone;
sl@0
  9470
	RMMFController controller;
sl@0
  9471
sl@0
  9472
	settings.iPriority = 1;
sl@0
  9473
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9474
	settings.iState = EMMFStateIdle;
sl@0
  9475
sl@0
  9476
	error = controller.Open(KTestTerminationControllerUid,settings);
sl@0
  9477
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9478
sl@0
  9479
	//------------------------------------//
sl@0
  9480
	// Sending Panic Custom Command //
sl@0
  9481
	//------------------------------------//
sl@0
  9482
	if (!error)
sl@0
  9483
		{
sl@0
  9484
		TMMFMessageDestination handleInfo(KTestTerminationControllerUid);
sl@0
  9485
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9486
sl@0
  9487
		TRequestStatus status;
sl@0
  9488
		INFO_PRINTF1(_L("Sending Panic custom command"));
sl@0
  9489
		controller.CustomCommandAsync(messageDest, KDummyFunc1, KNullDesC8, KNullDesC8, status);
sl@0
  9490
		
sl@0
  9491
		// Creation of a timeout timer
sl@0
  9492
		RTimer timer;
sl@0
  9493
		timer.CreateLocal();
sl@0
  9494
		TRequestStatus timeout = KRequestPending;
sl@0
  9495
		timer.After(timeout, 3000000);
sl@0
  9496
		
sl@0
  9497
		User::WaitForRequest(status, timeout);
sl@0
  9498
		INFO_PRINTF3(_L("Status=[%d] Timeout[%d]"), status.Int(), timeout.Int());
sl@0
  9499
		}
sl@0
  9500
	//------------------------------------//
sl@0
  9501
	
sl@0
  9502
	
sl@0
  9503
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9504
	controller.Close();
sl@0
  9505
sl@0
  9506
	// client thread should not panic as such.
sl@0
  9507
	verdict = EPass;
sl@0
  9508
sl@0
  9509
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9510
	__MM_HEAP_MARKEND;
sl@0
  9511
 
sl@0
  9512
	return verdict;
sl@0
  9513
	}
sl@0
  9514
sl@0
  9515
//------------------------------------------------------------------
sl@0
  9516
sl@0
  9517
CTestStep_MMF_CTLFRM_U_0202::CTestStep_MMF_CTLFRM_U_0202()
sl@0
  9518
	/** Constructor
sl@0
  9519
	*/
sl@0
  9520
	{
sl@0
  9521
	// store the name of this test case
sl@0
  9522
	// this is the name that is used by the script file
sl@0
  9523
	// Each test step initialises it's own name
sl@0
  9524
	iTestStepName = _L("MM-MMF-CTLFRM-U-0202");
sl@0
  9525
sl@0
  9526
	
sl@0
  9527
	}
sl@0
  9528
sl@0
  9529
sl@0
  9530
TVerdict CTestStep_MMF_CTLFRM_U_0202::DoTestStepL( void )
sl@0
  9531
/** 
sl@0
  9532
 * Call the RMMFController::Open(..) with the parameters specified, 
sl@0
  9533
 * verify the return value is 0. Call the RMMFController::Close() on the Custom Controller.  
sl@0
  9534
 * Verify error is 0. There will be a memory allocation error while calling iSubThread.Logon() 
sl@0
  9535
 * inside RMMFControllerProxy::Close().
sl@0
  9536
sl@0
  9537
 * Use case: N/A
sl@0
  9538
 * @test Req. INC108007
sl@0
  9539
 */
sl@0
  9540
	{
sl@0
  9541
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9542
	__MM_HEAP_MARK;
sl@0
  9543
sl@0
  9544
	TVerdict verdict = EPass;
sl@0
  9545
sl@0
  9546
	TMMFPrioritySettings settings;
sl@0
  9547
	TInt error = KErrNone;
sl@0
  9548
	RMMFController controller;
sl@0
  9549
sl@0
  9550
	settings.iPriority = 1;
sl@0
  9551
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9552
	settings.iState = EMMFStateIdle;
sl@0
  9553
sl@0
  9554
	INFO_PRINTF1(_L("Attempting to Open Controller"));
sl@0
  9555
sl@0
  9556
	// Open a Custom Controller
sl@0
  9557
	error = controller.Open(KTstControllerUid,settings);
sl@0
  9558
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9559
sl@0
  9560
	if (error)
sl@0
  9561
		{
sl@0
  9562
		verdict = EFail;
sl@0
  9563
		}
sl@0
  9564
sl@0
  9565
	INFO_PRINTF1(_L("Setting __DbgSetAllocFail"));
sl@0
  9566
	User::__DbgSetAllocFail(ETrue, RHeap::EFailNext, 1);
sl@0
  9567
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9568
	controller.Close();
sl@0
  9569
	INFO_PRINTF1(_L("Reseting __DbgSetAllocFail"));
sl@0
  9570
	User::__DbgSetAllocFail(ETrue, RHeap::ENone, 1);
sl@0
  9571
sl@0
  9572
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9573
	__MM_HEAP_MARKEND;
sl@0
  9574
 
sl@0
  9575
	return verdict;
sl@0
  9576
	}
sl@0
  9577
sl@0
  9578
sl@0
  9579
//------------------------------------------------------------------
sl@0
  9580
sl@0
  9581
CTestStep_MMF_CTLFRM_U_0203::CTestStep_MMF_CTLFRM_U_0203()
sl@0
  9582
	/** Constructor
sl@0
  9583
	*/
sl@0
  9584
	{
sl@0
  9585
	// store the name of this test case
sl@0
  9586
	// this is the name that is used by the script file
sl@0
  9587
	// Each test step initialises it's own name
sl@0
  9588
	iTestStepName = _L("MM-MMF-CTLFRM-U-0203");
sl@0
  9589
sl@0
  9590
	
sl@0
  9591
	}
sl@0
  9592
sl@0
  9593
sl@0
  9594
TVerdict CTestStep_MMF_CTLFRM_U_0203::DoTestStepL( void )
sl@0
  9595
/** 
sl@0
  9596
 * Call the RMMFController::Open(..) with the parameters specified, 
sl@0
  9597
 * verify the return value is 0. Call the RMMFController::Close() on the Custom Controller. 
sl@0
  9598
 * Verify error is 0. There will be a memory allocation error while calling timer.CreateLocal() 
sl@0
  9599
 * inside RMMFControllerProxy::Close()
sl@0
  9600
sl@0
  9601
 * Use case: N/A
sl@0
  9602
 * @test Req. INC108007
sl@0
  9603
 */
sl@0
  9604
	{
sl@0
  9605
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9606
	__MM_HEAP_MARK;
sl@0
  9607
sl@0
  9608
	TVerdict verdict = EPass;
sl@0
  9609
sl@0
  9610
	TMMFPrioritySettings settings;
sl@0
  9611
	TInt error = KErrNone;
sl@0
  9612
	RMMFController controller;
sl@0
  9613
sl@0
  9614
	settings.iPriority = 1;
sl@0
  9615
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9616
	settings.iState = EMMFStateIdle;
sl@0
  9617
sl@0
  9618
	INFO_PRINTF1(_L("Attempting to Open Controller"));
sl@0
  9619
sl@0
  9620
	// Open a Custom Controller
sl@0
  9621
	error = controller.Open(KTstControllerUid,settings);
sl@0
  9622
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9623
sl@0
  9624
	if (error)
sl@0
  9625
		{
sl@0
  9626
		verdict = EFail;
sl@0
  9627
		}
sl@0
  9628
sl@0
  9629
	INFO_PRINTF1(_L("Setting __DbgSetAllocFail"));
sl@0
  9630
	User::__DbgSetAllocFail(ETrue, RHeap::EDeterministic, 2);
sl@0
  9631
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
  9632
	controller.Close();
sl@0
  9633
	INFO_PRINTF1(_L("Reseting __DbgSetAllocFail"));
sl@0
  9634
	User::__DbgSetAllocFail(ETrue, RHeap::ENone, 1);
sl@0
  9635
sl@0
  9636
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9637
	__MM_HEAP_MARKEND;
sl@0
  9638
 
sl@0
  9639
	return verdict;
sl@0
  9640
	}
sl@0
  9641
sl@0
  9642
sl@0
  9643
//------------------------------------------------------------------
sl@0
  9644
sl@0
  9645
#ifdef SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
sl@0
  9646
TVerdict CTestStep_MMF_CTLFRM_Subtitles::DoTestStepPreambleL()
sl@0
  9647
	{
sl@0
  9648
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
  9649
	__MM_HEAP_MARK;
sl@0
  9650
	
sl@0
  9651
	TMMFPrioritySettings settings;
sl@0
  9652
	settings.iPriority = 1;
sl@0
  9653
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
  9654
	settings.iState = EMMFStateIdle;
sl@0
  9655
sl@0
  9656
	// Open a Custom Controller
sl@0
  9657
	TInt error = iController.Open(KTstControllerUid, settings);
sl@0
  9658
	
sl@0
  9659
	if (KErrNone != error)
sl@0
  9660
		{
sl@0
  9661
		ERR_PRINTF2(_L("Controller Open: %d"), error);
sl@0
  9662
		return EInconclusive; // Cannot run the test
sl@0
  9663
		}
sl@0
  9664
	
sl@0
  9665
	iSubtitleCommands = new(ELeave) RMMFVideoPlaySubtitleSupportCustomCommands(iController);
sl@0
  9666
	return CTestStep_MMF_CTLFRM::DoTestStepPreambleL();
sl@0
  9667
	}
sl@0
  9668
sl@0
  9669
TVerdict CTestStep_MMF_CTLFRM_Subtitles::DoTestStepPostambleL()
sl@0
  9670
	{
sl@0
  9671
	iController.Close();
sl@0
  9672
	delete iSubtitleCommands;
sl@0
  9673
	iSubtitleCommands = NULL;
sl@0
  9674
	
sl@0
  9675
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
  9676
	__MM_HEAP_MARKEND;
sl@0
  9677
	
sl@0
  9678
	return EPass;
sl@0
  9679
	}
sl@0
  9680
sl@0
  9681
TVerdict CTestStep_MMF_CTLFRM_Subtitles::CheckExpectedFunctionText(const TDesC8& aExpected)
sl@0
  9682
	{
sl@0
  9683
	INFO_PRINTF1(_L("Getting Log"));
sl@0
  9684
sl@0
  9685
	TBuf8<64> memFunctionText;
sl@0
  9686
sl@0
  9687
	TUid uid = {KMmfTestControllerUid};
sl@0
  9688
	TMMFMessageDestination handleInfo(uid);
sl@0
  9689
	TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9690
sl@0
  9691
	TInt error = iController.CustomCommandSync(messageDest, KLogFunction, KNullDesC8, KNullDesC8, memFunctionText);
sl@0
  9692
	
sl@0
  9693
	if (KErrNone != error)
sl@0
  9694
		{
sl@0
  9695
		ERR_PRINTF2(_L("Failed to retrieve function text.  Error is %d"), error);
sl@0
  9696
		return EFail;
sl@0
  9697
		}
sl@0
  9698
	
sl@0
  9699
	TBuf<64> memFunctionText16;
sl@0
  9700
	memFunctionText16.Copy(memFunctionText);
sl@0
  9701
 	
sl@0
  9702
	if (memFunctionText != aExpected)
sl@0
  9703
		{
sl@0
  9704
		TBuf<64> expected16;
sl@0
  9705
	 	expected16.Copy(aExpected);
sl@0
  9706
		ERR_PRINTF3(_L("Function log expected \"%S\" but got \"%S\""), &expected16, &memFunctionText16);
sl@0
  9707
		return EFail;
sl@0
  9708
		}
sl@0
  9709
	else
sl@0
  9710
		{
sl@0
  9711
		INFO_PRINTF2(_L("Log:%S"),&memFunctionText16);
sl@0
  9712
		}
sl@0
  9713
	
sl@0
  9714
	return EPass;
sl@0
  9715
	}
sl@0
  9716
sl@0
  9717
void CTestStep_MMF_CTLFRM_Subtitles::SetExpectedSubtitlesAvailableL(TInt aAvailable)
sl@0
  9718
	{
sl@0
  9719
	TUid uid = {KMmfTestControllerUid};
sl@0
  9720
	TMMFMessageDestination handleInfo(uid);
sl@0
  9721
	TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
  9722
	TPckgBuf<TInt> availPckg(aAvailable);
sl@0
  9723
sl@0
  9724
	User::LeaveIfError(iController.CustomCommandSync(messageDest, KTestSetSubtitleAvailable, availPckg, KNullDesC8));
sl@0
  9725
	}
sl@0
  9726
sl@0
  9727
CTestStep_MMF_CTRLFRM_U_400::CTestStep_MMF_CTRLFRM_U_400()
sl@0
  9728
	{
sl@0
  9729
	// store the name of this test case
sl@0
  9730
	// this is the name that is used by the script file
sl@0
  9731
	// Each test step initialises it's own name
sl@0
  9732
	iTestStepName = _L("MM-MMF-CTLFRM-U-0400");
sl@0
  9733
	}
sl@0
  9734
sl@0
  9735
TVerdict CTestStep_MMF_CTRLFRM_U_400::DoTestStepL()
sl@0
  9736
	{
sl@0
  9737
	TBool avail = EFalse;
sl@0
  9738
	TInt err = iSubtitleCommands->GetSubtitlesAvailable(avail);
sl@0
  9739
	
sl@0
  9740
	if (KErrNone != err)
sl@0
  9741
		{
sl@0
  9742
		ERR_PRINTF3(_L("SubtitlesAvailable returned error code %d; expected %d"), err, KErrNone);
sl@0
  9743
		return EFail;
sl@0
  9744
		}
sl@0
  9745
	
sl@0
  9746
	if (!avail)
sl@0
  9747
		{
sl@0
  9748
		ERR_PRINTF1(_L("Expected subtitles to be available, but got EFalse"));
sl@0
  9749
		return EFail;
sl@0
  9750
		}
sl@0
  9751
	
sl@0
  9752
	return CheckExpectedFunctionText(KSubAvailable);
sl@0
  9753
	}
sl@0
  9754
sl@0
  9755
CTestStep_MMF_CTRLFRM_U_401::CTestStep_MMF_CTRLFRM_U_401()
sl@0
  9756
	{
sl@0
  9757
	// store the name of this test case
sl@0
  9758
	// this is the name that is used by the script file
sl@0
  9759
	// Each test step initialises it's own name
sl@0
  9760
	iTestStepName = _L("MM-MMF-CTLFRM-U-0401");
sl@0
  9761
	}
sl@0
  9762
sl@0
  9763
TVerdict CTestStep_MMF_CTRLFRM_U_401::DoTestStepL()
sl@0
  9764
	{
sl@0
  9765
	TInt err = iSubtitleCommands->DisableSubtitles();
sl@0
  9766
	
sl@0
  9767
	if (KErrNone != err)
sl@0
  9768
		{
sl@0
  9769
		ERR_PRINTF3(_L("DisableSubtitles returned %d; expected %d"), err, KErrNone);
sl@0
  9770
		return EFail;
sl@0
  9771
		}
sl@0
  9772
	
sl@0
  9773
	return CheckExpectedFunctionText(KDisableSub);
sl@0
  9774
	}
sl@0
  9775
sl@0
  9776
CTestStep_MMF_CTRLFRM_U_402::CTestStep_MMF_CTRLFRM_U_402()
sl@0
  9777
	{
sl@0
  9778
	// store the name of this test case
sl@0
  9779
	// this is the name that is used by the script file
sl@0
  9780
	// Each test step initialises it's own name
sl@0
  9781
	iTestStepName = _L("MM-MMF-CTLFRM-U-0402");
sl@0
  9782
	}
sl@0
  9783
sl@0
  9784
TVerdict CTestStep_MMF_CTRLFRM_U_402::DoTestStepL()
sl@0
  9785
	{
sl@0
  9786
	TInt err = iSubtitleCommands->EnableSubtitles();
sl@0
  9787
	
sl@0
  9788
	if (KErrNone != err)
sl@0
  9789
		{
sl@0
  9790
		ERR_PRINTF3(_L("EnableSubtitles returned %d; expected %d"), err, KErrNone);
sl@0
  9791
		return EFail;
sl@0
  9792
		}
sl@0
  9793
	
sl@0
  9794
	return CheckExpectedFunctionText(KEnableSub);
sl@0
  9795
	}
sl@0
  9796
sl@0
  9797
CTestStep_MMF_CTRLFRM_U_403::CTestStep_MMF_CTRLFRM_U_403()
sl@0
  9798
	{
sl@0
  9799
	// store the name of this test case
sl@0
  9800
	// this is the name that is used by the script file
sl@0
  9801
	// Each test step initialises it's own name
sl@0
  9802
	iTestStepName = _L("MM-MMF-CTLFRM-U-0403");
sl@0
  9803
	}
sl@0
  9804
sl@0
  9805
TVerdict CTestStep_MMF_CTRLFRM_U_403::DoTestStepL()
sl@0
  9806
	{
sl@0
  9807
	TMMFSubtitleWindowConfig config;
sl@0
  9808
	config.iWindowId = KSubtitleWindowId;
sl@0
  9809
	config.iDisplayMode = KSubtitleDisplayMode;
sl@0
  9810
	config.iRotation = KSubtitleRotation;
sl@0
  9811
	config.iWindowClipRect = KSubtitleCrpRect;
sl@0
  9812
	
sl@0
  9813
	TInt err = iSubtitleCommands->AddSubtitleConfig(config);
sl@0
  9814
	
sl@0
  9815
	if (KErrNone != err)
sl@0
  9816
		{
sl@0
  9817
		ERR_PRINTF3(_L("AddSubtitleConfig returned %d; expected %d"), err, KErrNone);
sl@0
  9818
		return EFail;
sl@0
  9819
		}
sl@0
  9820
	
sl@0
  9821
	return CheckExpectedFunctionText(KAddSubConfig);
sl@0
  9822
	}
sl@0
  9823
sl@0
  9824
CTestStep_MMF_CTRLFRM_U_404::CTestStep_MMF_CTRLFRM_U_404()
sl@0
  9825
	{
sl@0
  9826
	// store the name of this test case
sl@0
  9827
	// this is the name that is used by the script file
sl@0
  9828
	// Each test step initialises it's own name
sl@0
  9829
	iTestStepName = _L("MM-MMF-CTLFRM-U-0404");
sl@0
  9830
	}
sl@0
  9831
sl@0
  9832
TVerdict CTestStep_MMF_CTRLFRM_U_404::DoTestStepL()
sl@0
  9833
	{
sl@0
  9834
	TMMFSubtitleWindowConfig config;
sl@0
  9835
	config.iWindowId = KSubtitleWindowId;
sl@0
  9836
	config.iDisplayMode = KSubtitleDisplayMode;
sl@0
  9837
	config.iRotation = KSubtitleRotation;
sl@0
  9838
	config.iWindowClipRect = KSubtitleCrpRect;
sl@0
  9839
	
sl@0
  9840
	TInt err = iSubtitleCommands->UpdateSubtitleConfig(config);
sl@0
  9841
	
sl@0
  9842
	if (KErrNone != err)
sl@0
  9843
		{
sl@0
  9844
		ERR_PRINTF3(_L("UpdateSubtitleConfig returned %d; expected %d"), err, KErrNone);
sl@0
  9845
		return EFail;
sl@0
  9846
		}
sl@0
  9847
	
sl@0
  9848
	return CheckExpectedFunctionText(KUpdateSubConfig);
sl@0
  9849
	}
sl@0
  9850
sl@0
  9851
CTestStep_MMF_CTRLFRM_U_405::CTestStep_MMF_CTRLFRM_U_405()
sl@0
  9852
	{
sl@0
  9853
	// store the name of this test case
sl@0
  9854
	// this is the name that is used by the script file
sl@0
  9855
	// Each test step initialises it's own name
sl@0
  9856
	iTestStepName = _L("MM-MMF-CTLFRM-U-0405");
sl@0
  9857
	}
sl@0
  9858
sl@0
  9859
TVerdict CTestStep_MMF_CTRLFRM_U_405::DoTestStepL()
sl@0
  9860
	{
sl@0
  9861
	TInt err = iSubtitleCommands->RemoveSubtitleConfig(KSubtitleWindowId);
sl@0
  9862
	
sl@0
  9863
	if (KErrNone != err)
sl@0
  9864
		{
sl@0
  9865
		ERR_PRINTF3(_L("RemoveSubtitleConfig returned %d; expected %d"), err, KErrNone);
sl@0
  9866
		return EFail;
sl@0
  9867
		}
sl@0
  9868
	
sl@0
  9869
	return CheckExpectedFunctionText(KRemoveSubConfig);
sl@0
  9870
	}
sl@0
  9871
sl@0
  9872
CTestStep_MMF_CTRLFRM_U_406::CTestStep_MMF_CTRLFRM_U_406()
sl@0
  9873
	{
sl@0
  9874
	// store the name of this test case
sl@0
  9875
	// this is the name that is used by the script file
sl@0
  9876
	// Each test step initialises it's own name
sl@0
  9877
	iTestStepName = _L("MM-MMF-CTLFRM-U-0406");
sl@0
  9878
	}
sl@0
  9879
sl@0
  9880
TVerdict CTestStep_MMF_CTRLFRM_U_406::DoTestStepL()
sl@0
  9881
	{
sl@0
  9882
	TWsGraphicId wsId(TWsGraphicId::EUninitialized);
sl@0
  9883
	TRect rect;
sl@0
  9884
	TInt err = iSubtitleCommands->GetCrpParameters(KSubtitleWindowId, wsId, rect);
sl@0
  9885
	
sl@0
  9886
	if (KErrNone != err)
sl@0
  9887
		{
sl@0
  9888
		ERR_PRINTF3(_L("GetCrpParameters returned %d; expected %d"), err, KErrNone);
sl@0
  9889
		return EFail;
sl@0
  9890
		}
sl@0
  9891
	
sl@0
  9892
	TWsGraphicId wsIdExpected(KSubtitleWsGraphicId);
sl@0
  9893
	if (wsIdExpected.Compare(wsId) != 0 || KSubtitleCrpRect != rect)
sl@0
  9894
		{
sl@0
  9895
		ERR_PRINTF1(_L("Unexpected parameters retrieved from GetCrpParameters"));
sl@0
  9896
		return EFail;
sl@0
  9897
		}
sl@0
  9898
	
sl@0
  9899
	return CheckExpectedFunctionText(KGetCrpParams);
sl@0
  9900
	}
sl@0
  9901
sl@0
  9902
CTestStep_MMF_CTRLFRM_U_407::CTestStep_MMF_CTRLFRM_U_407()
sl@0
  9903
	{
sl@0
  9904
	// store the name of this test case
sl@0
  9905
	// this is the name that is used by the script file
sl@0
  9906
	// Each test step initialises it's own name
sl@0
  9907
	iTestStepName = _L("MM-MMF-CTLFRM-U-0407");
sl@0
  9908
	}
sl@0
  9909
sl@0
  9910
TVerdict CTestStep_MMF_CTRLFRM_U_407::DoTestStepL()
sl@0
  9911
	{
sl@0
  9912
	RArray<TLanguage> languages;
sl@0
  9913
	CleanupClosePushL(languages);
sl@0
  9914
	TRAPD(err, iSubtitleCommands->GetSupportedSubtitleLanguagesL(languages));
sl@0
  9915
	
sl@0
  9916
	if (KErrNone != err)
sl@0
  9917
		{
sl@0
  9918
		ERR_PRINTF3(_L("GetSupportedSubtitleLanguagesL left with code %d; expected %d"), err, KErrNone);
sl@0
  9919
		CleanupStack::PopAndDestroy(&languages);
sl@0
  9920
		return EFail;
sl@0
  9921
		}
sl@0
  9922
	
sl@0
  9923
	if (languages.Count() != 3)
sl@0
  9924
		{
sl@0
  9925
		ERR_PRINTF2(_L("Expected 3 languages, but got %d"), languages.Count());
sl@0
  9926
		CleanupStack::PopAndDestroy(&languages);
sl@0
  9927
		return EFail;
sl@0
  9928
		}
sl@0
  9929
	
sl@0
  9930
	if (KSubtitleLanguage0 != languages[0] || 
sl@0
  9931
			KSubtitleLanguage1 != languages[1] || 
sl@0
  9932
			KSubtitleLanguage2 != languages[2])
sl@0
  9933
		{
sl@0
  9934
		ERR_PRINTF1(_L("Unexpected language returned"));
sl@0
  9935
		CleanupStack::PopAndDestroy(&languages);
sl@0
  9936
		return EFail;
sl@0
  9937
		}
sl@0
  9938
	
sl@0
  9939
	CleanupStack::PopAndDestroy(&languages);
sl@0
  9940
	return CheckExpectedFunctionText(KGetSubLangSup);
sl@0
  9941
	}
sl@0
  9942
sl@0
  9943
CTestStep_MMF_CTRLFRM_U_408::CTestStep_MMF_CTRLFRM_U_408()
sl@0
  9944
	{
sl@0
  9945
	// store the name of this test case
sl@0
  9946
	// this is the name that is used by the script file
sl@0
  9947
	// Each test step initialises it's own name
sl@0
  9948
	iTestStepName = _L("MM-MMF-CTLFRM-U-0408");
sl@0
  9949
	}
sl@0
  9950
sl@0
  9951
TVerdict CTestStep_MMF_CTRLFRM_U_408::DoTestStepL()
sl@0
  9952
	{
sl@0
  9953
	TLanguage language = ELangTest;
sl@0
  9954
	TInt err = iSubtitleCommands->GetSubtitleLanguage(language);
sl@0
  9955
	
sl@0
  9956
	if (KErrNone != err)
sl@0
  9957
		{
sl@0
  9958
		ERR_PRINTF3(_L("GetSubtitleLanguage returned %d; expected %d"), err, KErrNone);
sl@0
  9959
		return EFail;
sl@0
  9960
		}
sl@0
  9961
	
sl@0
  9962
	if (KSubtitleLanguage0 != language)
sl@0
  9963
		{
sl@0
  9964
		ERR_PRINTF3(_L("Language is %d but expected %d"), language, KSubtitleLanguage0);
sl@0
  9965
		return EFail;
sl@0
  9966
		}
sl@0
  9967
	
sl@0
  9968
	return CheckExpectedFunctionText(KGetSubLang);
sl@0
  9969
	}
sl@0
  9970
sl@0
  9971
CTestStep_MMF_CTRLFRM_U_409::CTestStep_MMF_CTRLFRM_U_409()
sl@0
  9972
	{
sl@0
  9973
	// store the name of this test case
sl@0
  9974
	// this is the name that is used by the script file
sl@0
  9975
	// Each test step initialises it's own name
sl@0
  9976
	iTestStepName = _L("MM-MMF-CTLFRM-U-0409");
sl@0
  9977
	}
sl@0
  9978
sl@0
  9979
TVerdict CTestStep_MMF_CTRLFRM_U_409::DoTestStepL()
sl@0
  9980
	{
sl@0
  9981
	TInt err = iSubtitleCommands->SetSubtitleLanguage(KSubtitleLanguage0);
sl@0
  9982
	
sl@0
  9983
	if (KErrNone != err)
sl@0
  9984
		{
sl@0
  9985
		ERR_PRINTF3(_L("SetSubtitleLanguage returned %d; expected %d"), err, KErrNone);
sl@0
  9986
		return EFail;
sl@0
  9987
		}
sl@0
  9988
	
sl@0
  9989
	return CheckExpectedFunctionText(KSetSubLang);
sl@0
  9990
	}
sl@0
  9991
sl@0
  9992
CTestStep_MMF_CTRLFRM_U_410::CTestStep_MMF_CTRLFRM_U_410()
sl@0
  9993
	{
sl@0
  9994
	// store the name of this test case
sl@0
  9995
	// this is the name that is used by the script file
sl@0
  9996
	// Each test step initialises it's own name
sl@0
  9997
	iTestStepName = _L("MM-MMF-CTLFRM-U-0410");
sl@0
  9998
	}
sl@0
  9999
sl@0
 10000
TVerdict CTestStep_MMF_CTRLFRM_U_410::DoTestStepL()
sl@0
 10001
	{
sl@0
 10002
	// Expect subtitle functions to fail with KErrNotSupported.
sl@0
 10003
	SetExpectedSubtitlesAvailableL(KErrNotSupported);
sl@0
 10004
	
sl@0
 10005
	TBool avail = ETrue;
sl@0
 10006
	
sl@0
 10007
	TInt err = iSubtitleCommands->GetSubtitlesAvailable(avail);
sl@0
 10008
	
sl@0
 10009
	if (KErrNone != err)
sl@0
 10010
		{
sl@0
 10011
		ERR_PRINTF2(_L("GetSubtitlesAvailable returned error %d; expected KErrNone"), err);
sl@0
 10012
		return EFail;
sl@0
 10013
		}
sl@0
 10014
	
sl@0
 10015
	if (avail)
sl@0
 10016
		{
sl@0
 10017
		ERR_PRINTF1(_L("GetSubtitlesAvailable reported subtitles as available."));
sl@0
 10018
		return EFail;
sl@0
 10019
		}
sl@0
 10020
	
sl@0
 10021
	err = iSubtitleCommands->EnableSubtitles();
sl@0
 10022
	if (KErrNotSupported != err)
sl@0
 10023
		{
sl@0
 10024
		ERR_PRINTF2(_L("EnableSubtitles returned error %d; expected KErrNotSupported"), err);
sl@0
 10025
		return EFail;
sl@0
 10026
		}
sl@0
 10027
	
sl@0
 10028
	err = iSubtitleCommands->DisableSubtitles();
sl@0
 10029
	if (KErrNotSupported != err)
sl@0
 10030
		{
sl@0
 10031
		ERR_PRINTF2(_L("DisableSubtitles returned error %d; expected KErrNotSupported"), err);
sl@0
 10032
		return EFail;
sl@0
 10033
		}
sl@0
 10034
	
sl@0
 10035
	TMMFSubtitleWindowConfig config;
sl@0
 10036
	err = iSubtitleCommands->AddSubtitleConfig(config);
sl@0
 10037
	if (KErrNotSupported != err)
sl@0
 10038
		{
sl@0
 10039
		ERR_PRINTF2(_L("AddSubtitleConfig returned error %d; expected KErrNotSupported"), err);
sl@0
 10040
		return EFail;
sl@0
 10041
		}
sl@0
 10042
	
sl@0
 10043
	err = iSubtitleCommands->UpdateSubtitleConfig(config);
sl@0
 10044
	if (KErrNotSupported != err)
sl@0
 10045
		{
sl@0
 10046
		ERR_PRINTF2(_L("UpdateSubtitleConfig returned error %d; expected KErrNotSupported"), err);
sl@0
 10047
		return EFail;
sl@0
 10048
		}
sl@0
 10049
	
sl@0
 10050
	err = iSubtitleCommands->RemoveSubtitleConfig(0);
sl@0
 10051
	if (KErrNotSupported != err)
sl@0
 10052
		{
sl@0
 10053
		ERR_PRINTF2(_L("RemoveSubtitleConfig returned error %d; expected KErrNotSupported"), err);
sl@0
 10054
		return EFail;
sl@0
 10055
		}
sl@0
 10056
	
sl@0
 10057
	TWsGraphicId wsId(TWsGraphicId::EUninitialized);
sl@0
 10058
	TRect rect;
sl@0
 10059
	err = iSubtitleCommands->GetCrpParameters(0, wsId, rect);
sl@0
 10060
	if (KErrNotSupported != err)
sl@0
 10061
		{
sl@0
 10062
		ERR_PRINTF2(_L("GetCrpParameters returned error %d; expected KErrNotSupported"), err);
sl@0
 10063
		return EFail;
sl@0
 10064
		}
sl@0
 10065
	
sl@0
 10066
	TLanguage language;
sl@0
 10067
	err = iSubtitleCommands->GetSubtitleLanguage(language);
sl@0
 10068
	if (KErrNotSupported != err)
sl@0
 10069
		{
sl@0
 10070
		ERR_PRINTF2(_L("GetSubtitleLanguage returned error %d; expected KErrNotSupported"), err);
sl@0
 10071
		return EFail;
sl@0
 10072
		}
sl@0
 10073
	
sl@0
 10074
	err = iSubtitleCommands->SetSubtitleLanguage(language);
sl@0
 10075
	if (KErrNotSupported != err)
sl@0
 10076
		{
sl@0
 10077
		ERR_PRINTF2(_L("SetSubtitleLanguage returned error %d; expected KErrNotSupported"), err);
sl@0
 10078
		return EFail;
sl@0
 10079
		}
sl@0
 10080
	
sl@0
 10081
	RArray<TLanguage> languages;
sl@0
 10082
	TRAP(err, iSubtitleCommands->GetSupportedSubtitleLanguagesL(languages));
sl@0
 10083
	languages.Close();
sl@0
 10084
	if (KErrNotSupported != err)
sl@0
 10085
		{
sl@0
 10086
		ERR_PRINTF2(_L("GetSupportedSubtitleLanguagesL returned error %d; expected KErrNotSupported"), err);
sl@0
 10087
		return EFail;
sl@0
 10088
		}
sl@0
 10089
	
sl@0
 10090
	return EPass;
sl@0
 10091
	}
sl@0
 10092
sl@0
 10093
#endif //SYMBIAN_MULTIMEDIA_SUBTITLE_SUPPORT
sl@0
 10094
sl@0
 10095
//------------------------------------------------------------------
sl@0
 10096
sl@0
 10097
CTestStep_MMF_CTLFRM_U_0300::CTestStep_MMF_CTLFRM_U_0300()
sl@0
 10098
	/** Constructor
sl@0
 10099
	*/
sl@0
 10100
	{
sl@0
 10101
	// store the name of this test case
sl@0
 10102
	// this is the name that is used by the script file
sl@0
 10103
	// Each test step initialises it's own name
sl@0
 10104
	iTestStepName = _L("MM-MMF-CTLFRM-U-0300");
sl@0
 10105
sl@0
 10106
	
sl@0
 10107
	}
sl@0
 10108
sl@0
 10109
TVerdict CTestStep_MMF_CTLFRM_U_0300::DoTestStepL( void )
sl@0
 10110
	{
sl@0
 10111
	INFO_PRINTF1(_L("Setting UHEAP_MARK"));
sl@0
 10112
	INFO_PRINTF1(_L("CR1655 - Test to check that stack size has been set to 0x4000"));
sl@0
 10113
	INFO_PRINTF1(_L("On emulator 1MB should be fine, since stack size cannot be set"));
sl@0
 10114
	__MM_HEAP_MARK;
sl@0
 10115
sl@0
 10116
	TVerdict verdict = EPass;
sl@0
 10117
	
sl@0
 10118
	TMMFPrioritySettings settings;
sl@0
 10119
	TInt error = KErrNone;
sl@0
 10120
	RMMFController controller;
sl@0
 10121
sl@0
 10122
	settings.iPriority = 1;
sl@0
 10123
	settings.iPref = EMdaPriorityPreferenceTime;
sl@0
 10124
	settings.iState = EMMFStateIdle;
sl@0
 10125
sl@0
 10126
	// Open a Custom Controller
sl@0
 10127
	error = controller.Open(KTstControllerUid,settings);
sl@0
 10128
	INFO_PRINTF2(_L("Controller Open: %d"), error);
sl@0
 10129
	TUint32 expectedStackSize;
sl@0
 10130
	
sl@0
 10131
	#ifndef __WINSCW__
sl@0
 10132
	//on hardware we expect the stack size to be set to what is in the resource file
sl@0
 10133
	expectedStackSize=0x4000;
sl@0
 10134
	#else
sl@0
 10135
	//on emulator stack size is 1MB due to it being on a single process / windows thread
sl@0
 10136
	expectedStackSize=0x100000;
sl@0
 10137
	#endif
sl@0
 10138
	
sl@0
 10139
	TUint32 stksz=0;
sl@0
 10140
	if (!error)
sl@0
 10141
		{
sl@0
 10142
		INFO_PRINTF1(_L("Calling CustomCommandSync"));
sl@0
 10143
		TUid uid = {KMmfTestControllerUid};
sl@0
 10144
		TMMFMessageDestination handleInfo(uid);
sl@0
 10145
		TMMFMessageDestinationPckg messageDest(handleInfo);
sl@0
 10146
		TPckg<TUint32> stacksize(0);
sl@0
 10147
					
sl@0
 10148
		error = controller.CustomCommandSync(messageDest, KFuncThreadStackSize, KNullDesC8, KNullDesC8,stacksize);
sl@0
 10149
		stksz=stacksize();
sl@0
 10150
		}
sl@0
 10151
	
sl@0
 10152
	if(stksz!=expectedStackSize || error)
sl@0
 10153
		{
sl@0
 10154
		verdict=EFail;
sl@0
 10155
		}
sl@0
 10156
	INFO_PRINTF2(_L("Stack Size is set to %d"),stksz);
sl@0
 10157
	INFO_PRINTF1(_L("Closing Controller"));
sl@0
 10158
	controller.Close();
sl@0
 10159
sl@0
 10160
	INFO_PRINTF1(_L("Setting UHEAP_MARKEND"));
sl@0
 10161
	__MM_HEAP_MARKEND;
sl@0
 10162
 
sl@0
 10163
	return verdict;
sl@0
 10164
	}
sl@0
 10165