os/mm/mmlibs/mmfw/tsrc/mmfunittest/DevVideo/src/ciu/testdevvideociuplay.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) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
#ifdef SYMBIAN_BUILD_GCE
sl@0
    17
#include <mmf/common/mmfvideosurfacecustomcommands.h>
sl@0
    18
#include <mmf/devvideo/devvideoclientbuffersupport.h>
sl@0
    19
#include "videoframebuffer.h"
sl@0
    20
#endif // SYMBIAN_BUILD_GCE
sl@0
    21
sl@0
    22
#include "testdevvideociuplay.h"
sl@0
    23
#include "testdevvideociuplugins/ciudecoder.h"
sl@0
    24
#include "testdevvideociuplugins/ciupostproc.h"
sl@0
    25
#include "testdevvideociuplugins/ciudevvideotestinterface.h"
sl@0
    26
sl@0
    27
// DevVideoCiu base class
sl@0
    28
sl@0
    29
CTestDevVideoCiuPlayStep::CTestDevVideoCiuPlayStep(const TDesC& aTestName)
sl@0
    30
	{
sl@0
    31
	// store the name of this test case
sl@0
    32
	// this is the name that is used by the script file
sl@0
    33
	// Each test step initialises it's own name
sl@0
    34
	iTestStepName = aTestName;
sl@0
    35
	}
sl@0
    36
	
sl@0
    37
CTestDevVideoCiuPlayStep::~CTestDevVideoCiuPlayStep() 
sl@0
    38
	{
sl@0
    39
	}
sl@0
    40
sl@0
    41
TVerdict CTestDevVideoCiuPlayStep::DoTestStepPreambleL()
sl@0
    42
	{
sl@0
    43
	TVerdict ret = CTestDevVideoCiuStep::DoTestStepPreambleL();
sl@0
    44
sl@0
    45
	__UHEAP_MARK;
sl@0
    46
	TRAPD(err, iDevVideoPlay = CMMFDevVideoPlay::NewL( *this ));
sl@0
    47
	if (err != KErrNone)
sl@0
    48
		{
sl@0
    49
		ERR_PRINTF1(_L("Could not create a CMMFDevVideoPlay!"));
sl@0
    50
		ret = EInconclusive;
sl@0
    51
		}
sl@0
    52
	return ret;
sl@0
    53
	}
sl@0
    54
sl@0
    55
TVerdict CTestDevVideoCiuPlayStep::DoTestStepPostambleL()
sl@0
    56
	{
sl@0
    57
	delete iDevVideoPlay;	
sl@0
    58
	__MM_HEAP_MARKEND;
sl@0
    59
	
sl@0
    60
	return EPass;
sl@0
    61
	}
sl@0
    62
sl@0
    63
TVerdict CTestDevVideoCiuPlayStep::DoTestStepL()
sl@0
    64
	{
sl@0
    65
	TVerdict ret = EFail;
sl@0
    66
sl@0
    67
	iDevVideoPlay->Initialize();
sl@0
    68
sl@0
    69
	if (iError == KErrNone)
sl@0
    70
		{
sl@0
    71
		INFO_PRINTF1(_L("DevVideo Play initialisation was successful."));
sl@0
    72
		
sl@0
    73
		// call the test step
sl@0
    74
		ret = DoTestL();
sl@0
    75
		}
sl@0
    76
	else
sl@0
    77
		{
sl@0
    78
		ret = EInconclusive;
sl@0
    79
		ERR_PRINTF1(_L("Failed to initialise the DevVideo Play"));
sl@0
    80
		}
sl@0
    81
		
sl@0
    82
	return ret;
sl@0
    83
	}
sl@0
    84
sl@0
    85
// MMMFDevVideoCiuObserver
sl@0
    86
void CTestDevVideoCiuPlayStep::MdvpoNewBuffers()
sl@0
    87
	{
sl@0
    88
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoNewBuffers()"));
sl@0
    89
	}
sl@0
    90
sl@0
    91
void CTestDevVideoCiuPlayStep::MdvpoReturnPicture(TVideoPicture* /*aPicture*/)
sl@0
    92
	{
sl@0
    93
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoReturnPicture()"));
sl@0
    94
	}
sl@0
    95
sl@0
    96
void CTestDevVideoCiuPlayStep::MdvpoSupplementalInformation(const TDesC8& /*aData*/, 
sl@0
    97
								  const TTimeIntervalMicroSeconds& /*aTimestamp*/, 
sl@0
    98
								  const TPictureId& /*aPictureId*/)
sl@0
    99
	{
sl@0
   100
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoSupplementalInformation()"));
sl@0
   101
	}
sl@0
   102
sl@0
   103
void CTestDevVideoCiuPlayStep::MdvpoPictureLoss()
sl@0
   104
	{
sl@0
   105
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoPictureLoss()"));
sl@0
   106
	}
sl@0
   107
sl@0
   108
void CTestDevVideoCiuPlayStep::MdvpoPictureLoss(const TArray<TPictureId>& /*aPictures*/)
sl@0
   109
	{
sl@0
   110
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoPictureLoss(TArray)"));
sl@0
   111
	}
sl@0
   112
sl@0
   113
void CTestDevVideoCiuPlayStep::MdvpoSliceLoss(TUint /*aFirstMacroblock*/, TUint /*aNumMacroblocks*/, const TPictureId& /*aPicture*/)
sl@0
   114
	{
sl@0
   115
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoSliceLoss()"));
sl@0
   116
	}
sl@0
   117
sl@0
   118
void CTestDevVideoCiuPlayStep::MdvpoReferencePictureSelection(const TDesC8& /*aSelectionData*/)
sl@0
   119
	{
sl@0
   120
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoReferencePictureSelection()"));
sl@0
   121
	}
sl@0
   122
sl@0
   123
void CTestDevVideoCiuPlayStep::MdvpoTimedSnapshotComplete(TInt /*aError*/, 
sl@0
   124
								TPictureData* /*aPictureData*/, 
sl@0
   125
								const TTimeIntervalMicroSeconds& /*aPresentationTimestamp*/, 
sl@0
   126
								const TPictureId& /*aPictureId*/)
sl@0
   127
	{
sl@0
   128
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoTimedSnapshotComplete()"));
sl@0
   129
	}
sl@0
   130
sl@0
   131
void CTestDevVideoCiuPlayStep::MdvpoNewPictures()
sl@0
   132
	{
sl@0
   133
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoNewPictures()"));
sl@0
   134
	}
sl@0
   135
sl@0
   136
void CTestDevVideoCiuPlayStep::MdvpoFatalError(TInt aError)
sl@0
   137
	{
sl@0
   138
	iError = aError;
sl@0
   139
	INFO_PRINTF2(_L("CTestDevVideoCiuPlayStep::MdvpoFatalError():  Error = %d"), aError);
sl@0
   140
	}
sl@0
   141
sl@0
   142
void CTestDevVideoCiuPlayStep::MdvpoInitComplete(TInt aError)
sl@0
   143
	{
sl@0
   144
	iError = aError;
sl@0
   145
	INFO_PRINTF2(_L("CTestDevVideoCiuPlayStep::MdvpoInitComplete():  Error = %d"), aError);
sl@0
   146
	}
sl@0
   147
sl@0
   148
void CTestDevVideoCiuPlayStep::MdvpoStreamEnd()
sl@0
   149
	{
sl@0
   150
	INFO_PRINTF1(_L("CTestDevVideoCiuPlayStep::MdvpoStreamEnd()"));
sl@0
   151
	}
sl@0
   152
sl@0
   153
//
sl@0
   154
//	Video Window Control Tests
sl@0
   155
//
sl@0
   156
CTestDevVideoCiuPlayGetAndSetLogicalWindow::CTestDevVideoCiuPlayGetAndSetLogicalWindow(const TDesC& aTestName)
sl@0
   157
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   158
	{
sl@0
   159
	}
sl@0
   160
sl@0
   161
CTestDevVideoCiuPlayGetAndSetLogicalWindow* CTestDevVideoCiuPlayGetAndSetLogicalWindow::NewL(const TDesC& aTestName)
sl@0
   162
	{
sl@0
   163
	CTestDevVideoCiuPlayGetAndSetLogicalWindow* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetLogicalWindow(aTestName);
sl@0
   164
	return self;
sl@0
   165
	}
sl@0
   166
sl@0
   167
TVerdict CTestDevVideoCiuPlayGetAndSetLogicalWindow::DoTestStepPreambleL()
sl@0
   168
	{
sl@0
   169
	// Call the base class first
sl@0
   170
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   171
	if (ret == EPass)
sl@0
   172
		{
sl@0
   173
		// select decoder
sl@0
   174
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   175
		
sl@0
   176
		if (err != KErrNone)
sl@0
   177
			{
sl@0
   178
			ret = EInconclusive;
sl@0
   179
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   180
			}
sl@0
   181
		}
sl@0
   182
	return ret;
sl@0
   183
	}
sl@0
   184
sl@0
   185
TVerdict CTestDevVideoCiuPlayGetAndSetLogicalWindow::DoTestL()
sl@0
   186
	{
sl@0
   187
	TVerdict ret = EFail;
sl@0
   188
	
sl@0
   189
	INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation"));
sl@0
   190
	
sl@0
   191
	// Fetch the CI
sl@0
   192
	MMmfVideoWindowControl* interface = NULL;
sl@0
   193
		
sl@0
   194
	interface = static_cast<MMmfVideoWindowControl*>
sl@0
   195
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   196
																	KUidMmfVideoWindowControl));
sl@0
   197
	if (!interface)
sl@0
   198
		{
sl@0
   199
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   200
		ret = EFail;
sl@0
   201
		}
sl@0
   202
	else
sl@0
   203
		{
sl@0
   204
		INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated"));
sl@0
   205
		
sl@0
   206
		TRect logicalWindow(TPoint(0,0), TPoint(300,300));
sl@0
   207
	
sl@0
   208
		interface->MmvwcSetLogicalVideoWindow(logicalWindow);
sl@0
   209
		
sl@0
   210
		MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL;
sl@0
   211
sl@0
   212
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoWindowControl*>
sl@0
   213
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl));
sl@0
   214
		if (testInterface)
sl@0
   215
			{
sl@0
   216
			TRect logicalWindowResult = testInterface->MmvwcLogicalVideoWindow();
sl@0
   217
			if (logicalWindow == logicalWindowResult)
sl@0
   218
				{
sl@0
   219
				ret = EPass;
sl@0
   220
				INFO_PRINTF1(_L("Set Logical Window method call performed as expected"));
sl@0
   221
				}
sl@0
   222
			else
sl@0
   223
				{
sl@0
   224
				ret = EFail;					
sl@0
   225
				ERR_PRINTF1(_L("Set Logical Window method call failed to set the value correctly"));
sl@0
   226
				}
sl@0
   227
			}
sl@0
   228
		else
sl@0
   229
			{
sl@0
   230
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
   231
			ret = EInconclusive;
sl@0
   232
			}
sl@0
   233
		}
sl@0
   234
	return ret;
sl@0
   235
	}
sl@0
   236
sl@0
   237
//------------------------------------------------------------------
sl@0
   238
sl@0
   239
CTestDevVideoCiuPlayGetAndSetContentOffset::CTestDevVideoCiuPlayGetAndSetContentOffset(const TDesC& aTestName)
sl@0
   240
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   241
	{
sl@0
   242
	}
sl@0
   243
sl@0
   244
CTestDevVideoCiuPlayGetAndSetContentOffset* CTestDevVideoCiuPlayGetAndSetContentOffset::NewL(const TDesC& aTestName)
sl@0
   245
	{
sl@0
   246
	CTestDevVideoCiuPlayGetAndSetContentOffset* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetContentOffset(aTestName);
sl@0
   247
	return self;
sl@0
   248
	}
sl@0
   249
sl@0
   250
TVerdict CTestDevVideoCiuPlayGetAndSetContentOffset::DoTestStepPreambleL()
sl@0
   251
	{
sl@0
   252
	// Call the base class first
sl@0
   253
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   254
	if (ret == EPass)
sl@0
   255
		{
sl@0
   256
		// select decoder
sl@0
   257
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   258
		
sl@0
   259
		if (err != KErrNone)
sl@0
   260
			{
sl@0
   261
			ret = EInconclusive;
sl@0
   262
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   263
			}
sl@0
   264
		}
sl@0
   265
	return ret;
sl@0
   266
	}
sl@0
   267
sl@0
   268
TVerdict CTestDevVideoCiuPlayGetAndSetContentOffset::DoTestL()
sl@0
   269
	{
sl@0
   270
	TVerdict ret = EFail;
sl@0
   271
	
sl@0
   272
	INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation"));
sl@0
   273
	
sl@0
   274
	// Fetch the CI
sl@0
   275
	MMmfVideoWindowControl* interface = NULL;
sl@0
   276
		
sl@0
   277
	interface = static_cast<MMmfVideoWindowControl*>
sl@0
   278
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   279
																	KUidMmfVideoWindowControl));
sl@0
   280
	if (!interface)
sl@0
   281
		{
sl@0
   282
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   283
		ret = EFail;
sl@0
   284
		}
sl@0
   285
	else
sl@0
   286
		{
sl@0
   287
		INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated"));
sl@0
   288
		
sl@0
   289
		TPoint contentOffsetInput(100, 100);
sl@0
   290
	
sl@0
   291
		interface->MmvwcSetContentOffsetL(contentOffsetInput);
sl@0
   292
		
sl@0
   293
		MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL;
sl@0
   294
sl@0
   295
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoWindowControl*>
sl@0
   296
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl));
sl@0
   297
		if (testInterface)
sl@0
   298
			{
sl@0
   299
			TPoint contentOffsetOutput = testInterface->MmvwcContentOffset();
sl@0
   300
			if (contentOffsetInput == contentOffsetOutput)
sl@0
   301
				{
sl@0
   302
				ret = EPass;
sl@0
   303
				INFO_PRINTF1(_L("Set Content Offset method call performed as expected"));
sl@0
   304
				}
sl@0
   305
			else
sl@0
   306
				{
sl@0
   307
				ret = EFail;					
sl@0
   308
				ERR_PRINTF1(_L("Set Content Offset method call failed to set the value correctly"));
sl@0
   309
				}
sl@0
   310
			}
sl@0
   311
		else
sl@0
   312
			{
sl@0
   313
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
   314
			ret = EInconclusive;
sl@0
   315
			}
sl@0
   316
		}
sl@0
   317
	return ret;
sl@0
   318
	}
sl@0
   319
sl@0
   320
//------------------------------------------------------------------
sl@0
   321
sl@0
   322
CTestDevVideoCiuPlayGetAndSetContentAlignment::CTestDevVideoCiuPlayGetAndSetContentAlignment(const TDesC& aTestName)
sl@0
   323
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   324
	{
sl@0
   325
	}
sl@0
   326
sl@0
   327
CTestDevVideoCiuPlayGetAndSetContentAlignment* CTestDevVideoCiuPlayGetAndSetContentAlignment::NewL(const TDesC& aTestName)
sl@0
   328
	{
sl@0
   329
	CTestDevVideoCiuPlayGetAndSetContentAlignment* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetContentAlignment(aTestName);
sl@0
   330
	return self;
sl@0
   331
	}
sl@0
   332
sl@0
   333
TVerdict CTestDevVideoCiuPlayGetAndSetContentAlignment::DoTestStepPreambleL()
sl@0
   334
	{
sl@0
   335
	// Call the base class first
sl@0
   336
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   337
	if (ret == EPass)
sl@0
   338
		{
sl@0
   339
		// select decoder
sl@0
   340
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   341
		
sl@0
   342
		if (err != KErrNone)
sl@0
   343
			{
sl@0
   344
			ret = EInconclusive;
sl@0
   345
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   346
			}
sl@0
   347
		}
sl@0
   348
	return ret;
sl@0
   349
	}
sl@0
   350
sl@0
   351
TVerdict CTestDevVideoCiuPlayGetAndSetContentAlignment::DoTestL()
sl@0
   352
	{
sl@0
   353
	TVerdict ret = EFail;
sl@0
   354
	
sl@0
   355
	INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Initialisation"));
sl@0
   356
	
sl@0
   357
	// Fetch the CI
sl@0
   358
	MMmfVideoWindowControl* interface = NULL;
sl@0
   359
		
sl@0
   360
	interface = static_cast<MMmfVideoWindowControl*>
sl@0
   361
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   362
																	KUidMmfVideoWindowControl));
sl@0
   363
	if (!interface)
sl@0
   364
		{
sl@0
   365
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   366
		ret = EFail;
sl@0
   367
		}
sl@0
   368
	else
sl@0
   369
		{
sl@0
   370
		INFO_PRINTF1(_L("DevVideo CIU Window Control Interface Instantiated"));
sl@0
   371
		
sl@0
   372
		MDevVideoCiuTestInterfaceVideoWindowControl::TAlignment alignmentInput = {MMmfVideoWindowControl::EHorizAlignCenter, MMmfVideoWindowControl::EVertAlignTop};
sl@0
   373
	
sl@0
   374
		interface->MmvwcSetContentAlignment(alignmentInput.iHorizAlign,alignmentInput.iVertAlign);
sl@0
   375
		
sl@0
   376
		MDevVideoCiuTestInterfaceVideoWindowControl* testInterface = NULL;
sl@0
   377
sl@0
   378
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoWindowControl*>
sl@0
   379
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceVideoWindowControl));
sl@0
   380
		if (testInterface)
sl@0
   381
			{
sl@0
   382
			MDevVideoCiuTestInterfaceVideoWindowControl::TAlignment alignmentOutput = testInterface->MmvwcContentAlignment();
sl@0
   383
			if ((alignmentInput.iHorizAlign == alignmentOutput.iHorizAlign) && (alignmentInput.iVertAlign == alignmentOutput.iVertAlign) )
sl@0
   384
				{
sl@0
   385
				ret = EPass;
sl@0
   386
				INFO_PRINTF1(_L("Set Content Alignment method call performed as expected"));
sl@0
   387
				}
sl@0
   388
			else
sl@0
   389
				{
sl@0
   390
				ret = EFail;					
sl@0
   391
				ERR_PRINTF1(_L("Set Content Alignment method call failed to set the value correctly"));
sl@0
   392
				}
sl@0
   393
			}
sl@0
   394
		else
sl@0
   395
			{
sl@0
   396
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
   397
			ret = EInconclusive;
sl@0
   398
			}
sl@0
   399
		}
sl@0
   400
	return ret;
sl@0
   401
	}
sl@0
   402
sl@0
   403
//------------------------------------------------------------------
sl@0
   404
sl@0
   405
//
sl@0
   406
//	Video Resource Management Tests
sl@0
   407
//
sl@0
   408
sl@0
   409
CTestDevVideoCiuPlayGetAndSetResourceObserver::CTestDevVideoCiuPlayGetAndSetResourceObserver(const TDesC& aTestName)
sl@0
   410
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   411
	{
sl@0
   412
	}
sl@0
   413
sl@0
   414
CTestDevVideoCiuPlayGetAndSetResourceObserver* CTestDevVideoCiuPlayGetAndSetResourceObserver::NewL(const TDesC& aTestName)
sl@0
   415
	{
sl@0
   416
	CTestDevVideoCiuPlayGetAndSetResourceObserver* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetResourceObserver(aTestName);
sl@0
   417
	return self;
sl@0
   418
	}
sl@0
   419
sl@0
   420
TVerdict CTestDevVideoCiuPlayGetAndSetResourceObserver::DoTestStepPreambleL()
sl@0
   421
	{
sl@0
   422
	// Call the base class first
sl@0
   423
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   424
	if (ret == EPass)
sl@0
   425
		{
sl@0
   426
		// select decoder
sl@0
   427
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   428
		
sl@0
   429
		if (err != KErrNone)
sl@0
   430
			{
sl@0
   431
			ret = EInconclusive;
sl@0
   432
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   433
			}
sl@0
   434
		}
sl@0
   435
	return ret;
sl@0
   436
	}
sl@0
   437
sl@0
   438
TVerdict CTestDevVideoCiuPlayGetAndSetResourceObserver::DoTestL()
sl@0
   439
	{
sl@0
   440
	TVerdict ret = EFail;
sl@0
   441
	
sl@0
   442
	INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation"));
sl@0
   443
	
sl@0
   444
	// Fetch the CI
sl@0
   445
	MMmfVideoResourceHandler* interface = NULL;
sl@0
   446
		
sl@0
   447
	interface = static_cast<MMmfVideoResourceHandler*>
sl@0
   448
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   449
																	KUidMmfVideoResourceManagement));
sl@0
   450
	if (!interface)
sl@0
   451
		{
sl@0
   452
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   453
		ret = EFail;
sl@0
   454
		}
sl@0
   455
	else
sl@0
   456
		{
sl@0
   457
		INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated"));
sl@0
   458
	
sl@0
   459
		MMmfVideoResourceObserver* obs = this;
sl@0
   460
		interface->MmvrhSetObserver(obs);
sl@0
   461
		INFO_PRINTF1(_L("SetObserver called"));
sl@0
   462
		
sl@0
   463
		// Verify that the observer was set
sl@0
   464
		MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL;
sl@0
   465
		testInterface = static_cast<MDevVideoCiuTestInterfaceResourceManagement*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   466
																												 KUidDevVideoCiuTestInterfaceResourceManagement));
sl@0
   467
		if (!testInterface)
sl@0
   468
			{
sl@0
   469
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
   470
			ret = EFail;
sl@0
   471
			}
sl@0
   472
		else
sl@0
   473
			{
sl@0
   474
			if (obs != testInterface->MdvrmObserver())
sl@0
   475
				{
sl@0
   476
				ERR_PRINTF1(_L("Failed to set the observer."));
sl@0
   477
				ret = EFail;
sl@0
   478
				}
sl@0
   479
			else
sl@0
   480
				{			
sl@0
   481
				INFO_PRINTF1(_L("SetObserver successfully called"));
sl@0
   482
				ret = EPass;
sl@0
   483
				}
sl@0
   484
			}		
sl@0
   485
		}
sl@0
   486
	return ret;
sl@0
   487
	}
sl@0
   488
sl@0
   489
//from MMmfVideoResourceObserver
sl@0
   490
void CTestDevVideoCiuPlayGetAndSetResourceObserver::MmvroResourcesLost(TUid /*aMediaDevice*/)
sl@0
   491
	{}
sl@0
   492
		
sl@0
   493
void CTestDevVideoCiuPlayGetAndSetResourceObserver::MmvroResourcesRestored(TUid /*aMediaDevice*/)
sl@0
   494
	{}
sl@0
   495
sl@0
   496
//------------------------------------------------------------------
sl@0
   497
sl@0
   498
CTestDevVideoCiuPlayResourceLost::CTestDevVideoCiuPlayResourceLost(const TDesC& aTestName)
sl@0
   499
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
   500
	{
sl@0
   501
	}
sl@0
   502
sl@0
   503
CTestDevVideoCiuPlayResourceLost* CTestDevVideoCiuPlayResourceLost::NewL(const TDesC& aTestName)
sl@0
   504
	{
sl@0
   505
	CTestDevVideoCiuPlayResourceLost* self = new(ELeave) CTestDevVideoCiuPlayResourceLost(aTestName);
sl@0
   506
	return self;
sl@0
   507
	}
sl@0
   508
sl@0
   509
TVerdict CTestDevVideoCiuPlayResourceLost::DoTestStepPreambleL()
sl@0
   510
	{
sl@0
   511
	// Call the base class first
sl@0
   512
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   513
	if (ret == EPass)
sl@0
   514
		{
sl@0
   515
		// select decoder
sl@0
   516
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   517
		
sl@0
   518
		if (err != KErrNone)
sl@0
   519
			{
sl@0
   520
			ret = EInconclusive;
sl@0
   521
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   522
			}
sl@0
   523
		}
sl@0
   524
	return ret;
sl@0
   525
	}
sl@0
   526
sl@0
   527
TVerdict CTestDevVideoCiuPlayResourceLost::DoTestL()
sl@0
   528
	{
sl@0
   529
	TVerdict ret = EFail;
sl@0
   530
	
sl@0
   531
	INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation"));
sl@0
   532
	
sl@0
   533
	// Fetch the CI
sl@0
   534
	MMmfVideoResourceHandler* interface = NULL;
sl@0
   535
		
sl@0
   536
	interface = static_cast<MMmfVideoResourceHandler*>
sl@0
   537
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   538
																	KUidMmfVideoResourceManagement));
sl@0
   539
	if (!interface)
sl@0
   540
		{
sl@0
   541
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   542
		ret = EFail;
sl@0
   543
		}
sl@0
   544
	else
sl@0
   545
		{
sl@0
   546
		INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated"));
sl@0
   547
sl@0
   548
		MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL;
sl@0
   549
		testInterface = static_cast<MDevVideoCiuTestInterfaceResourceManagement*>(iDevVideoPlay->
sl@0
   550
																				CustomInterface(iHwDeviceId,
sl@0
   551
																								KUidDevVideoCiuTestInterfaceResourceManagement));
sl@0
   552
		if (!testInterface)
sl@0
   553
			{
sl@0
   554
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
   555
			ret = EFail;
sl@0
   556
			}
sl@0
   557
		else
sl@0
   558
			{
sl@0
   559
			// Set the observer to callback!
sl@0
   560
			MMmfVideoResourceObserver* obs = this;
sl@0
   561
			interface->MmvrhSetObserver(obs);
sl@0
   562
sl@0
   563
			INFO_PRINTF1(_L("Requesting the Resource Lost Callback..."));
sl@0
   564
			testInterface->MdvrmRequestResourceLostCallback();
sl@0
   565
sl@0
   566
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
   567
				{	
sl@0
   568
				ERR_PRINTF1(_L("Error receiving the Resource Lost Callback."));
sl@0
   569
				ret = EFail;
sl@0
   570
				}
sl@0
   571
			else
sl@0
   572
				{
sl@0
   573
				INFO_PRINTF1(_L("Successfully retrieved the Resource Lost Callback"));
sl@0
   574
				ret = EPass;
sl@0
   575
				}
sl@0
   576
			}
sl@0
   577
		}
sl@0
   578
	return ret;
sl@0
   579
	}
sl@0
   580
sl@0
   581
//from MMmfVideoResourceObserver
sl@0
   582
void CTestDevVideoCiuPlayResourceLost::MmvroResourcesLost(TUid /*aMediaDevice*/)
sl@0
   583
	{
sl@0
   584
	INFO_PRINTF1(_L("Resource Lost callback received."));
sl@0
   585
	iCallbackReceived = ETrue;
sl@0
   586
	iError = KErrNone;
sl@0
   587
	}
sl@0
   588
		
sl@0
   589
void CTestDevVideoCiuPlayResourceLost::MmvroResourcesRestored(TUid /*aMediaDevice*/)
sl@0
   590
	{
sl@0
   591
	iError = KErrNotSupported;
sl@0
   592
	}
sl@0
   593
sl@0
   594
//------------------------------------------------------------------
sl@0
   595
sl@0
   596
CTestDevVideoCiuPlayResourceRestored::CTestDevVideoCiuPlayResourceRestored(const TDesC& aTestName)
sl@0
   597
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
   598
	{
sl@0
   599
	}
sl@0
   600
sl@0
   601
CTestDevVideoCiuPlayResourceRestored* CTestDevVideoCiuPlayResourceRestored::NewL(const TDesC& aTestName)
sl@0
   602
	{
sl@0
   603
	CTestDevVideoCiuPlayResourceRestored* self = new(ELeave) CTestDevVideoCiuPlayResourceRestored(aTestName);
sl@0
   604
	return self;
sl@0
   605
	}
sl@0
   606
sl@0
   607
TVerdict CTestDevVideoCiuPlayResourceRestored::DoTestStepPreambleL()
sl@0
   608
	{
sl@0
   609
	// Call the base class first
sl@0
   610
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   611
	if (ret == EPass)
sl@0
   612
		{
sl@0
   613
		// select decoder
sl@0
   614
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   615
		
sl@0
   616
		if (err != KErrNone)
sl@0
   617
			{
sl@0
   618
			ret = EInconclusive;
sl@0
   619
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   620
			}
sl@0
   621
		}
sl@0
   622
	return ret;
sl@0
   623
	}
sl@0
   624
sl@0
   625
TVerdict CTestDevVideoCiuPlayResourceRestored::DoTestL()
sl@0
   626
	{
sl@0
   627
	TVerdict ret = EFail;
sl@0
   628
	
sl@0
   629
	INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Initialisation"));
sl@0
   630
	
sl@0
   631
	// Fetch the CI
sl@0
   632
	MMmfVideoResourceHandler* interface = NULL;
sl@0
   633
		
sl@0
   634
	interface = static_cast<MMmfVideoResourceHandler*>
sl@0
   635
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   636
																	KUidMmfVideoResourceManagement));
sl@0
   637
	if (!interface)
sl@0
   638
		{
sl@0
   639
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   640
		ret = EFail;
sl@0
   641
		}
sl@0
   642
	else
sl@0
   643
		{
sl@0
   644
		INFO_PRINTF1(_L("DevVideo CIU Resource Management Interface Instantiated"));
sl@0
   645
sl@0
   646
		MDevVideoCiuTestInterfaceResourceManagement* testInterface = NULL;
sl@0
   647
		testInterface = static_cast<MDevVideoCiuTestInterfaceResourceManagement*>(iDevVideoPlay->
sl@0
   648
																				CustomInterface(iHwDeviceId,
sl@0
   649
																								KUidDevVideoCiuTestInterfaceResourceManagement));
sl@0
   650
		if (!testInterface)
sl@0
   651
			{
sl@0
   652
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
   653
			ret = EFail;
sl@0
   654
			}
sl@0
   655
		else
sl@0
   656
			{
sl@0
   657
			// Set the observer to callback!
sl@0
   658
			MMmfVideoResourceObserver* obs = this;
sl@0
   659
			interface->MmvrhSetObserver(obs);
sl@0
   660
sl@0
   661
			INFO_PRINTF1(_L("Requesting the Resource Restored Callback..."));
sl@0
   662
			testInterface->MdvrmRequestResourceRestoredCallback();
sl@0
   663
sl@0
   664
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
   665
				{	
sl@0
   666
				ERR_PRINTF1(_L("Error receiving the Resource Restored Callback."));
sl@0
   667
				ret = EFail;
sl@0
   668
				}
sl@0
   669
			else
sl@0
   670
				{
sl@0
   671
				INFO_PRINTF1(_L("Successfully retrieved the Resource Restored Callback"));
sl@0
   672
				ret = EPass;
sl@0
   673
				}
sl@0
   674
			}
sl@0
   675
		}
sl@0
   676
	return ret;
sl@0
   677
	}
sl@0
   678
sl@0
   679
//from MMmfVideoResourceObserver
sl@0
   680
void CTestDevVideoCiuPlayResourceRestored::MmvroResourcesLost(TUid /*aMediaDevice*/)
sl@0
   681
	{
sl@0
   682
	iError = KErrNotSupported;
sl@0
   683
	}
sl@0
   684
		
sl@0
   685
void CTestDevVideoCiuPlayResourceRestored::MmvroResourcesRestored(TUid /*aMediaDevice*/)
sl@0
   686
	{
sl@0
   687
	INFO_PRINTF1(_L("Resource Restored callback received."));
sl@0
   688
	iCallbackReceived = ETrue;
sl@0
   689
	iError = KErrNone;
sl@0
   690
	}
sl@0
   691
sl@0
   692
//------------------------------------------------------------------
sl@0
   693
sl@0
   694
CTestDevVideoCiuPlayGetAndSetResourcePriority::CTestDevVideoCiuPlayGetAndSetResourcePriority(const TDesC& aTestName)
sl@0
   695
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   696
	{
sl@0
   697
	}
sl@0
   698
sl@0
   699
CTestDevVideoCiuPlayGetAndSetResourcePriority* CTestDevVideoCiuPlayGetAndSetResourcePriority::NewL(const TDesC& aTestName)
sl@0
   700
	{
sl@0
   701
	CTestDevVideoCiuPlayGetAndSetResourcePriority* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetResourcePriority(aTestName);
sl@0
   702
	return self;
sl@0
   703
	}
sl@0
   704
sl@0
   705
TVerdict CTestDevVideoCiuPlayGetAndSetResourcePriority::DoTestStepPreambleL()
sl@0
   706
	{
sl@0
   707
	// Call the base class first
sl@0
   708
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   709
	if (ret == EPass)
sl@0
   710
		{
sl@0
   711
		// select decoder
sl@0
   712
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   713
		
sl@0
   714
		if (err != KErrNone)
sl@0
   715
			{
sl@0
   716
			ret = EInconclusive;
sl@0
   717
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   718
			}
sl@0
   719
		}
sl@0
   720
	return ret;
sl@0
   721
	}
sl@0
   722
sl@0
   723
TVerdict CTestDevVideoCiuPlayGetAndSetResourcePriority::DoTestL()
sl@0
   724
	{
sl@0
   725
	TVerdict ret = EFail;
sl@0
   726
	
sl@0
   727
	INFO_PRINTF1(_L("DevVideo CIU Resource Priority Interface Initialisation"));
sl@0
   728
	
sl@0
   729
	// Fetch the CI
sl@0
   730
	MMmfVideoResourcePriority* interface = NULL;
sl@0
   731
		
sl@0
   732
	interface = static_cast<MMmfVideoResourcePriority*>
sl@0
   733
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   734
																	KUidMmfVideoResourcePriority));
sl@0
   735
	if (!interface)
sl@0
   736
		{
sl@0
   737
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   738
		ret = EFail;
sl@0
   739
		}
sl@0
   740
	else
sl@0
   741
		{
sl@0
   742
		INFO_PRINTF1(_L("DevVideo CIU Resource Priority Interface Instantiated"));
sl@0
   743
		
sl@0
   744
		TInt inputPriority = 100;
sl@0
   745
			
sl@0
   746
		interface->MmvpSetResourcePriority(inputPriority);
sl@0
   747
		
sl@0
   748
		MDevVideoCiuTestInterfaceResourcePriority* testInterface = NULL;
sl@0
   749
sl@0
   750
		testInterface = static_cast<MDevVideoCiuTestInterfaceResourcePriority*>
sl@0
   751
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceResourcePriority));
sl@0
   752
		if (testInterface)
sl@0
   753
			{
sl@0
   754
			TInt outputPriority = testInterface->MdvrpResourcePriority();
sl@0
   755
			if (inputPriority == outputPriority)
sl@0
   756
				{
sl@0
   757
				ret = EPass;
sl@0
   758
				INFO_PRINTF1(_L("Set Resource Priority method call performed as expected"));
sl@0
   759
				}
sl@0
   760
			else
sl@0
   761
				{
sl@0
   762
				ret = EFail;					
sl@0
   763
				ERR_PRINTF1(_L("Set Resource Priority method call failed to set the value correctly"));
sl@0
   764
				}
sl@0
   765
			}
sl@0
   766
		else
sl@0
   767
			{
sl@0
   768
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
   769
			ret = EInconclusive;
sl@0
   770
			}
sl@0
   771
		}
sl@0
   772
	return ret;
sl@0
   773
	}
sl@0
   774
sl@0
   775
sl@0
   776
//
sl@0
   777
//	Video Properties Management Tests
sl@0
   778
//
sl@0
   779
sl@0
   780
CTestDevVideoCiuPlaySetAndGetPropertiesObserver::CTestDevVideoCiuPlaySetAndGetPropertiesObserver(const TDesC& aTestName)
sl@0
   781
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   782
	{
sl@0
   783
	}
sl@0
   784
sl@0
   785
CTestDevVideoCiuPlaySetAndGetPropertiesObserver* CTestDevVideoCiuPlaySetAndGetPropertiesObserver::NewL(const TDesC& aTestName)
sl@0
   786
	{
sl@0
   787
	CTestDevVideoCiuPlaySetAndGetPropertiesObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPropertiesObserver(aTestName);
sl@0
   788
	return self;
sl@0
   789
	}
sl@0
   790
sl@0
   791
TVerdict CTestDevVideoCiuPlaySetAndGetPropertiesObserver::DoTestStepPreambleL()
sl@0
   792
	{
sl@0
   793
	// Call the base class first
sl@0
   794
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   795
	if (ret == EPass)
sl@0
   796
		{
sl@0
   797
		// select decoder
sl@0
   798
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   799
		
sl@0
   800
		if (err != KErrNone)
sl@0
   801
			{
sl@0
   802
			ret = EInconclusive;
sl@0
   803
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   804
			}
sl@0
   805
		}
sl@0
   806
	return ret;
sl@0
   807
	}
sl@0
   808
sl@0
   809
TVerdict CTestDevVideoCiuPlaySetAndGetPropertiesObserver::DoTestL()
sl@0
   810
	{
sl@0
   811
	TVerdict ret = EFail;
sl@0
   812
	
sl@0
   813
	INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Initialisation"));
sl@0
   814
	
sl@0
   815
	// Fetch the CI
sl@0
   816
	MMmfVideoPropertiesNotifier* interface = NULL;
sl@0
   817
		
sl@0
   818
	interface = static_cast<MMmfVideoPropertiesNotifier*>
sl@0
   819
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   820
																	KUidMmfVideoPropertiesManagement));
sl@0
   821
	if (!interface)
sl@0
   822
		{
sl@0
   823
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   824
		ret = EFail;
sl@0
   825
		}
sl@0
   826
	else
sl@0
   827
		{
sl@0
   828
		INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Instantiated"));
sl@0
   829
	
sl@0
   830
		MMmfVideoPropertiesObserver* obs = this;
sl@0
   831
		interface->MmvpnSetObserver(obs);
sl@0
   832
		INFO_PRINTF1(_L("SetObserver called"));
sl@0
   833
		
sl@0
   834
		// Verify that the observer was set
sl@0
   835
		MDevVideoCiuTestInterfacePropertiesManagement* testInterface = NULL;
sl@0
   836
		testInterface = static_cast<MDevVideoCiuTestInterfacePropertiesManagement*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   837
																												 KUidDevVideoCiuTestInterfacePropertiesManagement));
sl@0
   838
		if (!testInterface)
sl@0
   839
			{
sl@0
   840
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
   841
			ret = EFail;
sl@0
   842
			}
sl@0
   843
		else
sl@0
   844
			{
sl@0
   845
			if (obs != testInterface->MmvpoObserver())
sl@0
   846
				{
sl@0
   847
				ERR_PRINTF1(_L("Failed to set the observer."));
sl@0
   848
				ret = EFail;
sl@0
   849
				}
sl@0
   850
			else
sl@0
   851
				{			
sl@0
   852
				INFO_PRINTF1(_L("SetObserver successfully called."));
sl@0
   853
				ret = EPass;
sl@0
   854
				}
sl@0
   855
			}		
sl@0
   856
		}
sl@0
   857
	return ret;
sl@0
   858
	}
sl@0
   859
sl@0
   860
//from MMmfVideoPropertiesObserver
sl@0
   861
void CTestDevVideoCiuPlaySetAndGetPropertiesObserver::MmvpoUpdateVideoProperties(const TYuvFormat& /*aYuvFormat*/, const TSize& /*aPictureSize*/)
sl@0
   862
	{}
sl@0
   863
sl@0
   864
//------------------------------------------------------------------
sl@0
   865
CTestDevVideoCiuPlayUpdateProperties::CTestDevVideoCiuPlayUpdateProperties(const TDesC& aTestName)
sl@0
   866
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
   867
	{
sl@0
   868
	}
sl@0
   869
sl@0
   870
CTestDevVideoCiuPlayUpdateProperties* CTestDevVideoCiuPlayUpdateProperties::NewL(const TDesC& aTestName)
sl@0
   871
	{
sl@0
   872
	CTestDevVideoCiuPlayUpdateProperties* self = new(ELeave) CTestDevVideoCiuPlayUpdateProperties(aTestName);
sl@0
   873
	return self;
sl@0
   874
	}
sl@0
   875
sl@0
   876
TVerdict CTestDevVideoCiuPlayUpdateProperties::DoTestStepPreambleL()
sl@0
   877
	{
sl@0
   878
	// Call the base class first
sl@0
   879
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   880
	if (ret == EPass)
sl@0
   881
		{
sl@0
   882
		// select decoder
sl@0
   883
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
   884
		
sl@0
   885
		if (err != KErrNone)
sl@0
   886
			{
sl@0
   887
			ret = EInconclusive;
sl@0
   888
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
   889
			}
sl@0
   890
		}
sl@0
   891
	return ret;
sl@0
   892
	}
sl@0
   893
sl@0
   894
TVerdict CTestDevVideoCiuPlayUpdateProperties::DoTestL()
sl@0
   895
	{
sl@0
   896
	TVerdict ret = EFail;
sl@0
   897
	
sl@0
   898
	INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Initialisation"));
sl@0
   899
	
sl@0
   900
	// Fetch the CI
sl@0
   901
	MMmfVideoPropertiesNotifier* interface = NULL;
sl@0
   902
		
sl@0
   903
	interface = static_cast<MMmfVideoPropertiesNotifier*>
sl@0
   904
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   905
																	KUidMmfVideoPropertiesManagement));
sl@0
   906
	if (!interface)
sl@0
   907
		{
sl@0
   908
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
   909
		ret = EFail;
sl@0
   910
		}
sl@0
   911
	else
sl@0
   912
		{
sl@0
   913
		INFO_PRINTF1(_L("DevVideo CIU Properties Management Interface Instantiated"));
sl@0
   914
sl@0
   915
		MDevVideoCiuTestInterfacePropertiesManagement* testInterface = NULL;
sl@0
   916
		testInterface = static_cast<MDevVideoCiuTestInterfacePropertiesManagement*>(iDevVideoPlay->
sl@0
   917
																				CustomInterface(iHwDeviceId,
sl@0
   918
																								KUidDevVideoCiuTestInterfacePropertiesManagement));
sl@0
   919
		if (!testInterface)
sl@0
   920
			{
sl@0
   921
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
   922
			ret = EFail;
sl@0
   923
			}
sl@0
   924
		else
sl@0
   925
			{
sl@0
   926
			// Set the observer to callback!
sl@0
   927
			MMmfVideoPropertiesObserver* obs = this;
sl@0
   928
			interface->MmvpnSetObserver(obs);
sl@0
   929
sl@0
   930
			INFO_PRINTF1(_L("Notifying the Properties Update Callback..."));
sl@0
   931
			testInterface->MmvpoUpdateVideoPropertiesCallback();
sl@0
   932
sl@0
   933
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
   934
				{	
sl@0
   935
				ERR_PRINTF1(_L("Error receiving the RProperties Update Callback."));
sl@0
   936
				ret = EFail;
sl@0
   937
				}
sl@0
   938
			else
sl@0
   939
				{
sl@0
   940
				INFO_PRINTF1(_L("Successfully retrieved the Properties Update Callback"));
sl@0
   941
				ret = EPass;
sl@0
   942
				}
sl@0
   943
			}
sl@0
   944
		}
sl@0
   945
	return ret;
sl@0
   946
	}
sl@0
   947
sl@0
   948
//from MMmfVideoPropertiesObserver
sl@0
   949
void CTestDevVideoCiuPlayUpdateProperties::MmvpoUpdateVideoProperties(const TYuvFormat& /*aYuvFormat*/, const TSize& /*aPictureSize*/)
sl@0
   950
	{	
sl@0
   951
	INFO_PRINTF1(_L("Properties Update Callback received."));
sl@0
   952
	iCallbackReceived = ETrue;
sl@0
   953
	iError = KErrNone;
sl@0
   954
	}
sl@0
   955
	
sl@0
   956
//------------------------------------------------------------------
sl@0
   957
sl@0
   958
CTestDevVideoCiuPlayCreateVideoMediaProtected::CTestDevVideoCiuPlayCreateVideoMediaProtected(const TDesC& aTestName)
sl@0
   959
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
   960
	{
sl@0
   961
	}
sl@0
   962
sl@0
   963
CTestDevVideoCiuPlayCreateVideoMediaProtected* CTestDevVideoCiuPlayCreateVideoMediaProtected::NewL(const TDesC& aTestName)
sl@0
   964
	{
sl@0
   965
	CTestDevVideoCiuPlayCreateVideoMediaProtected* self = new(ELeave) CTestDevVideoCiuPlayCreateVideoMediaProtected(aTestName);
sl@0
   966
	return self;
sl@0
   967
	}
sl@0
   968
sl@0
   969
TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtected::DoTestStepPreambleL()
sl@0
   970
	{
sl@0
   971
	// Call the base class first
sl@0
   972
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
   973
sl@0
   974
	if (ret == EPass)
sl@0
   975
		{
sl@0
   976
		// select post-processor
sl@0
   977
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice));
sl@0
   978
		
sl@0
   979
		if (err != KErrNone)
sl@0
   980
			{
sl@0
   981
			ret = EInconclusive;
sl@0
   982
			ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor."));
sl@0
   983
			}		
sl@0
   984
		}
sl@0
   985
sl@0
   986
	return ret;
sl@0
   987
	}
sl@0
   988
	
sl@0
   989
TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtected::DoTestL()
sl@0
   990
	{
sl@0
   991
	TVerdict ret = EPass;
sl@0
   992
	
sl@0
   993
	INFO_PRINTF1(_L("DevVideo CIU Video Media Protected Initialisation"));
sl@0
   994
sl@0
   995
	// Try to fetch the CI...
sl@0
   996
	MMmfVideoMediaProtected* interface = NULL;
sl@0
   997
		
sl@0
   998
	interface = static_cast<MMmfVideoMediaProtected*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
   999
																					KUidMmfVideoMediaProtected));
sl@0
  1000
	if (!interface)
sl@0
  1001
		{
sl@0
  1002
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1003
		ret = EFail;
sl@0
  1004
		}
sl@0
  1005
	else
sl@0
  1006
		{
sl@0
  1007
		INFO_PRINTF1(_L("DevVideo CIU Video Media Protected instantiated"));
sl@0
  1008
		}
sl@0
  1009
sl@0
  1010
	return ret;
sl@0
  1011
	}
sl@0
  1012
//------------------------------------------------------------------
sl@0
  1013
sl@0
  1014
//------------------------------------------------------------------
sl@0
  1015
sl@0
  1016
CTestDevVideoCiuPlaySetVideoMediaProtected::CTestDevVideoCiuPlaySetVideoMediaProtected(const TDesC& aTestName)
sl@0
  1017
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1018
	{
sl@0
  1019
	}
sl@0
  1020
sl@0
  1021
CTestDevVideoCiuPlaySetVideoMediaProtected* CTestDevVideoCiuPlaySetVideoMediaProtected::NewL(const TDesC& aTestName)
sl@0
  1022
	{
sl@0
  1023
	CTestDevVideoCiuPlaySetVideoMediaProtected* self = new(ELeave) CTestDevVideoCiuPlaySetVideoMediaProtected(aTestName);
sl@0
  1024
	return self;
sl@0
  1025
	}
sl@0
  1026
sl@0
  1027
TVerdict CTestDevVideoCiuPlaySetVideoMediaProtected::DoTestStepPreambleL()
sl@0
  1028
	{
sl@0
  1029
	// Call the base class first
sl@0
  1030
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1031
sl@0
  1032
	if (ret == EPass)
sl@0
  1033
		{
sl@0
  1034
		// select post-processor
sl@0
  1035
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice));
sl@0
  1036
		
sl@0
  1037
		if (err != KErrNone)
sl@0
  1038
			{
sl@0
  1039
			ret = EInconclusive;
sl@0
  1040
			ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor."));
sl@0
  1041
			}
sl@0
  1042
		}
sl@0
  1043
sl@0
  1044
	return ret;
sl@0
  1045
	}
sl@0
  1046
sl@0
  1047
// alternate implementation that uses the test interface to check
sl@0
  1048
// that the value has been set
sl@0
  1049
TVerdict CTestDevVideoCiuPlaySetVideoMediaProtected::DoTestL()
sl@0
  1050
	{
sl@0
  1051
	TVerdict ret = EFail;
sl@0
  1052
sl@0
  1053
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1054
	// Try to fetch the CI...
sl@0
  1055
	MMmfVideoMediaProtected* interface = NULL;
sl@0
  1056
		
sl@0
  1057
	interface = static_cast<MMmfVideoMediaProtected*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1058
																					KUidMmfVideoMediaProtected));
sl@0
  1059
	if (!interface)
sl@0
  1060
		{
sl@0
  1061
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1062
		ret = EInconclusive;
sl@0
  1063
		}
sl@0
  1064
	else
sl@0
  1065
		{
sl@0
  1066
		// Try to call a method on the interface
sl@0
  1067
		TRAPD(err, interface->MmvsoMediaIsProtectedL(ETrue));
sl@0
  1068
		// Method should have left as not supported
sl@0
  1069
		if (err != KErrNotSupported)
sl@0
  1070
			{
sl@0
  1071
			ERR_PRINTF2(_L("Error - wrong leave code from method call"), err);
sl@0
  1072
			}
sl@0
  1073
		else
sl@0
  1074
			{
sl@0
  1075
			// Now set up the test interface...
sl@0
  1076
			MDevVideoCiuTestInterfaceMediaProtected* testInterface = NULL;
sl@0
  1077
			testInterface = static_cast<MDevVideoCiuTestInterfaceMediaProtected*>
sl@0
  1078
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceMediaProtected));
sl@0
  1079
			if (testInterface)
sl@0
  1080
				{
sl@0
  1081
				if (testInterface->MmvsoMediaIsProtected())
sl@0
  1082
					{
sl@0
  1083
					ret = EPass;
sl@0
  1084
					INFO_PRINTF1(_L("Media protected method call performed as expected"));
sl@0
  1085
					}
sl@0
  1086
				else
sl@0
  1087
					{					
sl@0
  1088
					ERR_PRINTF1(_L("Media protected method call failed to set the value correctly"));
sl@0
  1089
					}
sl@0
  1090
				}
sl@0
  1091
			else
sl@0
  1092
				{
sl@0
  1093
				ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1094
				ret = EInconclusive;
sl@0
  1095
				}
sl@0
  1096
			}
sl@0
  1097
		}
sl@0
  1098
sl@0
  1099
	return ret;
sl@0
  1100
	}
sl@0
  1101
//------------------------------------------------------------------
sl@0
  1102
sl@0
  1103
sl@0
  1104
//------------------------------------------------------------------
sl@0
  1105
sl@0
  1106
CTestDevVideoCiuPlayCreateColourSpace::CTestDevVideoCiuPlayCreateColourSpace(const TDesC& aTestName)
sl@0
  1107
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1108
	{
sl@0
  1109
	}
sl@0
  1110
sl@0
  1111
CTestDevVideoCiuPlayCreateColourSpace* CTestDevVideoCiuPlayCreateColourSpace::NewL(const TDesC& aTestName)
sl@0
  1112
	{
sl@0
  1113
	CTestDevVideoCiuPlayCreateColourSpace* self = new(ELeave) CTestDevVideoCiuPlayCreateColourSpace(aTestName);
sl@0
  1114
	return self;
sl@0
  1115
	}
sl@0
  1116
sl@0
  1117
TVerdict CTestDevVideoCiuPlayCreateColourSpace::DoTestStepPreambleL()
sl@0
  1118
	{
sl@0
  1119
	// Call the base class first
sl@0
  1120
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1121
sl@0
  1122
	if (ret == EPass)
sl@0
  1123
		{
sl@0
  1124
		// select post-processor
sl@0
  1125
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice));
sl@0
  1126
sl@0
  1127
		if (err != KErrNone)
sl@0
  1128
			{
sl@0
  1129
			ret = EInconclusive;
sl@0
  1130
			ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor."));
sl@0
  1131
			}
sl@0
  1132
		}
sl@0
  1133
	
sl@0
  1134
	return ret;
sl@0
  1135
	}
sl@0
  1136
sl@0
  1137
TVerdict CTestDevVideoCiuPlayCreateColourSpace::DoTestL()
sl@0
  1138
	{
sl@0
  1139
	TVerdict ret = EPass;
sl@0
  1140
	
sl@0
  1141
	INFO_PRINTF1(_L("DevVideo CIU Colour Space Header Interface Initialisation"));
sl@0
  1142
sl@0
  1143
	// Try to fetch the CI...
sl@0
  1144
	MMmfVideoPlayHWDeviceColourInfoCustomHeader* interface = NULL;
sl@0
  1145
		
sl@0
  1146
	interface = static_cast<MMmfVideoPlayHWDeviceColourInfoCustomHeader*>
sl@0
  1147
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1148
																	KUidMmfVideoPlayHWDeviceColourInfoCustomHeader));
sl@0
  1149
	if (!interface)
sl@0
  1150
		{
sl@0
  1151
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1152
		ret = EFail;
sl@0
  1153
		}
sl@0
  1154
	else
sl@0
  1155
		{
sl@0
  1156
		INFO_PRINTF1(_L("DevVideo CIU Colour Space Header Interface Instantiated"));
sl@0
  1157
		}
sl@0
  1158
				
sl@0
  1159
	return ret;
sl@0
  1160
	}
sl@0
  1161
//------------------------------------------------------------------
sl@0
  1162
sl@0
  1163
//------------------------------------------------------------------
sl@0
  1164
CTestDevVideoCiuPlayGetColourSpace::CTestDevVideoCiuPlayGetColourSpace(const TDesC& aTestName)
sl@0
  1165
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1166
	{
sl@0
  1167
	}
sl@0
  1168
sl@0
  1169
CTestDevVideoCiuPlayGetColourSpace* CTestDevVideoCiuPlayGetColourSpace::NewL(const TDesC& aTestName)
sl@0
  1170
	{
sl@0
  1171
	CTestDevVideoCiuPlayGetColourSpace* self = new(ELeave) CTestDevVideoCiuPlayGetColourSpace(aTestName);
sl@0
  1172
	return self;
sl@0
  1173
	}
sl@0
  1174
sl@0
  1175
TVerdict CTestDevVideoCiuPlayGetColourSpace::DoTestStepPreambleL()
sl@0
  1176
	{
sl@0
  1177
	// Call the base class first
sl@0
  1178
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1179
sl@0
  1180
	if (ret == EPass)
sl@0
  1181
		{
sl@0
  1182
		// select post-processor
sl@0
  1183
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectPostProcessorL(KUidDevVideoCiuTestPostProcHwDevice));
sl@0
  1184
sl@0
  1185
		if (err != KErrNone)
sl@0
  1186
			{
sl@0
  1187
			ret = EInconclusive;
sl@0
  1188
			ERR_PRINTF1(_L("DevVideo Play Failed to select the post processor."));
sl@0
  1189
			}
sl@0
  1190
		}
sl@0
  1191
		
sl@0
  1192
	return ret;
sl@0
  1193
	}
sl@0
  1194
sl@0
  1195
// Implementation that uses the test interface to set data that can be checked
sl@0
  1196
// in the call to the interface's "get" method.
sl@0
  1197
TVerdict CTestDevVideoCiuPlayGetColourSpace::DoTestL()
sl@0
  1198
	{
sl@0
  1199
	TVerdict ret = EFail;
sl@0
  1200
sl@0
  1201
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1202
	// Try to fetch the CI...
sl@0
  1203
	MMmfVideoPlayHWDeviceColourInfoCustomHeader* interface = NULL;
sl@0
  1204
		
sl@0
  1205
	interface = static_cast<MMmfVideoPlayHWDeviceColourInfoCustomHeader*>
sl@0
  1206
						(iDevVideoPlay->CustomInterface(iHwDeviceId, 
sl@0
  1207
														KUidMmfVideoPlayHWDeviceColourInfoCustomHeader));
sl@0
  1208
	if (!interface)
sl@0
  1209
		{
sl@0
  1210
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1211
		ret = EInconclusive;
sl@0
  1212
		}
sl@0
  1213
	else
sl@0
  1214
		{
sl@0
  1215
		// Setup some test values...
sl@0
  1216
		TVideoDataUnitType dataUnitType = EDuArbitraryStreamSection;
sl@0
  1217
		TVideoDataUnitEncapsulation dataUnitEncapsulation = EDuRtpPayload;
sl@0
  1218
		TYuvFormat yuvFormat;
sl@0
  1219
		yuvFormat.iCoefficients = ECustomYuvMatrix;
sl@0
  1220
		yuvFormat.iPattern = EYuv422Chroma2;
sl@0
  1221
		yuvFormat.iDataLayout = EYuvDataSemiPlanar;
sl@0
  1222
		yuvFormat.iYuv2RgbMatrix = NULL;
sl@0
  1223
		yuvFormat.iRgb2YuvMatrix = NULL;
sl@0
  1224
		yuvFormat.iAspectRatioNum = 666;
sl@0
  1225
		yuvFormat.iAspectRatioDenom = 999;
sl@0
  1226
		TVideoInputBuffer* dataUnit = new TVideoInputBuffer();
sl@0
  1227
sl@0
  1228
		if (!dataUnit)
sl@0
  1229
			{
sl@0
  1230
			ERR_PRINTF2(_L("Failed to allocate test data."), KErrNoMemory);
sl@0
  1231
			}
sl@0
  1232
		else
sl@0
  1233
			{
sl@0
  1234
			// just set one member
sl@0
  1235
			dataUnit->iOptions = 444;
sl@0
  1236
			// Now set up the test interface...
sl@0
  1237
			MDevVideoCiuTestInterfaceColourSpace* testInterface = NULL;
sl@0
  1238
			testInterface = static_cast<MDevVideoCiuTestInterfaceColourSpace*>
sl@0
  1239
										(iDevVideoPlay->CustomInterface(iHwDeviceId, KUidDevVideoCiuTestInterfaceColourSpace));
sl@0
  1240
			if (testInterface)
sl@0
  1241
				{
sl@0
  1242
				testInterface->MmvpciSetColourSpaceHeaderInfoL(dataUnitType,
sl@0
  1243
																dataUnitEncapsulation,
sl@0
  1244
																dataUnit,
sl@0
  1245
																yuvFormat);
sl@0
  1246
				INFO_PRINTF1(_L("Set the colour space header info."));
sl@0
  1247
				
sl@0
  1248
				TVideoDataUnitType testDataUnitType = TVideoDataUnitType(0);
sl@0
  1249
				TVideoDataUnitEncapsulation testDataUnitEncapsulation = TVideoDataUnitEncapsulation(0);
sl@0
  1250
				TVideoInputBuffer* testDataUnit = new TVideoInputBuffer();
sl@0
  1251
				TYuvFormat testYuvFormat;
sl@0
  1252
				if (!testDataUnit)
sl@0
  1253
					{
sl@0
  1254
					ERR_PRINTF2(_L("Failed to allocate test data."), KErrNoMemory);
sl@0
  1255
					}
sl@0
  1256
				else
sl@0
  1257
					{				
sl@0
  1258
					// Call the interface's method
sl@0
  1259
					TRAPD(err, interface->MmvpciGetColourSpaceHeaderInfoL(	testDataUnitType,
sl@0
  1260
																			testDataUnitEncapsulation,
sl@0
  1261
																			testDataUnit,
sl@0
  1262
																			testYuvFormat));
sl@0
  1263
					if ((err == KErrNone) &&
sl@0
  1264
						(dataUnitType == testDataUnitType) &&
sl@0
  1265
						(dataUnitEncapsulation == testDataUnitEncapsulation) &&
sl@0
  1266
						(dataUnit->iOptions == testDataUnit->iOptions) &&
sl@0
  1267
						(yuvFormat == testYuvFormat))
sl@0
  1268
						{
sl@0
  1269
						INFO_PRINTF1(_L("Succesfully retrieved the colour space header info."));
sl@0
  1270
						ret = EPass;
sl@0
  1271
						}
sl@0
  1272
					else
sl@0
  1273
						{
sl@0
  1274
						ERR_PRINTF1(_L("Failed to retrieve the colour space header info."));
sl@0
  1275
						}
sl@0
  1276
					}
sl@0
  1277
				delete testDataUnit;
sl@0
  1278
				}
sl@0
  1279
			else
sl@0
  1280
				{
sl@0
  1281
				ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1282
				ret = EInconclusive;
sl@0
  1283
				}
sl@0
  1284
			}
sl@0
  1285
		delete dataUnit;
sl@0
  1286
		}
sl@0
  1287
sl@0
  1288
	return ret;
sl@0
  1289
	}
sl@0
  1290
sl@0
  1291
//------------------------------------------------------------------
sl@0
  1292
// Resource control tests implementation
sl@0
  1293
CTestDevVideoCiuPlayCreatePolicyExtension::CTestDevVideoCiuPlayCreatePolicyExtension(const TDesC& aTestName)
sl@0
  1294
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1295
	{
sl@0
  1296
	}
sl@0
  1297
sl@0
  1298
CTestDevVideoCiuPlayCreatePolicyExtension* CTestDevVideoCiuPlayCreatePolicyExtension::NewL(const TDesC& aTestName)
sl@0
  1299
	{
sl@0
  1300
	CTestDevVideoCiuPlayCreatePolicyExtension* self = new(ELeave) CTestDevVideoCiuPlayCreatePolicyExtension(aTestName);
sl@0
  1301
	return self;
sl@0
  1302
	}
sl@0
  1303
sl@0
  1304
TVerdict CTestDevVideoCiuPlayCreatePolicyExtension::DoTestStepPreambleL()
sl@0
  1305
	{
sl@0
  1306
	// Call the base class first
sl@0
  1307
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1308
	if (ret == EPass)
sl@0
  1309
		{
sl@0
  1310
		// select decoder
sl@0
  1311
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1312
		
sl@0
  1313
		if (err != KErrNone)
sl@0
  1314
			{
sl@0
  1315
			ret = EInconclusive;
sl@0
  1316
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1317
			}
sl@0
  1318
		}
sl@0
  1319
	return ret;
sl@0
  1320
	}
sl@0
  1321
	
sl@0
  1322
TVerdict CTestDevVideoCiuPlayCreatePolicyExtension::DoTestL()
sl@0
  1323
	{
sl@0
  1324
	TVerdict ret = EPass;
sl@0
  1325
	
sl@0
  1326
	INFO_PRINTF1(_L("DevVideo CIU Policy Extension Interface Initialisation"));
sl@0
  1327
	
sl@0
  1328
	// Try to fetch the CI...
sl@0
  1329
	MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL;
sl@0
  1330
		
sl@0
  1331
	interface = static_cast<MMmfVideoHwDeviceVideoPolicyExtension*>
sl@0
  1332
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1333
																	KUidMmfVideoHwDevVideoPolicyExtension));
sl@0
  1334
	if (!interface)
sl@0
  1335
		{
sl@0
  1336
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1337
		ret = EFail;
sl@0
  1338
		}
sl@0
  1339
	else
sl@0
  1340
		{
sl@0
  1341
		INFO_PRINTF1(_L("DevVideo CIU Policy Extension Interface Instantiated"));
sl@0
  1342
		}
sl@0
  1343
		
sl@0
  1344
	return ret;
sl@0
  1345
	}
sl@0
  1346
sl@0
  1347
//-------------------------------------------------------------------------
sl@0
  1348
CTestDevVideoCiuPlaySetClientPolicyExtension::CTestDevVideoCiuPlaySetClientPolicyExtension(const TDesC& aTestName)
sl@0
  1349
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1350
	{
sl@0
  1351
	}
sl@0
  1352
sl@0
  1353
CTestDevVideoCiuPlaySetClientPolicyExtension* CTestDevVideoCiuPlaySetClientPolicyExtension::NewL(const TDesC& aTestName)
sl@0
  1354
	{
sl@0
  1355
	CTestDevVideoCiuPlaySetClientPolicyExtension* self = new(ELeave) CTestDevVideoCiuPlaySetClientPolicyExtension(aTestName);
sl@0
  1356
	return self;
sl@0
  1357
	}
sl@0
  1358
sl@0
  1359
TVerdict CTestDevVideoCiuPlaySetClientPolicyExtension::DoTestStepPreambleL()
sl@0
  1360
	{
sl@0
  1361
	// Call the base class first
sl@0
  1362
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1363
sl@0
  1364
	if (ret == EPass)
sl@0
  1365
		{
sl@0
  1366
		// select decoder
sl@0
  1367
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1368
sl@0
  1369
		if (err != KErrNone)
sl@0
  1370
			{
sl@0
  1371
			ret = EInconclusive;
sl@0
  1372
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1373
			}
sl@0
  1374
		}
sl@0
  1375
sl@0
  1376
	return ret;
sl@0
  1377
	}
sl@0
  1378
sl@0
  1379
// Implementation that uses the test interface to set data that can be checked
sl@0
  1380
// in the call to the interface's "get" method.
sl@0
  1381
TVerdict CTestDevVideoCiuPlaySetClientPolicyExtension::DoTestL()
sl@0
  1382
	{
sl@0
  1383
	TVerdict ret = EFail;
sl@0
  1384
sl@0
  1385
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1386
	// Try to fetch the CI...
sl@0
  1387
	MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL;
sl@0
  1388
		
sl@0
  1389
	interface = static_cast<MMmfVideoHwDeviceVideoPolicyExtension*>(iDevVideoPlay->CustomInterface(
sl@0
  1390
																		iHwDeviceId, 
sl@0
  1391
																		KUidMmfVideoHwDevVideoPolicyExtension));
sl@0
  1392
	if (!interface)
sl@0
  1393
		{
sl@0
  1394
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1395
		ret = EInconclusive;
sl@0
  1396
		}
sl@0
  1397
	else
sl@0
  1398
		{
sl@0
  1399
		MMmfVideoHwDevClientNotifier* clientNotifier = this;
sl@0
  1400
		// call the interface's method
sl@0
  1401
		interface->MmvhvpeSetVideoClient(clientNotifier);
sl@0
  1402
		
sl@0
  1403
		// Now set up the test interface...
sl@0
  1404
		MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL;
sl@0
  1405
		testInterface = static_cast<MDevVideoCiuTestInterfaceClientResourceNotifier*>
sl@0
  1406
									(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  1407
																	KUidDevVideoCiuTestInterfaceClientResourceNotifier));
sl@0
  1408
		if (testInterface)
sl@0
  1409
			{
sl@0
  1410
			if (testInterface->McrnVideoClient() == clientNotifier)
sl@0
  1411
				{
sl@0
  1412
				INFO_PRINTF1(_L("Succesfully set the client notifier."));
sl@0
  1413
				ret = EPass;
sl@0
  1414
				}
sl@0
  1415
			else
sl@0
  1416
				{
sl@0
  1417
				ERR_PRINTF1(_L("Failed to set the client notifier."));
sl@0
  1418
				}
sl@0
  1419
			}
sl@0
  1420
		else
sl@0
  1421
			{
sl@0
  1422
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1423
			ret = EInconclusive;
sl@0
  1424
			}
sl@0
  1425
		}
sl@0
  1426
sl@0
  1427
	return ret;
sl@0
  1428
	}
sl@0
  1429
sl@0
  1430
// from MMmfVideoHwDevClientNotifier
sl@0
  1431
void CTestDevVideoCiuPlaySetClientPolicyExtension::MmvhcnVideoAccessRevoked()
sl@0
  1432
	{
sl@0
  1433
	}
sl@0
  1434
// from MMmfVideoHwDevClientNotifier	
sl@0
  1435
void CTestDevVideoCiuPlaySetClientPolicyExtension::MmvhcnReleaseVideoResource()
sl@0
  1436
	{
sl@0
  1437
	}
sl@0
  1438
//----------------------------------------------------------------------------
sl@0
  1439
CTestDevVideoCiuPlaySetPriorityPolicyExtension::CTestDevVideoCiuPlaySetPriorityPolicyExtension(const TDesC& aTestName)
sl@0
  1440
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1441
	{
sl@0
  1442
	}
sl@0
  1443
sl@0
  1444
CTestDevVideoCiuPlaySetPriorityPolicyExtension* CTestDevVideoCiuPlaySetPriorityPolicyExtension::NewL(const TDesC& aTestName)
sl@0
  1445
	{
sl@0
  1446
	CTestDevVideoCiuPlaySetPriorityPolicyExtension* self = new(ELeave) CTestDevVideoCiuPlaySetPriorityPolicyExtension(aTestName);
sl@0
  1447
	return self;
sl@0
  1448
	}
sl@0
  1449
sl@0
  1450
TVerdict CTestDevVideoCiuPlaySetPriorityPolicyExtension::DoTestStepPreambleL()
sl@0
  1451
	{
sl@0
  1452
	// Call the base class first
sl@0
  1453
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1454
sl@0
  1455
	if (ret == EPass)
sl@0
  1456
		{
sl@0
  1457
		// select decoder
sl@0
  1458
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1459
		
sl@0
  1460
		if (err != KErrNone)
sl@0
  1461
			{
sl@0
  1462
			ret = EInconclusive;
sl@0
  1463
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1464
			}
sl@0
  1465
		}
sl@0
  1466
	
sl@0
  1467
	return ret;
sl@0
  1468
	}
sl@0
  1469
sl@0
  1470
TVerdict CTestDevVideoCiuPlaySetPriorityPolicyExtension::DoTestL()
sl@0
  1471
	{
sl@0
  1472
	TVerdict ret = EFail;
sl@0
  1473
	
sl@0
  1474
	INFO_PRINTF1(_L("DevVideo CIU Policy Extension Set Priority"));
sl@0
  1475
sl@0
  1476
	// Try to fetch the CI...
sl@0
  1477
	MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL;
sl@0
  1478
		
sl@0
  1479
	interface = static_cast<MMmfVideoHwDeviceVideoPolicyExtension*>
sl@0
  1480
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1481
																	KUidMmfVideoHwDevVideoPolicyExtension));
sl@0
  1482
	if (!interface)
sl@0
  1483
		{
sl@0
  1484
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1485
		}
sl@0
  1486
	else
sl@0
  1487
		{
sl@0
  1488
		TInt priority = 666;
sl@0
  1489
		interface->MmvhvpeSetVideoPriority(priority);
sl@0
  1490
		
sl@0
  1491
		// Now set up the test interface...
sl@0
  1492
		MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL;
sl@0
  1493
		testInterface = static_cast<MDevVideoCiuTestInterfaceClientResourceNotifier*>
sl@0
  1494
									(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  1495
																	KUidDevVideoCiuTestInterfaceClientResourceNotifier));
sl@0
  1496
		if (testInterface)
sl@0
  1497
			{
sl@0
  1498
			if (testInterface->McrnVideoPriority() == priority)
sl@0
  1499
				{
sl@0
  1500
				INFO_PRINTF1(_L("Succesfully retrieved the video priority."));
sl@0
  1501
				ret = EPass;
sl@0
  1502
				}
sl@0
  1503
			else
sl@0
  1504
				{
sl@0
  1505
				ERR_PRINTF1(_L("Failed to retrieve the video priority."));
sl@0
  1506
				}
sl@0
  1507
			}
sl@0
  1508
		else
sl@0
  1509
			{
sl@0
  1510
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1511
			ret = EInconclusive;
sl@0
  1512
			}		
sl@0
  1513
		}
sl@0
  1514
	return ret;
sl@0
  1515
	}
sl@0
  1516
sl@0
  1517
//-------------------------------------------------------------------------
sl@0
  1518
CTestDevVideoCiuPlayClientNotifierRevoked::CTestDevVideoCiuPlayClientNotifierRevoked(const TDesC& aTestName)
sl@0
  1519
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1520
	{
sl@0
  1521
	}
sl@0
  1522
sl@0
  1523
CTestDevVideoCiuPlayClientNotifierRevoked* CTestDevVideoCiuPlayClientNotifierRevoked::NewL(const TDesC& aTestName)
sl@0
  1524
	{
sl@0
  1525
	CTestDevVideoCiuPlayClientNotifierRevoked* self = new(ELeave) CTestDevVideoCiuPlayClientNotifierRevoked(aTestName);
sl@0
  1526
	return self;
sl@0
  1527
	}
sl@0
  1528
sl@0
  1529
TVerdict CTestDevVideoCiuPlayClientNotifierRevoked::DoTestStepPreambleL()
sl@0
  1530
	{
sl@0
  1531
	// Call the base class first
sl@0
  1532
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1533
sl@0
  1534
	if (ret == EPass)
sl@0
  1535
		{
sl@0
  1536
		// select decoder
sl@0
  1537
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1538
sl@0
  1539
		if (err != KErrNone)
sl@0
  1540
			{
sl@0
  1541
			ret = EInconclusive;
sl@0
  1542
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1543
			}
sl@0
  1544
		}
sl@0
  1545
	return ret;
sl@0
  1546
	}
sl@0
  1547
sl@0
  1548
// Implementation that uses the test interface to set data that can be checked
sl@0
  1549
// in the call to the interface's "get" method.
sl@0
  1550
TVerdict CTestDevVideoCiuPlayClientNotifierRevoked::DoTestL()
sl@0
  1551
	{
sl@0
  1552
	TVerdict ret = EFail;
sl@0
  1553
sl@0
  1554
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1555
	// Try to fetch the CI...
sl@0
  1556
	MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL;
sl@0
  1557
		
sl@0
  1558
	interface = static_cast<MMmfVideoHwDeviceVideoPolicyExtension*>(iDevVideoPlay->CustomInterface(
sl@0
  1559
																		iHwDeviceId, 
sl@0
  1560
																		KUidMmfVideoHwDevVideoPolicyExtension));
sl@0
  1561
	if (!interface)
sl@0
  1562
		{
sl@0
  1563
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1564
		ret = EInconclusive;
sl@0
  1565
		}
sl@0
  1566
	else
sl@0
  1567
		{
sl@0
  1568
		MMmfVideoHwDevClientNotifier* clientNotifier = this;
sl@0
  1569
		// call the interface's method
sl@0
  1570
		interface->MmvhvpeSetVideoClient(clientNotifier);
sl@0
  1571
		
sl@0
  1572
		// Now set up the test interface...
sl@0
  1573
		MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL;
sl@0
  1574
		testInterface = static_cast<MDevVideoCiuTestInterfaceClientResourceNotifier*>
sl@0
  1575
									(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  1576
																	KUidDevVideoCiuTestInterfaceClientResourceNotifier));
sl@0
  1577
		if (testInterface)
sl@0
  1578
			{
sl@0
  1579
			INFO_PRINTF1(_L("Requesting the revoke callback."));
sl@0
  1580
			testInterface->McrnRequestRevokeCallback();
sl@0
  1581
			
sl@0
  1582
			if (iCallback)
sl@0
  1583
				{
sl@0
  1584
				ret = EPass;
sl@0
  1585
				}
sl@0
  1586
			else
sl@0
  1587
				{
sl@0
  1588
				ERR_PRINTF1(_L("Didn't receive the revoke callback."));
sl@0
  1589
				}
sl@0
  1590
			}
sl@0
  1591
		else
sl@0
  1592
			{
sl@0
  1593
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1594
			ret = EInconclusive;
sl@0
  1595
			}
sl@0
  1596
		}
sl@0
  1597
sl@0
  1598
	return ret;
sl@0
  1599
	}
sl@0
  1600
sl@0
  1601
// from MMmfVideoHwDevClientNotifier
sl@0
  1602
void CTestDevVideoCiuPlayClientNotifierRevoked::MmvhcnVideoAccessRevoked()
sl@0
  1603
	{
sl@0
  1604
	INFO_PRINTF1(_L("Access revoked callback received."));
sl@0
  1605
	iCallback = ETrue;
sl@0
  1606
	}
sl@0
  1607
	
sl@0
  1608
// from MMmfVideoHwDevClientNotifier	
sl@0
  1609
void CTestDevVideoCiuPlayClientNotifierRevoked::MmvhcnReleaseVideoResource()
sl@0
  1610
	{
sl@0
  1611
	}
sl@0
  1612
sl@0
  1613
//----------------------------------------------------------------------------------------
sl@0
  1614
sl@0
  1615
CTestDevVideoCiuPlayClientNotifierResource::CTestDevVideoCiuPlayClientNotifierResource(const TDesC& aTestName)
sl@0
  1616
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1617
	{
sl@0
  1618
	}
sl@0
  1619
sl@0
  1620
CTestDevVideoCiuPlayClientNotifierResource* CTestDevVideoCiuPlayClientNotifierResource::NewL(const TDesC& aTestName)
sl@0
  1621
	{
sl@0
  1622
	CTestDevVideoCiuPlayClientNotifierResource* self = new(ELeave) CTestDevVideoCiuPlayClientNotifierResource(aTestName);
sl@0
  1623
	return self;
sl@0
  1624
	}
sl@0
  1625
sl@0
  1626
TVerdict CTestDevVideoCiuPlayClientNotifierResource::DoTestStepPreambleL()
sl@0
  1627
	{
sl@0
  1628
	// Call the base class first
sl@0
  1629
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1630
sl@0
  1631
	if (ret == EPass)
sl@0
  1632
		{
sl@0
  1633
		// select decoder
sl@0
  1634
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1635
sl@0
  1636
		if (err != KErrNone)
sl@0
  1637
			{
sl@0
  1638
			ret = EInconclusive;
sl@0
  1639
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1640
			}
sl@0
  1641
		}
sl@0
  1642
sl@0
  1643
	return ret;
sl@0
  1644
	}
sl@0
  1645
sl@0
  1646
// Implementation that uses the test interface to set data that can be checked
sl@0
  1647
// in the call to the interface's "get" method.
sl@0
  1648
TVerdict CTestDevVideoCiuPlayClientNotifierResource::DoTestL()
sl@0
  1649
	{
sl@0
  1650
	TVerdict ret = EFail;
sl@0
  1651
sl@0
  1652
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1653
	// Try to fetch the CI...
sl@0
  1654
	MMmfVideoHwDeviceVideoPolicyExtension* interface = NULL;
sl@0
  1655
		
sl@0
  1656
	interface = static_cast<MMmfVideoHwDeviceVideoPolicyExtension*>(iDevVideoPlay->CustomInterface(
sl@0
  1657
																		iHwDeviceId, 
sl@0
  1658
																		KUidMmfVideoHwDevVideoPolicyExtension));
sl@0
  1659
	if (!interface)
sl@0
  1660
		{
sl@0
  1661
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1662
		ret = EInconclusive;
sl@0
  1663
		}
sl@0
  1664
	else
sl@0
  1665
		{
sl@0
  1666
		MMmfVideoHwDevClientNotifier* clientNotifier = this;
sl@0
  1667
		// call the interface's method
sl@0
  1668
		interface->MmvhvpeSetVideoClient(clientNotifier);
sl@0
  1669
		
sl@0
  1670
		// Now set up the test interface...
sl@0
  1671
		MDevVideoCiuTestInterfaceClientResourceNotifier* testInterface = NULL;
sl@0
  1672
		testInterface = static_cast<MDevVideoCiuTestInterfaceClientResourceNotifier*>
sl@0
  1673
									(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  1674
																	KUidDevVideoCiuTestInterfaceClientResourceNotifier));
sl@0
  1675
		if (testInterface)
sl@0
  1676
			{
sl@0
  1677
			INFO_PRINTF1(_L("Requesting the resource callback."));
sl@0
  1678
			testInterface->McrnRequestResourceCallback();
sl@0
  1679
			
sl@0
  1680
			if (iCallback)
sl@0
  1681
				{
sl@0
  1682
				ret = EPass;
sl@0
  1683
				}
sl@0
  1684
			else
sl@0
  1685
				{
sl@0
  1686
				ERR_PRINTF1(_L("Didn't receive the resource callback."));
sl@0
  1687
				}
sl@0
  1688
			}
sl@0
  1689
		else
sl@0
  1690
			{
sl@0
  1691
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1692
			ret = EInconclusive;
sl@0
  1693
			}
sl@0
  1694
		}
sl@0
  1695
sl@0
  1696
	return ret;
sl@0
  1697
	}
sl@0
  1698
sl@0
  1699
// from MMmfVideoHwDevClientNotifier
sl@0
  1700
void CTestDevVideoCiuPlayClientNotifierResource::MmvhcnVideoAccessRevoked()
sl@0
  1701
	{
sl@0
  1702
	}
sl@0
  1703
sl@0
  1704
// from MMmfVideoHwDevClientNotifier	
sl@0
  1705
void CTestDevVideoCiuPlayClientNotifierResource::MmvhcnReleaseVideoResource()
sl@0
  1706
	{
sl@0
  1707
	INFO_PRINTF1(_L("Release video resource callback received."));
sl@0
  1708
	iCallback = ETrue;
sl@0
  1709
	}
sl@0
  1710
//----------------------------------------------------------------------------------------
sl@0
  1711
sl@0
  1712
//------------------------------------------------------------------
sl@0
  1713
//			Negative Tests
sl@0
  1714
//------------------------------------------------------------------
sl@0
  1715
sl@0
  1716
CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder
sl@0
  1717
	::CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder(const TDesC& aTestName)
sl@0
  1718
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1719
	{
sl@0
  1720
	}
sl@0
  1721
sl@0
  1722
CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder* 
sl@0
  1723
CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::NewL(const TDesC& aTestName)
sl@0
  1724
	{
sl@0
  1725
	CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder* self = 
sl@0
  1726
									new(ELeave) CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder(aTestName);
sl@0
  1727
	return self;
sl@0
  1728
	}
sl@0
  1729
sl@0
  1730
TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::DoTestStepPreambleL()
sl@0
  1731
	{
sl@0
  1732
	// Call the base class first
sl@0
  1733
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1734
sl@0
  1735
	if (ret == EPass)
sl@0
  1736
		{
sl@0
  1737
		// select the decoder
sl@0
  1738
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1739
		
sl@0
  1740
		if (err != KErrNone)
sl@0
  1741
			{
sl@0
  1742
			ret = EInconclusive;
sl@0
  1743
			ERR_PRINTF1(_L("DevVideo Play Failed to select the Decoder."));
sl@0
  1744
			}
sl@0
  1745
		}
sl@0
  1746
	return ret;
sl@0
  1747
	}
sl@0
  1748
sl@0
  1749
TVerdict CTestDevVideoCiuPlayCreateVideoMediaProtectedDecoder::DoTestL()
sl@0
  1750
	{
sl@0
  1751
	TVerdict ret = EPass;
sl@0
  1752
sl@0
  1753
	INFO_PRINTF1(_L("DevVideo CIU Video Media Protected Creation Failure from Decoder"));
sl@0
  1754
sl@0
  1755
	// Got this far so must have successfully initialised DevVideoPlay
sl@0
  1756
	// Try to fetch the CI...
sl@0
  1757
	MMmfVideoMediaProtected* interface = NULL;
sl@0
  1758
	interface = static_cast<MMmfVideoMediaProtected*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1759
																					KUidMmfVideoMediaProtected));
sl@0
  1760
	if (!interface)
sl@0
  1761
		{
sl@0
  1762
		INFO_PRINTF1(_L("No interface retrieved"));
sl@0
  1763
		}
sl@0
  1764
	else
sl@0
  1765
		{
sl@0
  1766
		ERR_PRINTF1(_L("Error! An interface was retrieved"));
sl@0
  1767
		ret = EFail;
sl@0
  1768
		}
sl@0
  1769
sl@0
  1770
	return ret;
sl@0
  1771
	}
sl@0
  1772
//------------------------------------------------------------------
sl@0
  1773
sl@0
  1774
sl@0
  1775
#ifdef SYMBIAN_BUILD_GCE
sl@0
  1776
sl@0
  1777
//
sl@0
  1778
//	Video Surface Support Management Tests
sl@0
  1779
//
sl@0
  1780
CTestDevVideoCiuPlayGetAndSetUseSurface::CTestDevVideoCiuPlayGetAndSetUseSurface(const TDesC& aTestName)
sl@0
  1781
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1782
	{
sl@0
  1783
	}
sl@0
  1784
sl@0
  1785
CTestDevVideoCiuPlayGetAndSetUseSurface* CTestDevVideoCiuPlayGetAndSetUseSurface::NewL(const TDesC& aTestName)
sl@0
  1786
	{
sl@0
  1787
	CTestDevVideoCiuPlayGetAndSetUseSurface* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetUseSurface(aTestName);
sl@0
  1788
	return self;
sl@0
  1789
	}
sl@0
  1790
sl@0
  1791
TVerdict CTestDevVideoCiuPlayGetAndSetUseSurface::DoTestStepPreambleL()
sl@0
  1792
	{
sl@0
  1793
	// Call the base class first
sl@0
  1794
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1795
	if (ret == EPass)
sl@0
  1796
		{
sl@0
  1797
		// select decoder
sl@0
  1798
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1799
		
sl@0
  1800
		if (err != KErrNone)
sl@0
  1801
			{
sl@0
  1802
			ret = EInconclusive;
sl@0
  1803
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1804
			}
sl@0
  1805
		}
sl@0
  1806
	return ret;
sl@0
  1807
	}
sl@0
  1808
sl@0
  1809
TVerdict CTestDevVideoCiuPlayGetAndSetUseSurface::DoTestL()
sl@0
  1810
	{
sl@0
  1811
	TVerdict ret = EFail;
sl@0
  1812
	
sl@0
  1813
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  1814
	
sl@0
  1815
	// Fetch the CI
sl@0
  1816
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  1817
		
sl@0
  1818
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  1819
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1820
											KUidMMFVideoSurfaceSupport));
sl@0
  1821
	if (!interface)
sl@0
  1822
		{
sl@0
  1823
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1824
		ret = EFail;
sl@0
  1825
		}
sl@0
  1826
	else
sl@0
  1827
		{
sl@0
  1828
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  1829
		
sl@0
  1830
		TBool useSurface = ETrue; 
sl@0
  1831
		interface->MmvssUseSurfaces();
sl@0
  1832
		
sl@0
  1833
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  1834
sl@0
  1835
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>
sl@0
  1836
										(iDevVideoPlay->CustomInterface(iHwDeviceId, 
sl@0
  1837
											KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  1838
		if (testInterface)
sl@0
  1839
			{
sl@0
  1840
			TBool useSurfaceResult = testInterface->MdvssUseSurface();
sl@0
  1841
			if (useSurface == useSurfaceResult)
sl@0
  1842
				{
sl@0
  1843
				ret = EPass;
sl@0
  1844
				INFO_PRINTF1(_L("Use Surface call performed as expected"));
sl@0
  1845
				}
sl@0
  1846
			else
sl@0
  1847
				{
sl@0
  1848
				ret = EFail;					
sl@0
  1849
				ERR_PRINTF2(_L("Use Surface call failed. Expected: %d"),useSurface);
sl@0
  1850
				ERR_PRINTF2(_L("Result: %d"),useSurfaceResult);
sl@0
  1851
				}
sl@0
  1852
			}
sl@0
  1853
		else
sl@0
  1854
			{
sl@0
  1855
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1856
			ret = EInconclusive;
sl@0
  1857
			}
sl@0
  1858
		}
sl@0
  1859
	return ret;
sl@0
  1860
	}
sl@0
  1861
	
sl@0
  1862
//-----------------------------------------------------------//
sl@0
  1863
CTestDevVideoCiuPlayGetAndSetSurfaceParameters::CTestDevVideoCiuPlayGetAndSetSurfaceParameters(const TDesC& aTestName)
sl@0
  1864
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1865
	{
sl@0
  1866
	}
sl@0
  1867
sl@0
  1868
CTestDevVideoCiuPlayGetAndSetSurfaceParameters* CTestDevVideoCiuPlayGetAndSetSurfaceParameters::NewL(const TDesC& aTestName)
sl@0
  1869
	{
sl@0
  1870
	CTestDevVideoCiuPlayGetAndSetSurfaceParameters* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetSurfaceParameters(aTestName);
sl@0
  1871
	return self;
sl@0
  1872
	}
sl@0
  1873
sl@0
  1874
TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceParameters::DoTestStepPreambleL()
sl@0
  1875
	{
sl@0
  1876
	// Call the base class first
sl@0
  1877
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1878
	if (ret == EPass)
sl@0
  1879
		{
sl@0
  1880
		// select decoder
sl@0
  1881
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1882
		
sl@0
  1883
		if (err != KErrNone)
sl@0
  1884
			{
sl@0
  1885
			ret = EInconclusive;
sl@0
  1886
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1887
			}
sl@0
  1888
		}
sl@0
  1889
	return ret;
sl@0
  1890
	}
sl@0
  1891
sl@0
  1892
TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceParameters::DoTestL()
sl@0
  1893
	{
sl@0
  1894
	TVerdict ret = EFail;
sl@0
  1895
	
sl@0
  1896
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  1897
	
sl@0
  1898
	// Fetch the CI
sl@0
  1899
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  1900
		
sl@0
  1901
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  1902
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  1903
											KUidMMFVideoSurfaceSupport));
sl@0
  1904
	if (!interface)
sl@0
  1905
		{
sl@0
  1906
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  1907
		ret = EFail;
sl@0
  1908
		}
sl@0
  1909
	else
sl@0
  1910
		{
sl@0
  1911
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  1912
		
sl@0
  1913
		TSurfaceId surfaceId;
sl@0
  1914
		TRect getRect;
sl@0
  1915
		TVideoAspectRatio par;
sl@0
  1916
		interface->MmvssGetSurfaceParametersL(surfaceId, getRect, par);
sl@0
  1917
						
sl@0
  1918
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  1919
sl@0
  1920
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>
sl@0
  1921
										(iDevVideoPlay->CustomInterface(iHwDeviceId, 
sl@0
  1922
											KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  1923
		if (testInterface)
sl@0
  1924
			{
sl@0
  1925
			TMMFVideoSurfaceConfig vsconfResult = testInterface->MdvssSurfaceParameters();
sl@0
  1926
			
sl@0
  1927
			if (vsconfResult.iSurfaceId == surfaceId && vsconfResult.iCropRectangle.iTl.iX == getRect.iTl.iX &&
sl@0
  1928
			vsconfResult.iCropRectangle.iTl.iY == getRect.iTl.iY && vsconfResult.iCropRectangle.iBr.iX == getRect.iBr.iX && 
sl@0
  1929
			vsconfResult.iCropRectangle.iBr.iY == getRect.iBr.iY &&
sl@0
  1930
			vsconfResult.iPixelAspectRatio.iNumerator == par.iNumerator && 
sl@0
  1931
			vsconfResult.iPixelAspectRatio.iDenominator == par.iDenominator)
sl@0
  1932
				{
sl@0
  1933
				ret = EPass;
sl@0
  1934
				INFO_PRINTF1(_L("Get Surface Parameters method call performed as expected"));
sl@0
  1935
				}
sl@0
  1936
			else
sl@0
  1937
				{
sl@0
  1938
				ret = EFail;					
sl@0
  1939
				ERR_PRINTF1(_L("Get Surface Parameters method call failed"));
sl@0
  1940
				INFO_PRINTF5(_L("Expected surfaceId %d %d %d %d"),
sl@0
  1941
								vsconfResult.iSurfaceId.iInternal[0], vsconfResult.iSurfaceId.iInternal[1],
sl@0
  1942
								vsconfResult.iSurfaceId.iInternal[2], vsconfResult.iSurfaceId.iInternal[3]);
sl@0
  1943
				INFO_PRINTF5(_L("surfaceId Available %d %d %d %d"),
sl@0
  1944
								surfaceId.iInternal[0], surfaceId.iInternal[1], 
sl@0
  1945
								surfaceId.iInternal[2], surfaceId.iInternal[3]);
sl@0
  1946
				INFO_PRINTF2(_L("Expected Rect first %d"),vsconfResult.iCropRectangle.iTl.iX);
sl@0
  1947
				INFO_PRINTF2(_L("Rect first Available %d"),getRect.iTl.iX);
sl@0
  1948
				INFO_PRINTF2(_L("Expected Rect second %d"),vsconfResult.iCropRectangle.iTl.iY);
sl@0
  1949
				INFO_PRINTF2(_L("Rect second Available %d"),getRect.iTl.iY);
sl@0
  1950
				INFO_PRINTF2(_L("Expected Rect third %d"),vsconfResult.iCropRectangle.iBr.iX);
sl@0
  1951
	
sl@0
  1952
				INFO_PRINTF2(_L("Rect third Available %d"),getRect.iBr.iX);
sl@0
  1953
				INFO_PRINTF2(_L("Expected Rect fourth %d"),vsconfResult.iCropRectangle.iBr.iY);
sl@0
  1954
				INFO_PRINTF2(_L("Rect fourth Available %d"),getRect.iBr.iY);
sl@0
  1955
				INFO_PRINTF2(_L("Expected TVideoAspectRatio iNumerator %d"),vsconfResult.iPixelAspectRatio.iNumerator);
sl@0
  1956
				INFO_PRINTF2(_L("TVideoAspectRatio iNumerator Available %d"),par.iNumerator);
sl@0
  1957
				INFO_PRINTF2(_L("Expected TVideoAspectRatio iDenominator %d"),vsconfResult.iPixelAspectRatio.iDenominator);
sl@0
  1958
				INFO_PRINTF2(_L("TVideoAspectRatio iDenominator Available %d"),par.iDenominator);
sl@0
  1959
sl@0
  1960
				}
sl@0
  1961
			}
sl@0
  1962
		else
sl@0
  1963
			{
sl@0
  1964
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  1965
			ret = EInconclusive;
sl@0
  1966
			}
sl@0
  1967
		}
sl@0
  1968
	return ret;
sl@0
  1969
	}
sl@0
  1970
	
sl@0
  1971
//-----------------------------------------------------------//
sl@0
  1972
CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::CTestDevVideoCiuPlayGetAndSetSurfaceRemoved(const TDesC& aTestName)
sl@0
  1973
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  1974
	{
sl@0
  1975
	}
sl@0
  1976
sl@0
  1977
CTestDevVideoCiuPlayGetAndSetSurfaceRemoved* CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::NewL(const TDesC& aTestName)
sl@0
  1978
	{
sl@0
  1979
	CTestDevVideoCiuPlayGetAndSetSurfaceRemoved* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetSurfaceRemoved(aTestName);
sl@0
  1980
	return self;
sl@0
  1981
	}
sl@0
  1982
sl@0
  1983
TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::DoTestStepPreambleL()
sl@0
  1984
	{
sl@0
  1985
	// Call the base class first
sl@0
  1986
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  1987
	if (ret == EPass)
sl@0
  1988
		{
sl@0
  1989
		// select decoder
sl@0
  1990
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  1991
		
sl@0
  1992
		if (err != KErrNone)
sl@0
  1993
			{
sl@0
  1994
			ret = EInconclusive;
sl@0
  1995
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  1996
			}
sl@0
  1997
		}
sl@0
  1998
	return ret;
sl@0
  1999
	}
sl@0
  2000
sl@0
  2001
TVerdict CTestDevVideoCiuPlayGetAndSetSurfaceRemoved::DoTestL()
sl@0
  2002
	{
sl@0
  2003
	TVerdict ret = EFail;
sl@0
  2004
	
sl@0
  2005
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  2006
	
sl@0
  2007
	// Fetch the CI
sl@0
  2008
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  2009
		
sl@0
  2010
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  2011
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2012
											KUidMMFVideoSurfaceSupport));
sl@0
  2013
	if (!interface)
sl@0
  2014
		{
sl@0
  2015
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2016
		ret = EFail;
sl@0
  2017
		}
sl@0
  2018
	else
sl@0
  2019
		{
sl@0
  2020
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  2021
		
sl@0
  2022
		// these values can be anything
sl@0
  2023
		TSurfaceId surfaceId;
sl@0
  2024
		surfaceId.iInternal[0] = 37;
sl@0
  2025
		surfaceId.iInternal[1] = 104;
sl@0
  2026
		surfaceId.iInternal[2] = 118;
sl@0
  2027
		surfaceId.iInternal[3] = 1045;
sl@0
  2028
		
sl@0
  2029
		interface->MmvssSurfaceRemovedL(surfaceId);
sl@0
  2030
		
sl@0
  2031
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  2032
sl@0
  2033
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>
sl@0
  2034
										(iDevVideoPlay->CustomInterface(iHwDeviceId, 
sl@0
  2035
											KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  2036
		if (testInterface)
sl@0
  2037
			{
sl@0
  2038
			TSurfaceId surfaceIdResult = testInterface->MdvssSurfaceRemoved();
sl@0
  2039
			if (surfaceId == surfaceIdResult)
sl@0
  2040
				{
sl@0
  2041
				ret = EPass;
sl@0
  2042
				INFO_PRINTF1(_L("Surface Removed method call performed as expected"));
sl@0
  2043
				}
sl@0
  2044
			else
sl@0
  2045
				{
sl@0
  2046
				ret = EFail;					
sl@0
  2047
				ERR_PRINTF1(_L("Surface Removed method call failed."));
sl@0
  2048
				INFO_PRINTF5(_L("Expected surfaceId %d %d %d %d"),
sl@0
  2049
							surfaceId.iInternal[0], surfaceId.iInternal[1],
sl@0
  2050
							surfaceId.iInternal[2], surfaceId.iInternal[3]);
sl@0
  2051
				INFO_PRINTF5(_L("surfaceId Available %d %d %d %d"),
sl@0
  2052
							surfaceIdResult.iInternal[0], surfaceIdResult.iInternal[1], 
sl@0
  2053
							surfaceIdResult.iInternal[2], surfaceIdResult.iInternal[3]);
sl@0
  2054
				}
sl@0
  2055
			}
sl@0
  2056
		else
sl@0
  2057
			{
sl@0
  2058
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  2059
			ret = EInconclusive;
sl@0
  2060
			}
sl@0
  2061
		}
sl@0
  2062
	return ret;
sl@0
  2063
	}
sl@0
  2064
	
sl@0
  2065
//-----------------------------------------------------------//
sl@0
  2066
CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver(const TDesC& aTestName)
sl@0
  2067
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2068
	{
sl@0
  2069
	}
sl@0
  2070
sl@0
  2071
CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver* CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::NewL(const TDesC& aTestName)
sl@0
  2072
	{
sl@0
  2073
	CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver(aTestName);
sl@0
  2074
	return self;
sl@0
  2075
	}
sl@0
  2076
sl@0
  2077
TVerdict CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::DoTestStepPreambleL()
sl@0
  2078
	{
sl@0
  2079
	// Call the base class first
sl@0
  2080
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2081
	if (ret == EPass)
sl@0
  2082
		{
sl@0
  2083
		// select decoder
sl@0
  2084
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2085
		
sl@0
  2086
		if (err != KErrNone)
sl@0
  2087
			{
sl@0
  2088
			ret = EInconclusive;
sl@0
  2089
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2090
			}
sl@0
  2091
		}
sl@0
  2092
	return ret;
sl@0
  2093
	}
sl@0
  2094
sl@0
  2095
TVerdict CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::DoTestL()
sl@0
  2096
	{
sl@0
  2097
	TVerdict ret = EFail;
sl@0
  2098
	
sl@0
  2099
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  2100
	
sl@0
  2101
	// Fetch the CI
sl@0
  2102
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  2103
		
sl@0
  2104
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  2105
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2106
																	KUidMMFVideoSurfaceSupport));
sl@0
  2107
	if (!interface)
sl@0
  2108
		{
sl@0
  2109
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2110
		ret = EFail;
sl@0
  2111
		}
sl@0
  2112
	else
sl@0
  2113
		{
sl@0
  2114
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  2115
	
sl@0
  2116
		MMMFVideoSurfaceObserver* obs = this;
sl@0
  2117
		interface->MmvssSetObserver(*obs);
sl@0
  2118
		INFO_PRINTF1(_L("MmvssSetObserver called"));
sl@0
  2119
		
sl@0
  2120
		// Verify that the observer was set
sl@0
  2121
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  2122
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2123
															KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  2124
		if (!testInterface)
sl@0
  2125
			{
sl@0
  2126
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
  2127
			ret = EFail;
sl@0
  2128
			}
sl@0
  2129
		else
sl@0
  2130
			{
sl@0
  2131
			if (obs != testInterface->MvsoObserver())
sl@0
  2132
				{
sl@0
  2133
				ERR_PRINTF1(_L("Failed to set the observer."));
sl@0
  2134
				ret = EFail;
sl@0
  2135
				}
sl@0
  2136
			else
sl@0
  2137
				{			
sl@0
  2138
				INFO_PRINTF1(_L("SetObserver successfully called"));
sl@0
  2139
				ret = EPass;
sl@0
  2140
				}
sl@0
  2141
			}		
sl@0
  2142
		}
sl@0
  2143
	return ret;
sl@0
  2144
	}
sl@0
  2145
sl@0
  2146
//from MMMFVideoSurfaceObserver
sl@0
  2147
void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoSurfaceCreated()
sl@0
  2148
	{}
sl@0
  2149
		
sl@0
  2150
void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoSurfaceParametersChanged()
sl@0
  2151
	{}
sl@0
  2152
sl@0
  2153
void CTestDevVideoCiuPlaySetAndGetSurfaceSupportObserver::MmvsoRemoveSurface()
sl@0
  2154
	{}
sl@0
  2155
	
sl@0
  2156
//------------------------------------------------------------------
sl@0
  2157
sl@0
  2158
CTestDevVideoCiuPlaySurfaceCreated::CTestDevVideoCiuPlaySurfaceCreated(const TDesC& aTestName)
sl@0
  2159
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
  2160
	{
sl@0
  2161
	}
sl@0
  2162
sl@0
  2163
CTestDevVideoCiuPlaySurfaceCreated* CTestDevVideoCiuPlaySurfaceCreated::NewL(const TDesC& aTestName)
sl@0
  2164
	{
sl@0
  2165
	CTestDevVideoCiuPlaySurfaceCreated* self = new(ELeave) CTestDevVideoCiuPlaySurfaceCreated(aTestName);
sl@0
  2166
	return self;
sl@0
  2167
	}
sl@0
  2168
sl@0
  2169
TVerdict CTestDevVideoCiuPlaySurfaceCreated::DoTestStepPreambleL()
sl@0
  2170
	{
sl@0
  2171
	// Call the base class first
sl@0
  2172
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2173
	if (ret == EPass)
sl@0
  2174
		{
sl@0
  2175
		// select decoder
sl@0
  2176
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2177
		
sl@0
  2178
		if (err != KErrNone)
sl@0
  2179
			{
sl@0
  2180
			ret = EInconclusive;
sl@0
  2181
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2182
			}
sl@0
  2183
		}
sl@0
  2184
	return ret;
sl@0
  2185
	}
sl@0
  2186
sl@0
  2187
TVerdict CTestDevVideoCiuPlaySurfaceCreated::DoTestL()
sl@0
  2188
	{
sl@0
  2189
	TVerdict ret = EFail;
sl@0
  2190
	
sl@0
  2191
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  2192
	
sl@0
  2193
	// Fetch the CI
sl@0
  2194
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  2195
		
sl@0
  2196
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  2197
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2198
																	KUidMMFVideoSurfaceSupport));
sl@0
  2199
	if (!interface)
sl@0
  2200
		{
sl@0
  2201
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2202
		ret = EFail;
sl@0
  2203
		}
sl@0
  2204
	else
sl@0
  2205
		{
sl@0
  2206
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  2207
	
sl@0
  2208
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  2209
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2210
															KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  2211
		if (!testInterface)
sl@0
  2212
			{
sl@0
  2213
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
  2214
			ret = EFail;
sl@0
  2215
			}
sl@0
  2216
		else
sl@0
  2217
			{
sl@0
  2218
			// Set the observer to callback!
sl@0
  2219
			MMMFVideoSurfaceObserver* obs = this;
sl@0
  2220
			interface->MmvssSetObserver(*obs);
sl@0
  2221
		
sl@0
  2222
			INFO_PRINTF1(_L("Requesting the surface created Callback..."));
sl@0
  2223
			testInterface->MmvsoSurfaceCreatedCallback();
sl@0
  2224
sl@0
  2225
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
  2226
				{	
sl@0
  2227
				ERR_PRINTF1(_L("Error receiving the Surface Created Callback."));
sl@0
  2228
				ret = EFail;
sl@0
  2229
				}
sl@0
  2230
			else
sl@0
  2231
				{
sl@0
  2232
				INFO_PRINTF1(_L("Successfully retrieved the Surface Support Callback"));
sl@0
  2233
				ret = EPass;
sl@0
  2234
				}
sl@0
  2235
			}
sl@0
  2236
		}
sl@0
  2237
	return ret;
sl@0
  2238
	}
sl@0
  2239
sl@0
  2240
//from MMMFVideoSurfaceObserver
sl@0
  2241
void CTestDevVideoCiuPlaySurfaceCreated::MmvsoSurfaceCreated()
sl@0
  2242
	{
sl@0
  2243
	INFO_PRINTF1(_L("Surface Support callback received."));
sl@0
  2244
	iCallbackReceived = ETrue;
sl@0
  2245
	iError = KErrNone;
sl@0
  2246
	}
sl@0
  2247
		
sl@0
  2248
void CTestDevVideoCiuPlaySurfaceCreated::MmvsoSurfaceParametersChanged()
sl@0
  2249
	{
sl@0
  2250
	iError = KErrNotSupported;
sl@0
  2251
	}
sl@0
  2252
void CTestDevVideoCiuPlaySurfaceCreated::MmvsoRemoveSurface()
sl@0
  2253
	{
sl@0
  2254
	iError = KErrNotSupported;
sl@0
  2255
	}
sl@0
  2256
sl@0
  2257
//------------------------------------------------------------------
sl@0
  2258
sl@0
  2259
CTestDevVideoCiuPlaySurfaceParametersChanged::CTestDevVideoCiuPlaySurfaceParametersChanged(const TDesC& aTestName)
sl@0
  2260
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
  2261
	{
sl@0
  2262
	}
sl@0
  2263
sl@0
  2264
CTestDevVideoCiuPlaySurfaceParametersChanged* CTestDevVideoCiuPlaySurfaceParametersChanged::NewL(const TDesC& aTestName)
sl@0
  2265
	{
sl@0
  2266
	CTestDevVideoCiuPlaySurfaceParametersChanged* self = new(ELeave) CTestDevVideoCiuPlaySurfaceParametersChanged(aTestName);
sl@0
  2267
	return self;
sl@0
  2268
	}
sl@0
  2269
sl@0
  2270
TVerdict CTestDevVideoCiuPlaySurfaceParametersChanged::DoTestStepPreambleL()
sl@0
  2271
	{
sl@0
  2272
	// Call the base class first
sl@0
  2273
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2274
	if (ret == EPass)
sl@0
  2275
		{
sl@0
  2276
		// select decoder
sl@0
  2277
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2278
		
sl@0
  2279
		if (err != KErrNone)
sl@0
  2280
			{
sl@0
  2281
			ret = EInconclusive;
sl@0
  2282
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2283
			}
sl@0
  2284
		}
sl@0
  2285
	return ret;
sl@0
  2286
	}
sl@0
  2287
sl@0
  2288
TVerdict CTestDevVideoCiuPlaySurfaceParametersChanged::DoTestL()
sl@0
  2289
	{
sl@0
  2290
	TVerdict ret = EFail;
sl@0
  2291
	
sl@0
  2292
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  2293
	
sl@0
  2294
	// Fetch the CI
sl@0
  2295
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  2296
		
sl@0
  2297
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  2298
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2299
																	KUidMMFVideoSurfaceSupport));
sl@0
  2300
	if (!interface)
sl@0
  2301
		{
sl@0
  2302
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2303
		ret = EFail;
sl@0
  2304
		}
sl@0
  2305
	else
sl@0
  2306
		{
sl@0
  2307
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  2308
	
sl@0
  2309
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  2310
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2311
															KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  2312
		if (!testInterface)
sl@0
  2313
			{
sl@0
  2314
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
  2315
			ret = EFail;
sl@0
  2316
			}
sl@0
  2317
		else
sl@0
  2318
			{
sl@0
  2319
			// Set the observer to callback!
sl@0
  2320
			MMMFVideoSurfaceObserver* obs = this;
sl@0
  2321
			interface->MmvssSetObserver(*obs);
sl@0
  2322
		
sl@0
  2323
			INFO_PRINTF1(_L("Requesting the Surface Parameters Changed Callback..."));
sl@0
  2324
			testInterface->MmvsoSurfaceParametersChangedCallback();
sl@0
  2325
sl@0
  2326
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
  2327
				{	
sl@0
  2328
				ERR_PRINTF1(_L("Error receiving Surface Parameters Changed Callback."));
sl@0
  2329
				ret = EFail;
sl@0
  2330
				}
sl@0
  2331
			else
sl@0
  2332
				{
sl@0
  2333
				INFO_PRINTF1(_L("Successfully retrieved Surface Parameters Changed Callback"));
sl@0
  2334
				ret = EPass;
sl@0
  2335
				}
sl@0
  2336
			}
sl@0
  2337
		}
sl@0
  2338
	return ret;
sl@0
  2339
	}
sl@0
  2340
sl@0
  2341
//from MMMFVideoSurfaceObserver
sl@0
  2342
void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoSurfaceCreated()
sl@0
  2343
	{
sl@0
  2344
	iError = KErrNotSupported;
sl@0
  2345
	}
sl@0
  2346
		
sl@0
  2347
void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoSurfaceParametersChanged()
sl@0
  2348
	{
sl@0
  2349
	INFO_PRINTF1(_L("Surface Parameters Changed callback received."));
sl@0
  2350
	iCallbackReceived = ETrue;
sl@0
  2351
	iError = KErrNone;
sl@0
  2352
	}
sl@0
  2353
	
sl@0
  2354
void CTestDevVideoCiuPlaySurfaceParametersChanged::MmvsoRemoveSurface()
sl@0
  2355
	{
sl@0
  2356
	iError = KErrNotSupported;
sl@0
  2357
	}
sl@0
  2358
sl@0
  2359
//------------------------------------------------------------------
sl@0
  2360
sl@0
  2361
CTestDevVideoCiuRemoveSurface::CTestDevVideoCiuRemoveSurface(const TDesC& aTestName)
sl@0
  2362
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
  2363
	{
sl@0
  2364
	}
sl@0
  2365
sl@0
  2366
CTestDevVideoCiuRemoveSurface* CTestDevVideoCiuRemoveSurface::NewL(const TDesC& aTestName)
sl@0
  2367
	{
sl@0
  2368
	CTestDevVideoCiuRemoveSurface* self = new(ELeave) CTestDevVideoCiuRemoveSurface(aTestName);
sl@0
  2369
	return self;
sl@0
  2370
	}
sl@0
  2371
sl@0
  2372
TVerdict CTestDevVideoCiuRemoveSurface::DoTestStepPreambleL()
sl@0
  2373
	{
sl@0
  2374
	// Call the base class first
sl@0
  2375
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2376
	if (ret == EPass)
sl@0
  2377
		{
sl@0
  2378
		// select decoder
sl@0
  2379
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2380
		
sl@0
  2381
		if (err != KErrNone)
sl@0
  2382
			{
sl@0
  2383
			ret = EInconclusive;
sl@0
  2384
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2385
			}
sl@0
  2386
		}
sl@0
  2387
	return ret;
sl@0
  2388
	}
sl@0
  2389
sl@0
  2390
TVerdict CTestDevVideoCiuRemoveSurface::DoTestL()
sl@0
  2391
	{
sl@0
  2392
	TVerdict ret = EFail;
sl@0
  2393
	
sl@0
  2394
	INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Initialisation"));
sl@0
  2395
	
sl@0
  2396
	// Fetch the CI
sl@0
  2397
	MMMFVideoSurfaceSupport* interface = NULL;
sl@0
  2398
		
sl@0
  2399
	interface = static_cast<MMMFVideoSurfaceSupport*>
sl@0
  2400
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2401
																	KUidMMFVideoSurfaceSupport));
sl@0
  2402
	if (!interface)
sl@0
  2403
		{
sl@0
  2404
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2405
		ret = EFail;
sl@0
  2406
		}
sl@0
  2407
	else
sl@0
  2408
		{
sl@0
  2409
		INFO_PRINTF1(_L("DevVideo CIU Surface Support Interface Instantiated"));
sl@0
  2410
	
sl@0
  2411
		MDevVideoCiuTestInterfaceVideoSurfaceSupport* testInterface = NULL;
sl@0
  2412
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoSurfaceSupport*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2413
															KUidDevVideoCiuTestInterfaceVideoSurfaceSupport));
sl@0
  2414
		if (!testInterface)
sl@0
  2415
			{
sl@0
  2416
			ERR_PRINTF1(_L("Failed to create the test interface."));
sl@0
  2417
			ret = EFail;
sl@0
  2418
			}
sl@0
  2419
		else
sl@0
  2420
			{
sl@0
  2421
			// Set the observer to callback!
sl@0
  2422
			MMMFVideoSurfaceObserver* obs = this;
sl@0
  2423
			interface->MmvssSetObserver(*obs);
sl@0
  2424
		
sl@0
  2425
			INFO_PRINTF1(_L("Requesting Remove Surface Callback..."));
sl@0
  2426
			testInterface->MmvsoRemoveSurfaceCallback();
sl@0
  2427
sl@0
  2428
			if ((iError != KErrNone) || (!iCallbackReceived))
sl@0
  2429
				{	
sl@0
  2430
				ERR_PRINTF1(_L("Error receiving Remove Surface Callback."));
sl@0
  2431
				ret = EFail;
sl@0
  2432
				}
sl@0
  2433
			else
sl@0
  2434
				{
sl@0
  2435
				INFO_PRINTF1(_L("Successfully retrieved Remove Surface Callback"));
sl@0
  2436
				ret = EPass;
sl@0
  2437
				}
sl@0
  2438
			}
sl@0
  2439
		}
sl@0
  2440
	return ret;
sl@0
  2441
	}
sl@0
  2442
sl@0
  2443
//from MMMFVideoSurfaceObserver
sl@0
  2444
void CTestDevVideoCiuRemoveSurface::MmvsoSurfaceCreated()
sl@0
  2445
	{
sl@0
  2446
	iError = KErrNotSupported;
sl@0
  2447
	}
sl@0
  2448
		
sl@0
  2449
void CTestDevVideoCiuRemoveSurface::MmvsoSurfaceParametersChanged()
sl@0
  2450
	{
sl@0
  2451
	iError = KErrNotSupported;
sl@0
  2452
	}
sl@0
  2453
	
sl@0
  2454
void CTestDevVideoCiuRemoveSurface::MmvsoRemoveSurface()
sl@0
  2455
	{
sl@0
  2456
	INFO_PRINTF1(_L("Remove Surface callback received."));
sl@0
  2457
	iCallbackReceived = ETrue;
sl@0
  2458
	iError = KErrNone;
sl@0
  2459
	}
sl@0
  2460
sl@0
  2461
//----------------------------------------------------------------------------
sl@0
  2462
CTestDevVideoCiuPlayUseClientBuffers::CTestDevVideoCiuPlayUseClientBuffers(const TDesC& aTestName)
sl@0
  2463
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2464
	{
sl@0
  2465
	}
sl@0
  2466
sl@0
  2467
CTestDevVideoCiuPlayUseClientBuffers* CTestDevVideoCiuPlayUseClientBuffers::NewL(const TDesC& aTestName)
sl@0
  2468
	{
sl@0
  2469
	CTestDevVideoCiuPlayUseClientBuffers* self = new(ELeave) CTestDevVideoCiuPlayUseClientBuffers(aTestName);
sl@0
  2470
	return self;
sl@0
  2471
	}
sl@0
  2472
sl@0
  2473
TVerdict CTestDevVideoCiuPlayUseClientBuffers::DoTestStepPreambleL()
sl@0
  2474
	{
sl@0
  2475
	// Call the base class first
sl@0
  2476
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2477
sl@0
  2478
	if (ret == EPass)
sl@0
  2479
		{
sl@0
  2480
		// select decoder
sl@0
  2481
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2482
		
sl@0
  2483
		if (err != KErrNone)
sl@0
  2484
			{
sl@0
  2485
			ret = EInconclusive;
sl@0
  2486
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2487
			}
sl@0
  2488
		}
sl@0
  2489
	
sl@0
  2490
	return ret;
sl@0
  2491
	}
sl@0
  2492
sl@0
  2493
TVerdict CTestDevVideoCiuPlayUseClientBuffers::DoTestL()
sl@0
  2494
	{
sl@0
  2495
	TVerdict ret = EFail;
sl@0
  2496
	
sl@0
  2497
	INFO_PRINTF1(_L("DevVideo CIU use client buffer mode test"));
sl@0
  2498
sl@0
  2499
	// Try to fetch the CI...
sl@0
  2500
	MMMFVideoClientBufferSupport* interface = NULL;
sl@0
  2501
		
sl@0
  2502
	interface = static_cast<MMMFVideoClientBufferSupport*>
sl@0
  2503
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2504
																	KUidMMFVideoClientBufferSupport));
sl@0
  2505
	if (!interface)
sl@0
  2506
		{
sl@0
  2507
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2508
		}
sl@0
  2509
	else
sl@0
  2510
		{
sl@0
  2511
		TBool clientBuffers = ETrue;
sl@0
  2512
		interface->MvcbsUseClientBuffers(clientBuffers);
sl@0
  2513
		
sl@0
  2514
		// Now set up the test interface...
sl@0
  2515
		MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL;
sl@0
  2516
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoClientBufferSupport*>
sl@0
  2517
							(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  2518
									KUidDevVideoCiuTestInterfaceVideoClientBufferSupport));
sl@0
  2519
		if (testInterface)
sl@0
  2520
			{
sl@0
  2521
			if (testInterface->MdvcbsClientBuffers())
sl@0
  2522
				{
sl@0
  2523
				INFO_PRINTF1(_L("Succesfully retrieved the video client buffer mode"));
sl@0
  2524
				ret = EPass;
sl@0
  2525
				}
sl@0
  2526
			else
sl@0
  2527
				{
sl@0
  2528
				ERR_PRINTF1(_L("Failed to retrieve the video client buffer mode."));
sl@0
  2529
				}
sl@0
  2530
			}
sl@0
  2531
		else
sl@0
  2532
			{
sl@0
  2533
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  2534
			ret = EInconclusive;
sl@0
  2535
			}		
sl@0
  2536
		}
sl@0
  2537
	return ret;
sl@0
  2538
	}
sl@0
  2539
sl@0
  2540
//----------------------------------------------------------------------------
sl@0
  2541
CTestDevVideoCiuPlaySupplyBuffer::CTestDevVideoCiuPlaySupplyBuffer(const TDesC& aTestName)
sl@0
  2542
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2543
	{
sl@0
  2544
	}
sl@0
  2545
sl@0
  2546
CTestDevVideoCiuPlaySupplyBuffer* CTestDevVideoCiuPlaySupplyBuffer::NewL(const TDesC& aTestName)
sl@0
  2547
	{
sl@0
  2548
	CTestDevVideoCiuPlaySupplyBuffer* self = new(ELeave) CTestDevVideoCiuPlaySupplyBuffer(aTestName);
sl@0
  2549
	return self;
sl@0
  2550
	}
sl@0
  2551
sl@0
  2552
TVerdict CTestDevVideoCiuPlaySupplyBuffer::DoTestStepPreambleL()
sl@0
  2553
	{
sl@0
  2554
	// Call the base class first
sl@0
  2555
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2556
sl@0
  2557
	if (ret == EPass)
sl@0
  2558
		{
sl@0
  2559
		// select decoder
sl@0
  2560
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2561
		
sl@0
  2562
		if (err != KErrNone)
sl@0
  2563
			{
sl@0
  2564
			ret = EInconclusive;
sl@0
  2565
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2566
			}
sl@0
  2567
		}
sl@0
  2568
	
sl@0
  2569
	return ret;
sl@0
  2570
	}
sl@0
  2571
sl@0
  2572
TVerdict CTestDevVideoCiuPlaySupplyBuffer::DoTestL()
sl@0
  2573
	{
sl@0
  2574
	TVerdict ret = EFail;
sl@0
  2575
	
sl@0
  2576
	INFO_PRINTF1(_L("DevVideo CIU supply buffer test"));
sl@0
  2577
sl@0
  2578
	// Try to fetch the CI...
sl@0
  2579
	MMMFVideoClientBufferSupport* interface = NULL;
sl@0
  2580
		
sl@0
  2581
	interface = static_cast<MMMFVideoClientBufferSupport*>
sl@0
  2582
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2583
																	KUidMMFVideoClientBufferSupport));
sl@0
  2584
	if (!interface)
sl@0
  2585
		{
sl@0
  2586
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2587
		}
sl@0
  2588
	else
sl@0
  2589
		{
sl@0
  2590
		TUncompressedVideoFormat format;
sl@0
  2591
		format.iDataFormat = ERgbRawData;
sl@0
  2592
		format.iRgbFormat = ERgb32bit888;		
sl@0
  2593
		RChunk aChunk;
sl@0
  2594
sl@0
  2595
		// Create a dummy object for testing only
sl@0
  2596
		TVideoFrameBuffer buffer(format, 1, 1, aChunk, 0);
sl@0
  2597
		interface->MvcbsSupplyBuffer(buffer);
sl@0
  2598
		
sl@0
  2599
		// Now set up the test interface...
sl@0
  2600
		MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL;
sl@0
  2601
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoClientBufferSupport*>
sl@0
  2602
							(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  2603
									KUidDevVideoCiuTestInterfaceVideoClientBufferSupport));
sl@0
  2604
		if (testInterface)
sl@0
  2605
			{
sl@0
  2606
			if (testInterface->MdvcbsSupplyBuffer() == &buffer)
sl@0
  2607
				{
sl@0
  2608
				INFO_PRINTF1(_L("Succesfully retrieved the video supplied buffer"));
sl@0
  2609
				ret = EPass;
sl@0
  2610
				}
sl@0
  2611
			else
sl@0
  2612
				{
sl@0
  2613
				ERR_PRINTF1(_L("Failed to retrieve the video supplied buffer."));
sl@0
  2614
				}
sl@0
  2615
			}
sl@0
  2616
		else
sl@0
  2617
			{
sl@0
  2618
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  2619
			ret = EInconclusive;
sl@0
  2620
			}		
sl@0
  2621
		}
sl@0
  2622
	return ret;
sl@0
  2623
	}
sl@0
  2624
	
sl@0
  2625
//----------------------------------------------------------------------------
sl@0
  2626
CTestDevVideoCiuPlayReleaseBuffers::CTestDevVideoCiuPlayReleaseBuffers(const TDesC& aTestName)
sl@0
  2627
	: CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2628
	{
sl@0
  2629
	}
sl@0
  2630
sl@0
  2631
CTestDevVideoCiuPlayReleaseBuffers* CTestDevVideoCiuPlayReleaseBuffers::NewL(const TDesC& aTestName)
sl@0
  2632
	{
sl@0
  2633
	CTestDevVideoCiuPlayReleaseBuffers* self = new(ELeave) CTestDevVideoCiuPlayReleaseBuffers(aTestName);
sl@0
  2634
	return self;
sl@0
  2635
	}
sl@0
  2636
sl@0
  2637
TVerdict CTestDevVideoCiuPlayReleaseBuffers::DoTestStepPreambleL()
sl@0
  2638
	{
sl@0
  2639
	// Call the base class first
sl@0
  2640
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2641
sl@0
  2642
	if (ret == EPass)
sl@0
  2643
		{
sl@0
  2644
		// select decoder
sl@0
  2645
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2646
		
sl@0
  2647
		if (err != KErrNone)
sl@0
  2648
			{
sl@0
  2649
			ret = EInconclusive;
sl@0
  2650
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2651
			}
sl@0
  2652
		}
sl@0
  2653
	
sl@0
  2654
	return ret;
sl@0
  2655
	}
sl@0
  2656
sl@0
  2657
TVerdict CTestDevVideoCiuPlayReleaseBuffers::DoTestL()
sl@0
  2658
	{
sl@0
  2659
	TVerdict ret = EFail;
sl@0
  2660
	
sl@0
  2661
	INFO_PRINTF1(_L("DevVideo CIU release buffer test"));
sl@0
  2662
sl@0
  2663
	// Try to fetch the CI...
sl@0
  2664
	MMMFVideoClientBufferSupport* interface = NULL;
sl@0
  2665
		
sl@0
  2666
	interface = static_cast<MMMFVideoClientBufferSupport*>
sl@0
  2667
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2668
																	KUidMMFVideoClientBufferSupport));
sl@0
  2669
	if (!interface)
sl@0
  2670
		{
sl@0
  2671
		ERR_PRINTF1(_L("Error - no interface retrieved"));
sl@0
  2672
		}
sl@0
  2673
	else
sl@0
  2674
		{
sl@0
  2675
		interface->MvcbsReleaseBuffers();
sl@0
  2676
		
sl@0
  2677
		// Now set up the test interface...
sl@0
  2678
		MDevVideoCiuTestInterfaceVideoClientBufferSupport* testInterface = NULL;
sl@0
  2679
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoClientBufferSupport*>
sl@0
  2680
							(iDevVideoPlay->CustomInterface( iHwDeviceId,
sl@0
  2681
									KUidDevVideoCiuTestInterfaceVideoClientBufferSupport));
sl@0
  2682
		if (testInterface)
sl@0
  2683
			{
sl@0
  2684
			// In the test decoder, we set true when we call release buffer. Here just check it will return true.
sl@0
  2685
			if (testInterface->MdvcbsReleaseBuffers())
sl@0
  2686
				{
sl@0
  2687
				INFO_PRINTF1(_L("Succesfully release buffer."));
sl@0
  2688
				ret = EPass;
sl@0
  2689
				}
sl@0
  2690
			else
sl@0
  2691
				{
sl@0
  2692
				ERR_PRINTF1(_L("Failed to release buffer."));
sl@0
  2693
				}
sl@0
  2694
			}
sl@0
  2695
		else
sl@0
  2696
			{
sl@0
  2697
			ERR_PRINTF1(_L("Error - no test interface retrieved"));
sl@0
  2698
			ret = EInconclusive;
sl@0
  2699
			}		
sl@0
  2700
		}
sl@0
  2701
	return ret;
sl@0
  2702
	}
sl@0
  2703
sl@0
  2704
//------------------------------------------------------------------
sl@0
  2705
sl@0
  2706
CTestDevVideoCiuPlaySurfaceHandleControl::CTestDevVideoCiuPlaySurfaceHandleControl(const TDesC& aTestName)
sl@0
  2707
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2708
	{
sl@0
  2709
	}
sl@0
  2710
sl@0
  2711
CTestDevVideoCiuPlaySurfaceHandleControl* CTestDevVideoCiuPlaySurfaceHandleControl::NewL(const TDesC& aTestName)
sl@0
  2712
	{
sl@0
  2713
	CTestDevVideoCiuPlaySurfaceHandleControl* self = new(ELeave) CTestDevVideoCiuPlaySurfaceHandleControl(aTestName);
sl@0
  2714
	return self;
sl@0
  2715
	}
sl@0
  2716
sl@0
  2717
TVerdict CTestDevVideoCiuPlaySurfaceHandleControl::DoTestStepPreambleL()
sl@0
  2718
	{
sl@0
  2719
	// Call the base class first
sl@0
  2720
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2721
	if (ret == EPass)
sl@0
  2722
		{
sl@0
  2723
		// select decoder
sl@0
  2724
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2725
		
sl@0
  2726
		if (err != KErrNone)
sl@0
  2727
			{
sl@0
  2728
			ret = EInconclusive;
sl@0
  2729
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2730
			}
sl@0
  2731
		}
sl@0
  2732
	return ret;
sl@0
  2733
	}
sl@0
  2734
sl@0
  2735
TVerdict CTestDevVideoCiuPlaySurfaceHandleControl::DoTestL()
sl@0
  2736
	{
sl@0
  2737
	TVerdict ret = EFail;
sl@0
  2738
	
sl@0
  2739
	INFO_PRINTF1(_L("DevVideo CIU Surface Handle Interface Initialisation"));
sl@0
  2740
	
sl@0
  2741
	// Fetch the CI
sl@0
  2742
	MMmfVideoSurfaceHandleControl* interface = NULL;
sl@0
  2743
	
sl@0
  2744
	interface = static_cast<MMmfVideoSurfaceHandleControl*>
sl@0
  2745
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2746
											KUidMMFVideoSurfaceHandleControl));
sl@0
  2747
	if (!interface)
sl@0
  2748
		{
sl@0
  2749
		ERR_PRINTF1(_L("Error - no interface retrieved for SurfaceHandleControl"));
sl@0
  2750
		ret = EFail;
sl@0
  2751
		}
sl@0
  2752
	else
sl@0
  2753
		{
sl@0
  2754
		INFO_PRINTF1(_L("DevVideo CIU SurfaceHandle Control Interface Instantiated"));
sl@0
  2755
		TSurfaceId nullId = TSurfaceId::CreateNullId();
sl@0
  2756
		INFO_PRINTF1(_L("DevVideo CIU SurfaceHandle Control testing both surfacehandle functions"));
sl@0
  2757
		interface->MmvshcSetSurfaceHandle(nullId);
sl@0
  2758
sl@0
  2759
		// Fetch test interface
sl@0
  2760
		MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl* testInterface = NULL;
sl@0
  2761
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2762
												KUidDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl));
sl@0
  2763
		if (!testInterface)
sl@0
  2764
			{
sl@0
  2765
			ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  2766
			ret = EFail;
sl@0
  2767
			}
sl@0
  2768
		else
sl@0
  2769
			{
sl@0
  2770
			TSurfaceId surfaceId = testInterface->MdvshcGetPlaySurfaceHandle();
sl@0
  2771
			
sl@0
  2772
			if (surfaceId == nullId) 
sl@0
  2773
				{
sl@0
  2774
				ret = EPass;
sl@0
  2775
				INFO_PRINTF1(_L("Get play surface handle method call performed as expected"));
sl@0
  2776
				}
sl@0
  2777
			else
sl@0
  2778
				{
sl@0
  2779
				ret = EFail;					
sl@0
  2780
				ERR_PRINTF1(_L("Get Play surface handle method call failed"));
sl@0
  2781
				}
sl@0
  2782
		  	}
sl@0
  2783
		}
sl@0
  2784
	return ret;
sl@0
  2785
	}
sl@0
  2786
sl@0
  2787
//------------------------------------------------------------------
sl@0
  2788
sl@0
  2789
CTestDevVideoCiuPlaySurfaceRedrawBuffer::CTestDevVideoCiuPlaySurfaceRedrawBuffer(const TDesC& aTestName)
sl@0
  2790
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2791
	{
sl@0
  2792
	}
sl@0
  2793
sl@0
  2794
CTestDevVideoCiuPlaySurfaceRedrawBuffer* CTestDevVideoCiuPlaySurfaceRedrawBuffer::NewL(const TDesC& aTestName)
sl@0
  2795
	{
sl@0
  2796
	CTestDevVideoCiuPlaySurfaceRedrawBuffer* self = new(ELeave) CTestDevVideoCiuPlaySurfaceRedrawBuffer(aTestName);
sl@0
  2797
	return self;
sl@0
  2798
	}
sl@0
  2799
sl@0
  2800
TVerdict CTestDevVideoCiuPlaySurfaceRedrawBuffer::DoTestStepPreambleL()
sl@0
  2801
	{
sl@0
  2802
	// Call the base class first
sl@0
  2803
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2804
	if (ret == EPass)
sl@0
  2805
		{
sl@0
  2806
		// select decoder
sl@0
  2807
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2808
		
sl@0
  2809
		if (err != KErrNone)
sl@0
  2810
			{
sl@0
  2811
			ret = EInconclusive;
sl@0
  2812
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2813
			}
sl@0
  2814
		}
sl@0
  2815
	return ret;
sl@0
  2816
	}
sl@0
  2817
sl@0
  2818
TVerdict CTestDevVideoCiuPlaySurfaceRedrawBuffer::DoTestL()
sl@0
  2819
	{
sl@0
  2820
	TVerdict ret = EFail;
sl@0
  2821
	
sl@0
  2822
	INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Start"));
sl@0
  2823
	
sl@0
  2824
	// Fetch the CI
sl@0
  2825
	MMmfVideoSurfaceHandleControl* interface = NULL;
sl@0
  2826
	
sl@0
  2827
	interface = static_cast<MMmfVideoSurfaceHandleControl*>
sl@0
  2828
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2829
											KUidMMFVideoSurfaceHandleControl));
sl@0
  2830
	if (!interface)
sl@0
  2831
		{
sl@0
  2832
		ERR_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - No interface"));
sl@0
  2833
		ret = EFail;
sl@0
  2834
		}
sl@0
  2835
	else
sl@0
  2836
		{
sl@0
  2837
		INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Interface Instantiated"));
sl@0
  2838
		HBufC8* redrawBuffer = HBufC8::NewLC(10);
sl@0
  2839
		_LIT8(KTestString, "TestString");
sl@0
  2840
		*redrawBuffer = KTestString();
sl@0
  2841
		TPtrC8 bufPtr(*redrawBuffer);
sl@0
  2842
		
sl@0
  2843
		INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Setting redraw buffer"));
sl@0
  2844
		interface->MmvshcRedrawBufferToSurface(bufPtr);
sl@0
  2845
		CleanupStack::PopAndDestroy(redrawBuffer);
sl@0
  2846
		redrawBuffer = NULL;
sl@0
  2847
sl@0
  2848
		// Fetch test interface
sl@0
  2849
		MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl* testInterface = NULL;
sl@0
  2850
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2851
												KUidDevVideoCiuTestInterfaceVideoPlaySurfaceHandleControl));
sl@0
  2852
		if (!testInterface)
sl@0
  2853
			{
sl@0
  2854
			ERR_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Failed to create test interface"));
sl@0
  2855
			ret = EFail;
sl@0
  2856
			}
sl@0
  2857
		else
sl@0
  2858
			{
sl@0
  2859
			TDesC8& retrievedBuffer = testInterface->MdvshcGetRedrawBuffer();
sl@0
  2860
			
sl@0
  2861
			if (retrievedBuffer.Compare(KTestString()) == 0)
sl@0
  2862
				{
sl@0
  2863
				INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Retrieved correct string"));
sl@0
  2864
				ret = EPass;
sl@0
  2865
				}
sl@0
  2866
			else
sl@0
  2867
				{
sl@0
  2868
				INFO_PRINTF1(_L("DevVideo CIU Surface Redraw Buffer - Retrieved incorrect string"));
sl@0
  2869
				ret = EFail;					
sl@0
  2870
				}
sl@0
  2871
			}
sl@0
  2872
		}
sl@0
  2873
	return ret;
sl@0
  2874
	}
sl@0
  2875
	
sl@0
  2876
#endif // SYMBIAN_BUILD_GCE
sl@0
  2877
sl@0
  2878
//
sl@0
  2879
//	Video Play Rate Control Tests
sl@0
  2880
//
sl@0
  2881
sl@0
  2882
CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities(const TDesC& aTestName)
sl@0
  2883
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2884
	{
sl@0
  2885
	}
sl@0
  2886
sl@0
  2887
CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities* CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::NewL(const TDesC& aTestName)
sl@0
  2888
	{
sl@0
  2889
	CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities(aTestName);
sl@0
  2890
	return self;
sl@0
  2891
	}
sl@0
  2892
sl@0
  2893
TVerdict CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::DoTestStepPreambleL()
sl@0
  2894
	{
sl@0
  2895
	// Call the base class first
sl@0
  2896
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2897
	if (ret == EPass)
sl@0
  2898
		{
sl@0
  2899
		// select decoder
sl@0
  2900
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2901
		
sl@0
  2902
		if (err != KErrNone)
sl@0
  2903
			{
sl@0
  2904
			ret = EInconclusive;
sl@0
  2905
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  2906
			}
sl@0
  2907
		}
sl@0
  2908
	return ret;
sl@0
  2909
	}
sl@0
  2910
sl@0
  2911
TVerdict CTestDevVideoCiuPlayGetAndSetPlayRateCapabilities::DoTestL()
sl@0
  2912
	{
sl@0
  2913
	TVerdict ret = EFail;
sl@0
  2914
	
sl@0
  2915
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation"));
sl@0
  2916
	
sl@0
  2917
	// Fetch the CI
sl@0
  2918
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  2919
	
sl@0
  2920
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  2921
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2922
											KUidMmfVideoPlayRateControl));
sl@0
  2923
	if (!interface)
sl@0
  2924
		{
sl@0
  2925
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  2926
		ret = EFail;
sl@0
  2927
		}
sl@0
  2928
	else
sl@0
  2929
		{
sl@0
  2930
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  2931
		
sl@0
  2932
		TVideoPlayRateCapabilities videoPlayRateCapabilities;
sl@0
  2933
		TRAPD(err, interface->MmvprcGetPlayRateCapabilitiesL(videoPlayRateCapabilities));
sl@0
  2934
		
sl@0
  2935
		if (err == KErrNone)
sl@0
  2936
			{
sl@0
  2937
			// Fetch test interface
sl@0
  2938
			MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL;
sl@0
  2939
			testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlayRateControl*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  2940
												KUidDevVideoCiuTestInterfaceVideoPlayRateControl));
sl@0
  2941
			if (!testInterface)
sl@0
  2942
				{
sl@0
  2943
				ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  2944
				ret = EFail;
sl@0
  2945
				}
sl@0
  2946
			else
sl@0
  2947
				{
sl@0
  2948
				TVideoPlayRateCapabilities playRateCapResult = testInterface->MdvproGetPlayRateCapabilities();
sl@0
  2949
				
sl@0
  2950
				if (playRateCapResult.iPlayBackward == videoPlayRateCapabilities.iPlayBackward &&
sl@0
  2951
						playRateCapResult.iPlayForward == videoPlayRateCapabilities.iPlayForward &&
sl@0
  2952
						playRateCapResult.iStepBackward == videoPlayRateCapabilities.iStepBackward &&
sl@0
  2953
						playRateCapResult.iStepForward == videoPlayRateCapabilities.iStepForward)
sl@0
  2954
					{
sl@0
  2955
					ret = EPass;
sl@0
  2956
					INFO_PRINTF1(_L("Get Play Rate Capabilities method call performed as expected"));
sl@0
  2957
					}
sl@0
  2958
				else
sl@0
  2959
					{
sl@0
  2960
					ret = EFail;					
sl@0
  2961
					ERR_PRINTF1(_L("Get Play Rate Capabilities method call failed"));
sl@0
  2962
					INFO_PRINTF5(_L("Expected PlayBackward: %d, PlayForward: %d, StepBackward: %d, StepForward: %d"),
sl@0
  2963
							playRateCapResult.iPlayBackward, playRateCapResult.iPlayForward,
sl@0
  2964
							playRateCapResult.iStepBackward, playRateCapResult.iStepForward);
sl@0
  2965
					}
sl@0
  2966
				}	
sl@0
  2967
			}
sl@0
  2968
		else 
sl@0
  2969
			{
sl@0
  2970
			ERR_PRINTF2(_L("Failed to get the play rate capabilities: %d."),err);
sl@0
  2971
			}
sl@0
  2972
		
sl@0
  2973
		}
sl@0
  2974
	return ret;
sl@0
  2975
	}
sl@0
  2976
sl@0
  2977
//-----------------------------------------------------------//
sl@0
  2978
CTestDevVideoCiuPlaySetAndGetPlayRate::CTestDevVideoCiuPlaySetAndGetPlayRate(const TDesC& aTestName)
sl@0
  2979
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  2980
	{
sl@0
  2981
	}
sl@0
  2982
sl@0
  2983
CTestDevVideoCiuPlaySetAndGetPlayRate* CTestDevVideoCiuPlaySetAndGetPlayRate::NewL(const TDesC& aTestName)
sl@0
  2984
	{
sl@0
  2985
	CTestDevVideoCiuPlaySetAndGetPlayRate* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPlayRate(aTestName);
sl@0
  2986
	return self;
sl@0
  2987
	}
sl@0
  2988
sl@0
  2989
TVerdict CTestDevVideoCiuPlaySetAndGetPlayRate::DoTestStepPreambleL()
sl@0
  2990
	{
sl@0
  2991
	// Call the base class first
sl@0
  2992
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  2993
	if (ret == EPass)
sl@0
  2994
		{
sl@0
  2995
		// select decoder
sl@0
  2996
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  2997
		
sl@0
  2998
		if (err != KErrNone)
sl@0
  2999
			{
sl@0
  3000
			ret = EInconclusive;
sl@0
  3001
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3002
			}
sl@0
  3003
		}
sl@0
  3004
	return ret;
sl@0
  3005
	}
sl@0
  3006
sl@0
  3007
TVerdict CTestDevVideoCiuPlaySetAndGetPlayRate::DoTestL()
sl@0
  3008
	{
sl@0
  3009
	TVerdict ret = EFail;
sl@0
  3010
	
sl@0
  3011
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation"));
sl@0
  3012
	
sl@0
  3013
	// Fetch the CI
sl@0
  3014
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  3015
	
sl@0
  3016
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  3017
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3018
											KUidMmfVideoPlayRateControl));
sl@0
  3019
	if (!interface)
sl@0
  3020
		{
sl@0
  3021
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  3022
		ret = EFail;
sl@0
  3023
		}
sl@0
  3024
	else
sl@0
  3025
		{
sl@0
  3026
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  3027
		
sl@0
  3028
		TInt playRate = 99; // The hardcoded value is for test purpose only
sl@0
  3029
		TRAPD(err, interface->MmvprcSetPlayRateL(playRate));
sl@0
  3030
		
sl@0
  3031
		if (err == KErrNone)
sl@0
  3032
			{
sl@0
  3033
			TInt playRateResult = 0;
sl@0
  3034
			TRAP(err, playRateResult = interface->MmvprcPlayRateL());
sl@0
  3035
			
sl@0
  3036
			if (err == KErrNone)
sl@0
  3037
				{
sl@0
  3038
				if (playRate == playRateResult)
sl@0
  3039
					{
sl@0
  3040
					ret = EPass;
sl@0
  3041
					INFO_PRINTF1(_L("Set and get Play Rate method calls performed as expected"));
sl@0
  3042
					}
sl@0
  3043
				else
sl@0
  3044
					{
sl@0
  3045
					ret = EFail;					
sl@0
  3046
					ERR_PRINTF3(_L("Set and get Play Rate methods call failed. Expected playRate: %d, return is: %d"), playRate, playRateResult);
sl@0
  3047
					}
sl@0
  3048
				}
sl@0
  3049
			else
sl@0
  3050
				{
sl@0
  3051
				ERR_PRINTF2(_L("Failed to get the play rate: %d."), err);
sl@0
  3052
				}
sl@0
  3053
			}
sl@0
  3054
		else
sl@0
  3055
			{
sl@0
  3056
			ERR_PRINTF2(_L("Failed to set the play rate: %d."), err);
sl@0
  3057
			}
sl@0
  3058
		}
sl@0
  3059
	return ret;
sl@0
  3060
	}
sl@0
  3061
sl@0
  3062
//-----------------------------------------------------------//
sl@0
  3063
CTestDevVideoCiuPlayGetAndSetStepFrame::CTestDevVideoCiuPlayGetAndSetStepFrame(const TDesC& aTestName)
sl@0
  3064
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  3065
	{
sl@0
  3066
	}
sl@0
  3067
sl@0
  3068
CTestDevVideoCiuPlayGetAndSetStepFrame* CTestDevVideoCiuPlayGetAndSetStepFrame::NewL(const TDesC& aTestName)
sl@0
  3069
	{
sl@0
  3070
	CTestDevVideoCiuPlayGetAndSetStepFrame* self = new(ELeave) CTestDevVideoCiuPlayGetAndSetStepFrame(aTestName);
sl@0
  3071
	return self;
sl@0
  3072
	}
sl@0
  3073
sl@0
  3074
TVerdict CTestDevVideoCiuPlayGetAndSetStepFrame::DoTestStepPreambleL()
sl@0
  3075
	{
sl@0
  3076
	// Call the base class first
sl@0
  3077
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  3078
	if (ret == EPass)
sl@0
  3079
		{
sl@0
  3080
		// select decoder
sl@0
  3081
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  3082
		
sl@0
  3083
		if (err != KErrNone)
sl@0
  3084
			{
sl@0
  3085
			ret = EInconclusive;
sl@0
  3086
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3087
			}
sl@0
  3088
		}
sl@0
  3089
	return ret;
sl@0
  3090
	}
sl@0
  3091
sl@0
  3092
TVerdict CTestDevVideoCiuPlayGetAndSetStepFrame::DoTestL()
sl@0
  3093
	{
sl@0
  3094
	TVerdict ret = EFail;
sl@0
  3095
	
sl@0
  3096
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation"));
sl@0
  3097
	
sl@0
  3098
	// Fetch the CI
sl@0
  3099
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  3100
	
sl@0
  3101
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  3102
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3103
											KUidMmfVideoPlayRateControl));
sl@0
  3104
	if (!interface)
sl@0
  3105
		{
sl@0
  3106
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  3107
		ret = EFail;
sl@0
  3108
		}
sl@0
  3109
	else
sl@0
  3110
		{
sl@0
  3111
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  3112
		
sl@0
  3113
		TInt stepFrame = 99; // The hardcoded value is for test purpose only
sl@0
  3114
		TRAPD(err, interface->MmvprcStepFrameL(stepFrame));
sl@0
  3115
		
sl@0
  3116
		if (err == KErrNone)
sl@0
  3117
			{
sl@0
  3118
			// Fetch test interface
sl@0
  3119
			MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL;
sl@0
  3120
			testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlayRateControl*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3121
												KUidDevVideoCiuTestInterfaceVideoPlayRateControl));
sl@0
  3122
			if (!testInterface)
sl@0
  3123
				{
sl@0
  3124
				ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  3125
				ret = EFail;
sl@0
  3126
				}
sl@0
  3127
			else
sl@0
  3128
				{
sl@0
  3129
				if (stepFrame == testInterface->MdvproStepFrame())
sl@0
  3130
					{
sl@0
  3131
					ret = EPass;
sl@0
  3132
					INFO_PRINTF1(_L("Step frame method call performed as expected"));
sl@0
  3133
					}
sl@0
  3134
				else
sl@0
  3135
					{
sl@0
  3136
					ret = EFail;					
sl@0
  3137
					ERR_PRINTF2(_L("Step frame method call failed. Expected stepFrame: %d."), stepFrame);
sl@0
  3138
					}
sl@0
  3139
				}	
sl@0
  3140
			}
sl@0
  3141
		else
sl@0
  3142
			{
sl@0
  3143
			ERR_PRINTF2(_L("Failed to set the step frame: %d."), err);
sl@0
  3144
			}		
sl@0
  3145
		}
sl@0
  3146
	return ret;
sl@0
  3147
	}
sl@0
  3148
	
sl@0
  3149
//------------------------------------------------------------------
sl@0
  3150
sl@0
  3151
CTestDevVideoCiuPlaySetAndGetPlayRateObserver::CTestDevVideoCiuPlaySetAndGetPlayRateObserver(const TDesC& aTestName)
sl@0
  3152
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  3153
	{
sl@0
  3154
	}
sl@0
  3155
sl@0
  3156
CTestDevVideoCiuPlaySetAndGetPlayRateObserver* CTestDevVideoCiuPlaySetAndGetPlayRateObserver::NewL(const TDesC& aTestName)
sl@0
  3157
	{
sl@0
  3158
	CTestDevVideoCiuPlaySetAndGetPlayRateObserver* self = new(ELeave) CTestDevVideoCiuPlaySetAndGetPlayRateObserver(aTestName);
sl@0
  3159
	return self;
sl@0
  3160
	}
sl@0
  3161
sl@0
  3162
TVerdict CTestDevVideoCiuPlaySetAndGetPlayRateObserver::DoTestStepPreambleL()
sl@0
  3163
	{
sl@0
  3164
	// Call the base class first
sl@0
  3165
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  3166
	if (ret == EPass)
sl@0
  3167
		{
sl@0
  3168
		// select decoder
sl@0
  3169
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  3170
		
sl@0
  3171
		if (err != KErrNone)
sl@0
  3172
			{
sl@0
  3173
			ret = EInconclusive;
sl@0
  3174
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3175
			}
sl@0
  3176
		}
sl@0
  3177
	return ret;
sl@0
  3178
	}
sl@0
  3179
sl@0
  3180
TVerdict CTestDevVideoCiuPlaySetAndGetPlayRateObserver::DoTestL()
sl@0
  3181
	{
sl@0
  3182
	TVerdict ret = EFail;
sl@0
  3183
	
sl@0
  3184
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Initialisation"));
sl@0
  3185
	
sl@0
  3186
	// Fetch the CI
sl@0
  3187
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  3188
		
sl@0
  3189
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  3190
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3191
											KUidMmfVideoPlayRateControl));
sl@0
  3192
	if (!interface)
sl@0
  3193
		{
sl@0
  3194
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  3195
		ret = EFail;
sl@0
  3196
		}
sl@0
  3197
	else
sl@0
  3198
		{
sl@0
  3199
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  3200
	
sl@0
  3201
		// Set the observer
sl@0
  3202
		MMmfVideoPlayRateObserver* obs = this;
sl@0
  3203
		interface->MmvprcSetObserver(*obs);
sl@0
  3204
		INFO_PRINTF1(_L("MmvprcSetObserver called"));
sl@0
  3205
		
sl@0
  3206
		// Verify that the observer was set
sl@0
  3207
		MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL;
sl@0
  3208
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlayRateControl*>(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3209
											KUidDevVideoCiuTestInterfaceVideoPlayRateControl));
sl@0
  3210
		if (!testInterface)
sl@0
  3211
			{
sl@0
  3212
			ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  3213
			ret = EFail;
sl@0
  3214
			}
sl@0
  3215
		else
sl@0
  3216
			{
sl@0
  3217
			if (obs != testInterface->MdvproObserver())
sl@0
  3218
				{
sl@0
  3219
				ERR_PRINTF1(_L("Failed to set the observer."));
sl@0
  3220
				ret = EFail;
sl@0
  3221
				}
sl@0
  3222
			else
sl@0
  3223
				{			
sl@0
  3224
				INFO_PRINTF1(_L("SetObserver successfully called"));
sl@0
  3225
				ret = EPass;
sl@0
  3226
				}
sl@0
  3227
			}		
sl@0
  3228
		}
sl@0
  3229
	return ret;
sl@0
  3230
	}
sl@0
  3231
sl@0
  3232
//from MMmfVideoPlayRateObserver
sl@0
  3233
void CTestDevVideoCiuPlaySetAndGetPlayRateObserver::MmvproStepFrameComplete(TTimeIntervalMicroSeconds /*aTimestamp*/)
sl@0
  3234
	{}
sl@0
  3235
		
sl@0
  3236
void CTestDevVideoCiuPlaySetAndGetPlayRateObserver::MmvproKeyFrameModeRequest()
sl@0
  3237
	{}
sl@0
  3238
	
sl@0
  3239
//------------------------------------------------------------------
sl@0
  3240
sl@0
  3241
CTestDevVideoCiuPlayStepFrameComplete::CTestDevVideoCiuPlayStepFrameComplete(const TDesC& aTestName)
sl@0
  3242
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
  3243
	{
sl@0
  3244
	}
sl@0
  3245
sl@0
  3246
CTestDevVideoCiuPlayStepFrameComplete* CTestDevVideoCiuPlayStepFrameComplete::NewL(const TDesC& aTestName)
sl@0
  3247
	{
sl@0
  3248
	CTestDevVideoCiuPlayStepFrameComplete* self = new(ELeave) CTestDevVideoCiuPlayStepFrameComplete(aTestName);
sl@0
  3249
	return self;
sl@0
  3250
	}
sl@0
  3251
sl@0
  3252
TVerdict CTestDevVideoCiuPlayStepFrameComplete::DoTestStepPreambleL()
sl@0
  3253
	{
sl@0
  3254
	// Call the base class first
sl@0
  3255
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  3256
	if (ret == EPass)
sl@0
  3257
		{
sl@0
  3258
		// select decoder
sl@0
  3259
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  3260
		
sl@0
  3261
		if (err != KErrNone)
sl@0
  3262
			{
sl@0
  3263
			ret = EInconclusive;
sl@0
  3264
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3265
			}
sl@0
  3266
		}
sl@0
  3267
	return ret;
sl@0
  3268
	}
sl@0
  3269
sl@0
  3270
TVerdict CTestDevVideoCiuPlayStepFrameComplete::DoTestL()
sl@0
  3271
	{
sl@0
  3272
	TVerdict ret = EFail;
sl@0
  3273
	
sl@0
  3274
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation"));
sl@0
  3275
	
sl@0
  3276
	// Fetch the CI
sl@0
  3277
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  3278
	
sl@0
  3279
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  3280
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3281
									KUidMmfVideoPlayRateControl));
sl@0
  3282
	if (!interface)
sl@0
  3283
		{
sl@0
  3284
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  3285
		ret = EFail;
sl@0
  3286
		}
sl@0
  3287
	else
sl@0
  3288
		{
sl@0
  3289
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  3290
	
sl@0
  3291
		// Fetch test interface
sl@0
  3292
		MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL;
sl@0
  3293
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlayRateControl*>
sl@0
  3294
											(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3295
											KUidDevVideoCiuTestInterfaceVideoPlayRateControl));
sl@0
  3296
		if (!testInterface)
sl@0
  3297
			{
sl@0
  3298
			ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  3299
			ret = EFail;
sl@0
  3300
			}
sl@0
  3301
		else
sl@0
  3302
			{
sl@0
  3303
			// Set the observer to callback!
sl@0
  3304
			MMmfVideoPlayRateObserver* obs = this;
sl@0
  3305
			interface->MmvprcSetObserver(*obs);
sl@0
  3306
		
sl@0
  3307
			INFO_PRINTF1(_L("Requesting the step frame complete Callback..."));
sl@0
  3308
			testInterface->MdvproStepFrameCompleteCallback();
sl@0
  3309
sl@0
  3310
			if ((iError != KErrNone) && (!iCallbackReceived))
sl@0
  3311
				{	
sl@0
  3312
				ERR_PRINTF1(_L("Error receiving the step frame complete Callback."));
sl@0
  3313
				ret = EFail;
sl@0
  3314
				}
sl@0
  3315
			else
sl@0
  3316
				{
sl@0
  3317
				INFO_PRINTF1(_L("Successfully retrieved the step frame complete Callback"));
sl@0
  3318
				ret = EPass;
sl@0
  3319
				}
sl@0
  3320
			}
sl@0
  3321
		}
sl@0
  3322
	return ret;
sl@0
  3323
	}
sl@0
  3324
sl@0
  3325
//from MMmfVideoPlayRateObserver
sl@0
  3326
void CTestDevVideoCiuPlayStepFrameComplete::MmvproStepFrameComplete(TTimeIntervalMicroSeconds aTimestamp)
sl@0
  3327
	{
sl@0
  3328
	INFO_PRINTF1(_L("Step frame complete callback received. "));
sl@0
  3329
	// Test h/w sets the time stamp to 10000
sl@0
  3330
	if (aTimestamp == 10000)
sl@0
  3331
		{
sl@0
  3332
		iCallbackReceived = ETrue;
sl@0
  3333
		iError = KErrNone;
sl@0
  3334
		}
sl@0
  3335
	else
sl@0
  3336
		{
sl@0
  3337
		iCallbackReceived = ETrue;
sl@0
  3338
		iError = KErrGeneral;
sl@0
  3339
		}
sl@0
  3340
	}
sl@0
  3341
		
sl@0
  3342
void CTestDevVideoCiuPlayStepFrameComplete::MmvproKeyFrameModeRequest()
sl@0
  3343
	{
sl@0
  3344
	iError = KErrNotSupported;
sl@0
  3345
	}
sl@0
  3346
sl@0
  3347
//------------------------------------------------------------------
sl@0
  3348
sl@0
  3349
CTestDevVideoCiuPlayKeyFrameModeRequest::CTestDevVideoCiuPlayKeyFrameModeRequest(const TDesC& aTestName)
sl@0
  3350
	:CTestDevVideoCiuPlayStep(aTestName), iCallbackReceived(EFalse)
sl@0
  3351
	{
sl@0
  3352
	}
sl@0
  3353
sl@0
  3354
CTestDevVideoCiuPlayKeyFrameModeRequest* CTestDevVideoCiuPlayKeyFrameModeRequest::NewL(const TDesC& aTestName)
sl@0
  3355
	{
sl@0
  3356
	CTestDevVideoCiuPlayKeyFrameModeRequest* self = new(ELeave) CTestDevVideoCiuPlayKeyFrameModeRequest(aTestName);
sl@0
  3357
	return self;
sl@0
  3358
	}
sl@0
  3359
sl@0
  3360
TVerdict CTestDevVideoCiuPlayKeyFrameModeRequest::DoTestStepPreambleL()
sl@0
  3361
	{
sl@0
  3362
	// Call the base class first
sl@0
  3363
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  3364
	if (ret == EPass)
sl@0
  3365
		{
sl@0
  3366
		// select decoder
sl@0
  3367
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  3368
		
sl@0
  3369
		if (err != KErrNone)
sl@0
  3370
			{
sl@0
  3371
			ret = EInconclusive;
sl@0
  3372
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3373
			}
sl@0
  3374
		}
sl@0
  3375
	return ret;
sl@0
  3376
	}
sl@0
  3377
sl@0
  3378
TVerdict CTestDevVideoCiuPlayKeyFrameModeRequest::DoTestL()
sl@0
  3379
	{
sl@0
  3380
	TVerdict ret = EFail;
sl@0
  3381
	
sl@0
  3382
	INFO_PRINTF1(_L("DevVideo CIU Play Rate Control Interface Initialisation"));
sl@0
  3383
	
sl@0
  3384
	// Fetch the CI
sl@0
  3385
	MMmfVideoPlayRateControl* interface = NULL;
sl@0
  3386
	
sl@0
  3387
	interface = static_cast<MMmfVideoPlayRateControl*>
sl@0
  3388
									(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3389
									KUidMmfVideoPlayRateControl));
sl@0
  3390
	if (!interface)
sl@0
  3391
		{
sl@0
  3392
		ERR_PRINTF1(_L("Error - no interface retrieved for Play Rate"));
sl@0
  3393
		ret = EFail;
sl@0
  3394
		}
sl@0
  3395
	else
sl@0
  3396
		{
sl@0
  3397
		INFO_PRINTF1(_L("DevVideo CIU Play Rate Interface Instantiated"));
sl@0
  3398
	
sl@0
  3399
		// Fetch test interface
sl@0
  3400
		MDevVideoCiuTestInterfaceVideoPlayRateControl* testInterface = NULL;
sl@0
  3401
		testInterface = static_cast<MDevVideoCiuTestInterfaceVideoPlayRateControl*>
sl@0
  3402
											(iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3403
											KUidDevVideoCiuTestInterfaceVideoPlayRateControl));
sl@0
  3404
		if (!testInterface)
sl@0
  3405
			{
sl@0
  3406
			ERR_PRINTF1(_L("Failed to create the test interface for Play rate control."));
sl@0
  3407
			ret = EFail;
sl@0
  3408
			}
sl@0
  3409
		else
sl@0
  3410
			{
sl@0
  3411
			// Set the observer to callback!
sl@0
  3412
			MMmfVideoPlayRateObserver* obs = this;
sl@0
  3413
			interface->MmvprcSetObserver(*obs);
sl@0
  3414
		
sl@0
  3415
			INFO_PRINTF1(_L("Requesting the key frame mode request Callback..."));
sl@0
  3416
			testInterface->MdvproKeyFrameModeRequestCallback();
sl@0
  3417
sl@0
  3418
			if ((iError != KErrNone) && (!iCallbackReceived))
sl@0
  3419
				{	
sl@0
  3420
				ERR_PRINTF1(_L("Error receiving the key frame mode request Callback."));
sl@0
  3421
				ret = EFail;
sl@0
  3422
				}
sl@0
  3423
			else
sl@0
  3424
				{
sl@0
  3425
				INFO_PRINTF1(_L("Successfully retrieved the key frame mode request Callback"));
sl@0
  3426
				ret = EPass;
sl@0
  3427
				}
sl@0
  3428
			}
sl@0
  3429
		}
sl@0
  3430
	return ret;
sl@0
  3431
	}
sl@0
  3432
sl@0
  3433
//from MMmfVideoPlayRateObserver
sl@0
  3434
void CTestDevVideoCiuPlayKeyFrameModeRequest::MmvproStepFrameComplete(TTimeIntervalMicroSeconds /*aTimestamp*/)
sl@0
  3435
	{
sl@0
  3436
	iError = KErrNotSupported;
sl@0
  3437
	}
sl@0
  3438
		
sl@0
  3439
void CTestDevVideoCiuPlayKeyFrameModeRequest::MmvproKeyFrameModeRequest()
sl@0
  3440
	{
sl@0
  3441
	INFO_PRINTF1(_L("Key frame mode request callback received."));
sl@0
  3442
	iCallbackReceived = ETrue;
sl@0
  3443
	iError = KErrNone;
sl@0
  3444
	}
sl@0
  3445
sl@0
  3446
sl@0
  3447
//------------------------------------------------------------------
sl@0
  3448
sl@0
  3449
CTestDevVideoCiuHwDeviceTunnel* CTestDevVideoCiuHwDeviceTunnel::NewL(const TDesC& aTestName)
sl@0
  3450
	{
sl@0
  3451
	CTestDevVideoCiuHwDeviceTunnel* self = new(ELeave) CTestDevVideoCiuHwDeviceTunnel(aTestName);
sl@0
  3452
	return self;
sl@0
  3453
	}
sl@0
  3454
sl@0
  3455
CTestDevVideoCiuHwDeviceTunnel::CTestDevVideoCiuHwDeviceTunnel(const TDesC& aTestName)
sl@0
  3456
	:CTestDevVideoCiuPlayStep(aTestName)
sl@0
  3457
	{
sl@0
  3458
	}
sl@0
  3459
sl@0
  3460
TVerdict CTestDevVideoCiuHwDeviceTunnel::DoTestStepPreambleL()
sl@0
  3461
	{
sl@0
  3462
	// Call the base class first
sl@0
  3463
	TVerdict ret = CTestDevVideoCiuPlayStep::DoTestStepPreambleL();
sl@0
  3464
	if (ret == EPass)
sl@0
  3465
		{
sl@0
  3466
		// select decoder
sl@0
  3467
		TRAPD(err, iHwDeviceId = iDevVideoPlay->SelectDecoderL(KUidDevVideoCiuTestDecodeHwDevice));
sl@0
  3468
sl@0
  3469
		if (err != KErrNone)
sl@0
  3470
			{
sl@0
  3471
			ret = EInconclusive;
sl@0
  3472
			ERR_PRINTF1(_L("DevVideo Play Failed to select the decoder."));
sl@0
  3473
			}
sl@0
  3474
		}
sl@0
  3475
	return ret;
sl@0
  3476
	}
sl@0
  3477
sl@0
  3478
TVerdict CTestDevVideoCiuHwDeviceTunnel::DoTestL()
sl@0
  3479
	{
sl@0
  3480
	INFO_PRINTF1(_L("DevVideo CIU HwDeviceTunnel Initialisation"));
sl@0
  3481
sl@0
  3482
	// Fetch the CI
sl@0
  3483
	MMmfVideoHwDeviceTunnel* interface = static_cast<MMmfVideoHwDeviceTunnel*>
sl@0
  3484
	  (iDevVideoPlay->CustomInterface(iHwDeviceId, KUidMmfVideoHwDeviceTunnel));
sl@0
  3485
sl@0
  3486
	if (!interface)
sl@0
  3487
		{
sl@0
  3488
		ERR_PRINTF1(_L("Failed to create interface for HwDevice Tunnel"));
sl@0
  3489
		return EFail;
sl@0
  3490
		}
sl@0
  3491
sl@0
  3492
	INFO_PRINTF1(_L("Created interface for HwDevice Tunnel"));
sl@0
  3493
sl@0
  3494
	// Fetch test interface
sl@0
  3495
	MDevVideoCiuTestInterfaceHwDeviceTunnel* testInterface =
sl@0
  3496
	  static_cast<MDevVideoCiuTestInterfaceHwDeviceTunnel*>
sl@0
  3497
	    (iDevVideoPlay->CustomInterface(iHwDeviceId,
sl@0
  3498
	                                    KUidDevVideoCiuTestInterfaceHwDeviceTunnel));
sl@0
  3499
	if (!testInterface)
sl@0
  3500
		{
sl@0
  3501
		ERR_PRINTF1(_L("Failed to create test interface for HwDevice Tunnel"));
sl@0
  3502
		return EFail;
sl@0
  3503
		}
sl@0
  3504
sl@0
  3505
	INFO_PRINTF1(_L("Created test interface for HwDevice Tunnel"));
sl@0
  3506
sl@0
  3507
	CMMFVideoHwDevice* hwDevice = interface->MmvhdtHwDevice();
sl@0
  3508
	if (hwDevice != reinterpret_cast<CMMFVideoHwDevice*>(0x11111111))
sl@0
  3509
		{
sl@0
  3510
		INFO_PRINTF1(_L("MmvhdtHwDevice() failed"));
sl@0
  3511
		return EFail;
sl@0
  3512
		}
sl@0
  3513
sl@0
  3514
	INFO_PRINTF1(_L("MmvhdtHwDevice() succeeded"));
sl@0
  3515
sl@0
  3516
	interface->MmvhdtSetupTunnelL(reinterpret_cast<CMMFVideoHwDevice*>(0x22222222));
sl@0
  3517
sl@0
  3518
	hwDevice = testInterface->MhdtHwDevice();
sl@0
  3519
	if (hwDevice != reinterpret_cast<CMMFVideoHwDevice*>(0x22222222))
sl@0
  3520
		{
sl@0
  3521
		INFO_PRINTF1(_L("MmvhdtSetupTunnelL() failed"));
sl@0
  3522
		return EFail;
sl@0
  3523
		}
sl@0
  3524
sl@0
  3525
	INFO_PRINTF1(_L("MmvhdtSetupTunnelL() succeeded"));
sl@0
  3526
sl@0
  3527
	return EPass;
sl@0
  3528
	}