mmlibs/mmfw/tsrc/mmfintegrationtest/vclnt/src/TestPlayer.cpp
author hgs
Wed, 13 Oct 2010 12:45:32 +0100
changeset 2 5c1df44f2eed
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk42_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
#include "TestPlayer.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include <e32math.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
CTestVclntVideoFile::CTestVclntVideoFile(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
	:iPlay (aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
	// expand heap, so we can load 80k video
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
	iHeapSize = 150000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
CTestVclntVideoFile* CTestVclntVideoFile::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
	CTestVclntVideoFile* self = new (ELeave) CTestVclntVideoFile(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
	return self;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
CTestVclntVideoFile* CTestVclntVideoFile::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
	CTestVclntVideoFile* self = CTestVclntVideoFile::NewLC(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
void CTestVclntVideoFile::MvpuoOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
	INFO_PRINTF1(_L("Open Complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
void CTestVclntVideoFile::MvpuoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
	INFO_PRINTF1(_L("Open Complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
void CTestVclntVideoFile::MvpuoFrameReady(CFbsBitmap& /*aFrame*/, TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
	INFO_PRINTF1(_L("Frame Ready callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
void CTestVclntVideoFile::MvpuoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
	INFO_PRINTF1(_L("Play Complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
void CTestVclntVideoFile::MvpuoEvent(const TMMFEvent& /*aEvent*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
 * Load and initialise an audio file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
TVerdict CTestVclntVideoFile::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
	INFO_PRINTF1(_L("Test : Video Player - File"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
	if(!GetStringFromConfig(iSectName,iKeyName,filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	InitWservL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
	TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
	CVideoPlayerUtility* player = CVideoPlayerUtility::NewL(*this, EMdaPriorityNormal,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
															EMdaPriorityPreferenceTimeAndQuality,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
															iWs, *iScreen, *iWindow, rect, clipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
	CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
	TRAP(iError,player->OpenFileL(filename));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
		// Wait for initialisation callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
		INFO_PRINTF1(_L("CVideoPlayerUtility: Opening file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
#ifndef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
	if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	// Check for errors.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	if (iError == KErrNone && player != NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
		player->Prepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
	// Check for errors.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
	if (iError == KErrNone && player != NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
		ret = DoTestL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
	INFO_PRINTF1(_L("CVideoPlayerUtility: Destroying"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	CleanupStack::PopAndDestroy(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
	if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
		ERR_PRINTF2( _L("CVideoPlayerUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
	return	ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
TVerdict CTestVclntVideoFile::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
// #ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
	if(iPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
		aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
		// Wait for init callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
		if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
// #else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
//	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
// #endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
CTestVclntVideoDes::CTestVclntVideoDes(const TDesC& aTestName,const TDesC& aSectName,const TDesC& aKeyName, const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	:iPlay (aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
	// *** Jim : expand heap, so we can load 80k video
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
	iHeapSize = 150000;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
CTestVclntVideoDes* CTestVclntVideoDes::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
	CTestVclntVideoDes* self = new (ELeave) CTestVclntVideoDes(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
CTestVclntVideoDes* CTestVclntVideoDes::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
	CTestVclntVideoDes* self = CTestVclntVideoDes::NewLC(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
void CTestVclntVideoDes::MvpuoOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
void CTestVclntVideoDes::MvpuoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
void CTestVclntVideoDes::MvpuoFrameReady(CFbsBitmap& /*aFrame*/,TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
	// Will this function require a Active Scheduler Stop?
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
void CTestVclntVideoDes::MvpuoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
void CTestVclntVideoDes::MvpuoEvent(const TMMFEvent& /*aEvent*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
TVerdict  CTestVclntVideoDes::DoTestStepPreambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	TPtrC filename; 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
	if(!GetStringFromConfig(iSectName, iKeyName, filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
	RFs fs;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
	RFile file;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
	TInt size = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
	// connect to file system and open file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
	User::LeaveIfError(fs.Connect());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
	User::LeaveIfError(file.Open(fs,filename,EFileRead));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
	CleanupClosePushL(file);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
	// Set HBuf size
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
	User::LeaveIfError(file.Size(size));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
	INFO_PRINTF2(_L("size of file = %d\n"),size);//Statement Changed under DEF105143
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
	iVideo = HBufC8::NewMaxL(size);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
	// read data into Hbuf
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
	TPtr8 bufferDes(iVideo->Des());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
	User::LeaveIfError(file.Read(bufferDes));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
	CleanupStack::PopAndDestroy(); //file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
	return CTestMmfVclntStep::DoTestStepPreambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
TVerdict CTestVclntVideoDes::DoTestStepPostambleL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
	delete iVideo;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
	iVideo = NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
	return CTestMmfVclntStep::DoTestStepPostambleL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
 * Load and initialise an audio descriptor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
TVerdict CTestVclntVideoDes::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
	INFO_PRINTF1(_L("Test : Video Player - Descriptor"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	InitWservL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
	TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
	CVideoPlayerUtility* player = CVideoPlayerUtility::NewL(*this, EMdaPriorityNormal,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
															EMdaPriorityPreferenceTimeAndQuality,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
															iWs, *iScreen, *iWindow, rect, clipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
	CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
	TRAP(iError, player->OpenDesL(iVideo->Des()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
		INFO_PRINTF1(_L("CVideoPlayerUtility: Opening descriptor"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
		// Wait for init callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
#ifndef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
	if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
	if (iError == KErrNone && player != NULL)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
		player->Prepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
	if ((iError == KErrNone) && (player != NULL))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
		ret = DoTestL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
	INFO_PRINTF1(_L("CVideoPlayerUtility: Destroying"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
	CleanupStack::PopAndDestroy(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
	if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
		ERR_PRINTF2( _L("CVideoPlayerUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
	return	ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
TVerdict CTestVclntVideoDes::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
// #ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
	if(iPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
		iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
		aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing descriptor"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
		// Wait for init callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
		if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
		ret = EPass;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
//#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
//	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
//#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	return ret;		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
 * Constructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
CTestVclntVideoUrl::CTestVclntVideoUrl(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
	:iPlay (aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
	// store the name of this test case
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
	// this is the name that is used by the script file
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
	// Each test step initialises it's own name
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
	iTestStepName = aTestName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
	iSectName = aSectName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
	iKeyName = aKeyName;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
CTestVclntVideoUrl* CTestVclntVideoUrl::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
	CTestVclntVideoUrl* self = CTestVclntVideoUrl::NewLC(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
CTestVclntVideoUrl* CTestVclntVideoUrl::NewLC(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TBool aPlay)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
	CTestVclntVideoUrl* self = new (ELeave) CTestVclntVideoUrl(aTestName,aSectName,aKeyName,aPlay);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
	CleanupStack::PushL(self);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
void CTestVclntVideoUrl::MvpuoOpenComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
	INFO_PRINTF1(_L("Open complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
void CTestVclntVideoUrl::MvpuoPrepareComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
	INFO_PRINTF1(_L("Open complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
void CTestVclntVideoUrl::MvpuoFrameReady(CFbsBitmap& /*aFrame*/, TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
	// ???
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
	INFO_PRINTF1(_L("Frame Ready callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
void CTestVclntVideoUrl::MvpuoPlayComplete(TInt aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
	iError = aError;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
	INFO_PRINTF1(_L("Play complete callback"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
	CActiveScheduler::Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
void CTestVclntVideoUrl::MvpuoEvent(const TMMFEvent& /*aEvent*/)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
 * Open audio from a URL and play.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
TVerdict CTestVclntVideoUrl::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
	INFO_PRINTF1(_L("Test : Video Player - URL"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
	iError = KErrTimedOut;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
	TPtrC urlname;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	if(!GetStringFromConfig(iSectName,iKeyName,urlname))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
	InitWservL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
	TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
	CVideoPlayerUtility* player = CVideoPlayerUtility::NewL(*this, EMdaPriorityNormal,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
															EMdaPriorityPreferenceTimeAndQuality,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
															iWs, *iScreen, *iWindow, rect, clipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
	// wait for init to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
	CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
	player->OpenUrlL(urlname);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
	INFO_PRINTF1(_L("CVideoPlayerUtility: Opening URL"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
#ifndef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
	if(iError == KErrNotSupported)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
		player->Prepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
		ret = DoTestL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
	INFO_PRINTF1(_L("CVideoPlayerUtility: Destroying"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
	CleanupStack::PopAndDestroy(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
	if(iError != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
		ERR_PRINTF2( _L("CVideoPlayerUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
	return	ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
TVerdict CTestVclntVideoUrl::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
//#ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
	iError = KErrTimedOut;	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
	aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
	INFO_PRINTF1(_L("CVideoPlayerUtility: Playing URL"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
	// Wait for play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
//#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
//	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
//#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
CTestVclntEnqFrameRate::CTestVclntEnqFrameRate(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aFrameRate)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	iFrameRate = aFrameRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
CTestVclntEnqFrameRate* CTestVclntEnqFrameRate::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aFrameRate)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
	CTestVclntEnqFrameRate* self = new (ELeave) CTestVclntEnqFrameRate(aTestName,aSectName,aKeyName,aFrameRate);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
TVerdict CTestVclntEnqFrameRate::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
	INFO_PRINTF1(_L("Test : Video Player - Enquire Frame Rate"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
	TInt32 theFrameRate;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	Math::Int(theFrameRate, aPlayer->VideoFrameRateL());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
	INFO_PRINTF2(_L("(Frame rate : %d)"), theFrameRate); 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
	// if we get here, we pass. The player does not have a SetVideoFrameRate()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
	ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
CTestVclntPosition::CTestVclntPosition(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
	iPosition = aPosition;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
CTestVclntPosition* CTestVclntPosition::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	CTestVclntPosition* self = new (ELeave) CTestVclntPosition(aTestName,aSectName,aKeyName,aPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
TVerdict CTestVclntPosition::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
	// NB test video controller is stubbing certain functions. May have to rewrite this
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
	// for Jet Stream
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
	INFO_PRINTF1(_L("Test : Video Player - Position"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
	TBool validPosition = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
	INFO_PRINTF3(_L("Set Position %d Duration = %d"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
		I64INT(iPosition.Int64()), I64INT(aPlayer->DurationL().Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
	//  Set position: middle of clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
	if (I64INT(iPosition.Int64()) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
		iPosition = I64INT(aPlayer->DurationL().Int64()) / 2;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
	// Set position: end of clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
	if (I64INT(iPosition.Int64()) == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
		iPosition = aPlayer->DurationL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
	// Position is beyond the end of the clips duration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
	// so check that the value is clipped.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
	if(aPlayer->DurationL() < iPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
		INFO_PRINTF2(_L("Longer than duration : Setting position to %d"), I64INT(iPosition.Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
		aPlayer->SetPositionL(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
		INFO_PRINTF3(_L("Set : position = %d (if clipped : %d)"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
			I64INT(aPlayer->PositionL().Int64()), I64INT(aPlayer->DurationL().Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
		if(aPlayer->PositionL() == aPlayer->DurationL())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
			validPosition = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
	// Position is negative
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
	// so check that the value is clipped.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
	else if (I64INT(iPosition.Int64()) < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
		INFO_PRINTF2(_L("Negative value : Setting position to %d"), I64INT(iPosition.Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
		aPlayer->SetPositionL(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
		INFO_PRINTF2(_L("Set : position = %d (if clipped : 0)"), I64INT(aPlayer->PositionL().Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
		if (I64INT(aPlayer->PositionL().Int64()) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
			validPosition = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
		INFO_PRINTF2(_L("Normal : Setting position to %d"), I64INT(iPosition.Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
		aPlayer->SetPositionL(iPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
		INFO_PRINTF3(_L("Set : position = %d (if clipped : %d)"), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
			I64INT(aPlayer->PositionL().Int64()), I64INT(iPosition.Int64()));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
		if(aPlayer->PositionL() == iPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
			validPosition = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
	// Position was set to a valid value.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	if(validPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
		aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
		// wait for play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
		INFO_PRINTF2(_L("Error : %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
		if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
		// We've got an invalid position, attempt to play anyway...
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
		// the test controller should handle it
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
		aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing from invalid position"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
		// wait for play to complete
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
		INFO_PRINTF2(_L("Error : %d"), iError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
		if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
CTestVclntPriority::CTestVclntPriority(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aPriority)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
	iPriority = aPriority;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
CTestVclntPriority* CTestVclntPriority::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aPriority)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
	CTestVclntPriority* self = new (ELeave) CTestVclntPriority(aTestName,aSectName,aKeyName,aPriority);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
TVerdict CTestVclntPriority::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
	INFO_PRINTF1(_L("Test : Video Player - Priority"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
	aPlayer->SetPriorityL(iPriority, EMdaPriorityPreferenceNone);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
	TInt thePriority;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
	TMdaPriorityPreference thePref;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
	aPlayer->PriorityL(thePriority, thePref);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	INFO_PRINTF3(_L("Priority = %d (expecting %d)"), thePriority, iPriority);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	INFO_PRINTF3(_L("Pref = %d (expecting %d)"), thePref, EMdaPriorityPreferenceNone);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
	if( (thePriority == iPriority) && (thePref == EMdaPriorityPreferenceNone) )
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
CTestVclntDuration::CTestVclntDuration(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	iDuration = aDuration;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
CTestVclntDuration* CTestVclntDuration::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
	CTestVclntDuration* self = new (ELeave) CTestVclntDuration(aTestName,aSectName,aKeyName,aDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
TVerdict CTestVclntDuration::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
	INFO_PRINTF1(_L("Test : Video Player - Duration"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	if (I64INT(iDuration.Int64()) == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
		TInt duration = I64INT(aPlayer->DurationL().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
		aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
		TTime start;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
		start.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
		TTime stop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
		stop.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
		TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
		INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
			iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
		if((iError == KErrNone) && (TimeComparison(actualDuration, duration, KExpectedDeviation)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
		if(aPlayer->DurationL() == iDuration)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
CTestVclntVolume::CTestVclntVolume(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
	iVolume = aVolume;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
CTestVclntVolume* CTestVclntVolume::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
	CTestVclntVolume* self = new (ELeave) CTestVclntVolume(aTestName,aSectName,aKeyName,aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
TVerdict CTestVclntVolume::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
	// NB : test video controller does not adjust invalid volumes
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
	// comment the checks back in for JS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
	INFO_PRINTF1(_L("Test : Video Player - Volume"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
	INFO_PRINTF1(_L("Warning : test video controller does not adjust invalid volumes"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
	// Check maxvolume function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
	if(iVolume == -1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
		iVolume = aPlayer->MaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
		INFO_PRINTF3(_L("Volume = %d MaxVolume = %d"), iVolume, KMaxVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
		//if(iVolume == KMaxVolume) 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
	// Volume is truncated to maxvolume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
	else if(iVolume > aPlayer->MaxVolume())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
		aPlayer->SetVolumeL(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
		INFO_PRINTF3(_L("Volume = %d MaxVolume = %d"), aPlayer->Volume(), aPlayer->MaxVolume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
		//if(aPlayer->Volume() == aPlayer->MaxVolume())
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
	// Volume is truncated to 0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
	else if(iVolume < 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
		aPlayer->SetVolumeL(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
		INFO_PRINTF2(_L("Volume = %d (expecting 0)"), aPlayer->Volume());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
		//if(aPlayer->Volume() == 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
	// Set volume and check
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
		aPlayer->SetVolumeL(iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
		INFO_PRINTF3(_L("Volume = %d (expecting %d)"), aPlayer->Volume(), iVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
		if(aPlayer->Volume() == iVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
CTestVclntCloseOpen::CTestVclntCloseOpen(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
CTestVclntCloseOpen* CTestVclntCloseOpen::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
	CTestVclntCloseOpen* self = new (ELeave) CTestVclntCloseOpen(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
TVerdict CTestVclntCloseOpen::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
	INFO_PRINTF1(_L("Test : Video Player - Close/Open"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
//#ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
	if(!GetStringFromConfig(iSectName,iKeyName,filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
	aPlayer->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
	User::After(KOneSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
	TRAP(iError,aPlayer->OpenFileL(filename));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
		// Wait for initialisation callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
		INFO_PRINTF1(_L("CVideoPlayerUtility: Opening file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
//#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
//	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
//#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
CTestVclntPause::CTestVclntPause(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
CTestVclntPause* CTestVclntPause::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
	CTestVclntPause* self = new (ELeave) CTestVclntPause(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
TVerdict CTestVclntPause::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
	INFO_PRINTF1(_L("Test : Video Player - Pause"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
	// Tests pause functionality
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
	// NB : not implemented in test controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
	INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
	aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
	aPlayer->PauseL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
#ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
	TInt duration = I64INT(aPlayer->DurationL().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
	aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
	INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
	TTime start;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	start.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	TTime stop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	stop.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
	TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
	INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
		iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
	if((iError == KErrNone) && (TimeComparison(actualDuration, duration, KExpectedDeviation)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
	INFO_PRINTF1(_L("Warning : PauseL() functionality not supported in test controller"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
	ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
CTestVclntBalance::CTestVclntBalance(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
	iBalance = aBalance;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
CTestVclntBalance* CTestVclntBalance::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TInt aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
	CTestVclntBalance* self = new (ELeave) CTestVclntBalance(aTestName,aSectName,aKeyName,aBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
TVerdict CTestVclntBalance::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
	INFO_PRINTF1(_L("Test : Video Player - Balance"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
#ifdef JETSTREAM_TESTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
	if (iBalance < KMinBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
		aPlayer->SetBalanceL(iBalance);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
		INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), KMinBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
		if(aPlayer->Balance() == KMinBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
	else if (iBalance > KMaxBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
		aPlayer->SetBalanceL(iBalance);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
		INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), KMaxBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
		if(aPlayer->Balance() == KMaxBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
		aPlayer->SetBalanceL(iBalance);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
		INFO_PRINTF3(_L("Balance = %d (expecting %d)"), aPlayer->Balance(), iBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
		if(aPlayer->Balance() == iBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
			return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
	// the test video controller returns 1 for all calls of Balance()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
	// call SetBalanceL() to show it doesn't leave
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
	aPlayer->SetBalanceL(iBalance);		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
	INFO_PRINTF1(_L("Test controller should return 1 for all calls of Balance()"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
	INFO_PRINTF2(_L("Balance = %d (expecting 1)"), aPlayer->Balance());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
	if(aPlayer->Balance() == 1)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
CTestVclntPlayWindow::CTestVclntPlayWindow(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aStart, const TTimeIntervalMicroSeconds aEnd)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
	iStart = aStart;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
	iEnd = aEnd;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
CTestVclntPlayWindow* CTestVclntPlayWindow::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName, const TTimeIntervalMicroSeconds aStart, const TTimeIntervalMicroSeconds aEnd)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
	CTestVclntPlayWindow* self = new (ELeave) CTestVclntPlayWindow(aTestName,aSectName,aKeyName,aStart,aEnd);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
TVerdict CTestVclntPlayWindow::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
	INFO_PRINTF1(_L("Test : Video Player - Window"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
//	InitWservL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
	TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
	TRAPD(err, aPlayer->SetDisplayWindowL(iWs, *iScreen, *iWindow, rect, clipRect));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
	if(err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
		ERR_PRINTF2(_L("SetDisplayWindowL() failed, error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
		ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
	// removed an attempt at opening a window server manually - it seemed to work, but a RWsSession
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
	// couldn't Connect(), connectL() claimed no asynchronous operation...
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
	// we have no window server, so the test can't run - 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
	// so call it with dummy parameters and add explanatory note to the test
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
	// NB ws.Connect() will panic on the target, hence don't run it
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
#if defined (__WINS__)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
	TBool testInvalid = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
 	RWsSession ws;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
	if(ws.Connect() != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
		testInvalid = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
	// we can't call it at all - SetDisplayWindowL() will cause an access violation if ws is null
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	if(testInvalid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
		INFO_PRINTF1(_L("Warning : SetDisplayWindowL() cannot be tested, no window server available"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
	else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
		{
2
5c1df44f2eed 2010wk42_01
hgs
parents: 0
diff changeset
   939
		// XXX - arguments to be correctly set
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
		CWsScreenDevice sd;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
		RBlankWindow window;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
		TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
		TRAPD(err, aPlayer->SetDisplayWindowL(ws, sd, window, rect, clipRect));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
		if(err)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
			{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
				ERR_PRINTF2(_L("SetDisplayWindowL() failed, error %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
				ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
			}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
		else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
			ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
		
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
#else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
	INFO_PRINTF1(_L("Warning : SetDisplayWindowL() cannot be tested on target"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
	ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
#endif
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
	aPlayer->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
CTestVclntMeta::CTestVclntMeta(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
CTestVclntMeta* CTestVclntMeta::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
	CTestVclntMeta* self = new (ELeave) CTestVclntMeta(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
TVerdict CTestVclntMeta::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
	INFO_PRINTF1(_L("Test : Video Player - Metadata"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
	TInt numOfMeta = -1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
	TRAPD(err, numOfMeta = aPlayer->NumberOfMetaDataEntriesL() );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
	INFO_PRINTF3(_L("Error : %d Entries = %d"), err, numOfMeta);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
	if (err != KErrNone || numOfMeta != 0)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
	// call that goes to the dummy controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
	// NB we expect zero metadata entries
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
	CMMFMetaDataEntry* theEntry=NULL;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	TRAP(err, theEntry = aPlayer->MetaDataEntryL(1));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
	INFO_PRINTF2(_L("Error : %d"), err);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
	if (err != KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
		return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
	else 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
		delete theEntry;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
CTestVclntFrameSize::CTestVclntFrameSize(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TInt aFrameSize)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
	iFrameSize = aFrameSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
CTestVclntFrameSize* CTestVclntFrameSize::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TInt aFrameSize)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
	CTestVclntFrameSize* self = new (ELeave) CTestVclntFrameSize(aTestName,aSectName,aKeyName,aFrameSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
TVerdict CTestVclntFrameSize::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
	INFO_PRINTF1(_L("Test : Video Player - Frame Size"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
	TSize	frameSize;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
	TRAPD(err, aPlayer->VideoFrameSizeL(frameSize) );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
	INFO_PRINTF4(_L("Error : %d, Frame size : (%d, %d)"), err, frameSize.iWidth, frameSize.iHeight);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
	if (err == KErrNone &&
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
		frameSize.iWidth >= 0 && frameSize.iHeight >= 0 )  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
CTestVclntMimeType::CTestVclntMimeType(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
CTestVclntMimeType* CTestVclntMimeType::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
	CTestVclntMimeType* self = new (ELeave) CTestVclntMimeType(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
TVerdict CTestVclntMimeType::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
	INFO_PRINTF1(_L("Test : Video Player - MimeType"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
	// NB we cannot check whether the mime type returned is valid, or even exists.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
	TPtrC8 mimeType = aPlayer->VideoFormatMimeType();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
	// take it to a 16-bit string
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
	TBuf<64> mimeType16;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
	mimeType16.Copy(mimeType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
	INFO_PRINTF2(_L("Mime type : \'%S\'"), &mimeType16);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
CTestVclntRebuffering::CTestVclntRebuffering(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
CTestVclntRebuffering* CTestVclntRebuffering::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
	CTestVclntRebuffering* self = new (ELeave) CTestVclntRebuffering(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
TVerdict CTestVclntRebuffering::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
	INFO_PRINTF1(_L("Test : Video Player - Rebuffering"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
	aPlayer->RegisterForVideoLoadingNotification(*this);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
	INFO_PRINTF1(_L("Rebuffering request completed"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
	return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
// from MRebufferCallback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
void CTestVclntRebuffering::MvloLoadingStarted()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
	INFO_PRINTF1(_L("CTestVclntRebuffering::MvloLoadingStarted"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
void CTestVclntRebuffering::MvloLoadingComplete()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
	INFO_PRINTF1(_L("CTestVclntRebuffering::MvloLoadingComplete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
CTestVclntRepeat::CTestVclntRepeat(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TInt aRepeat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
	iRepeat = aRepeat;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
CTestVclntRepeat* CTestVclntRepeat::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName,const TInt aRepeat)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
	CTestVclntRepeat* self = new (ELeave) CTestVclntRepeat(aTestName,aSectName,aKeyName,aRepeat);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
TVerdict CTestVclntRepeat::DoTestL(CVideoPlayerUtility* aPlayer)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
	INFO_PRINTF1(_L("Test : Video Player - Repeats"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
	TInt duration = I64INT(aPlayer->DurationL().Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
	// SetRepeats() doesn't exist in the video controller, so set iRepeat to 1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
	iRepeat = 1;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
	INFO_PRINTF1(_L("Warning : SetRepeats() does not exist in player API. Repeat count set to 1"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
	aPlayer->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
	INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
	TTime start;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
	start.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
	CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
	TTime stop;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
	stop.HomeTime();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
	TUint actualDuration = I64INT(stop.MicroSecondsFrom(start).Int64());
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
	INFO_PRINTF6(_L("Error : %d Start = %d Stop = %d Duration = %d ActualDuration = %d"),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
		iError, I64INT(start.Int64()), I64INT(stop.Int64()), duration, actualDuration);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
	if((iError == KErrNone) && (TimeComparison(actualDuration, duration * (iRepeat + 1), 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
											   KExpectedDeviation * iRepeat)))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
		ret = EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
//------------------------------------------------------------------
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
CTestVclntDelete::CTestVclntDelete(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
	: CTestVclntVideoFile(aTestName,aSectName,aKeyName,EFalse)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
	{}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
CTestVclntDelete* CTestVclntDelete::NewL(const TDesC& aTestName, const TDesC& aSectName,const TDesC& aKeyName)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
	CTestVclntDelete* self = new (ELeave) CTestVclntDelete(aTestName,aSectName,aKeyName);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
	return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
TVerdict CTestVclntDelete::DoTestL(CVideoPlayerUtility* /* aPlayer */)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
	// this is never called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
	return EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
TVerdict CTestVclntDelete::DoTestStepL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
	TVerdict ret = EFail;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
	INFO_PRINTF1(_L("Test : Video Player - Delete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
	TPtrC filename;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
	if(!GetStringFromConfig(iSectName,iKeyName,filename))
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
		return EInconclusive;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
	InitWservL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
	TRect rect, clipRect;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
	CVideoPlayerUtility* player = CVideoPlayerUtility::NewL(*this, EMdaPriorityNormal,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
															EMdaPriorityPreferenceTimeAndQuality,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
															iWs, *iScreen, *iWindow, rect, clipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
	CleanupStack::PushL(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
	iError = KErrTimedOut;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
	INFO_PRINTF2(_L("Attempting to open file %S"), &filename);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
	TRAP(iError,player->OpenFileL(filename));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
		// Wait for initialisation callback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
		INFO_PRINTF1(_L("CVideoPlayerUtility: Opening file"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
	if (iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
		player->Prepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
		CActiveScheduler::Start();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
	if(iError == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
		player->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
		INFO_PRINTF1(_L("CVideoPlayerUtility: Playing"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
		INFO_PRINTF1(_L("CVideoPlayerUtility: Destroying before play complete"));
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
		CleanupStack::Pop(player); // destroy player before play has completed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
		User::Heap().Check();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
		return EPass;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
	CleanupStack::Pop(player);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
	ERR_PRINTF2( _L("CVideoPlayerUtility failed with error %d"),iError );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
	return ret;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205