omxilvideocomps/omxilgraphicsink/tsrc/src/omxilgraphicsinktestbase.cpp
author hgs
Fri, 08 Oct 2010 22:09:17 +0100
changeset 0 5d29cba61097
permissions -rw-r--r--
2010wk38_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     1
/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     3
* All rights reserved.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     8
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    11
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    12
* Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    13
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    14
* Description: 
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    15
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    16
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    17
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    18
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    19
/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    20
 * @file
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    21
 * @internalTechnology
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    22
 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    23
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    24
#include "omxilgraphicsinktestbase.h"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    25
#include <mmf/server/mmfbuffer.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    26
#include <mmf/server/mmfdatabuffer.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    27
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    28
CCallbackHandler*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    29
CCallbackHandler::NewL(COmxGsTestBase& aCameraSourceTest)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    30
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    31
	CCallbackHandler* self = new (ELeave) CCallbackHandler(aCameraSourceTest);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    32
	CleanupStack::PushL(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    33
	self->ConstructL();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    34
	CleanupStack::Pop(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    35
	return self;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    36
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    37
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    38
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    39
void
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    40
CCallbackHandler::ConstructL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    41
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    42
	OMX_CALLBACKTYPE h =
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    43
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    44
			CCallbackHandler::EventHandler,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    45
			CCallbackHandler::EmptyBufferDone,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    46
			CCallbackHandler::FillBufferDone
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    47
			};
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    48
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    49
	iHandle = h;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    50
	CActiveScheduler::Add(this);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    51
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    52
	User::LeaveIfError(iMsgQueue.CreateLocal(KMaxMsgQueueEntries));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    53
	iMsgQueue.NotifyDataAvailable(iStatus);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    54
	SetActive();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    55
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    56
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    57
CCallbackHandler::CCallbackHandler(COmxGsTestBase& aCameraSourceTest)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    58
	: CActive(EPriorityStandard),
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    59
	  iCameraSourceTest(aCameraSourceTest)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    60
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    61
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    62
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    63
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    64
CCallbackHandler::operator OMX_CALLBACKTYPE*()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    65
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    66
	return &iHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    67
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    68
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    69
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    70
void
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    71
CCallbackHandler::RunL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    72
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    73
	TOmxMessage msg;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    74
	while (iMsgQueue.Receive(msg)==KErrNone)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    75
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    76
		switch (msg.iType)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    77
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    78
			case EEmptyBufferCallback:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    79
				{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    80
//				MOmxInputPortCallbacks* callback = msg.iBuffer->InputPortCallbacks();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    81
//				const CMMFBuffer* buffer = msg.iBuffer->MmfBuffer();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    82
//				callback->EmptyBufferDone(msg.iComponent, buffer);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    83
				iCameraSourceTest.DoEmptyBufferDone(msg.iComponent, static_cast<OMX_BUFFERHEADERTYPE*>(msg.iBuffer));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    84
				break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    85
				}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    86
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    87
			case EFillBufferCallback:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    88
				{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    89
				//iCameraSourceTest.DoFillBufferDone(msg.iComponent,static_cast<CCameraBuffer*>(msg.iBuffer));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    90
				iCameraSourceTest.DoFillBufferDone(msg.iComponent, static_cast<OMX_BUFFERHEADERTYPE*>(msg.iBuffer));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    91
				break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    92
				}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    93
			case EEventCallback:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    94
				{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    95
				iCameraSourceTest.DoEventHandler(msg.iComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    96
											msg.iEventParams.iEvent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    97
											msg.iEventParams.iData1,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    98
											msg.iEventParams.iData2,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    99
											msg.iEventParams.iExtra);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   100
				break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   101
				}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   102
			default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   103
				{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   104
				// This is an invalid state
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   105
				ASSERT(EFalse);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   106
				}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   107
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   108
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   109
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   110
	// setup for next callbacks
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   111
	iStatus = KRequestPending;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   112
	iMsgQueue.NotifyDataAvailable(iStatus);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   113
	SetActive();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   114
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   115
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   116
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   117
CCallbackHandler::~CCallbackHandler()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   118
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   119
	Cancel();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   120
	iMsgQueue.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   121
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   122
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   123
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   124
void
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   125
CCallbackHandler::DoCancel()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   126
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   127
	if (iMsgQueue.Handle())
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   128
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   129
		iMsgQueue.CancelDataAvailable();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   130
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   131
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   132
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   133
OMX_ERRORTYPE
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   134
CCallbackHandler::FillBufferDone(OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   135
									TAny* aAppData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   136
									OMX_BUFFERHEADERTYPE* aBuffer)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   137
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   138
	ASSERT(aAppData);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   139
	//CCameraBuffer* pBuffer = static_cast<CCameraBuffer*>(aBuffer->pAppPrivate);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   140
	return static_cast<CCallbackHandler*>(aAppData)->DoFillBufferDone(aComponent, aBuffer);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   141
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   142
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   143
OMX_ERRORTYPE
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   144
CCallbackHandler::EmptyBufferDone(OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   145
									 TAny* aAppData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   146
									 OMX_BUFFERHEADERTYPE* aBuffer)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   147
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   148
	ASSERT(aAppData);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   149
	//CCameraBuffer* pBuffer = static_cast<CCameraBuffer*>(aBuffer->pAppPrivate);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   150
	return static_cast<CCallbackHandler*>(aAppData)->DoEmptyBufferDone(aComponent, aBuffer);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   151
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   152
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   153
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   154
OMX_ERRORTYPE
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   155
CCallbackHandler::EventHandler(OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   156
								  TAny* aAppData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   157
								  OMX_EVENTTYPE aEvent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   158
								  TUint32 aData1,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   159
								  TUint32 aData2,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   160
								  TAny* aExtra)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   161
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   162
	ASSERT(aAppData);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   163
	CCallbackHandler::TEventParams eventParams;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   164
	eventParams.iEvent = aEvent;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   165
	eventParams.iData1 = aData1;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   166
	eventParams.iData2 = aData2;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   167
	eventParams.iExtra = aExtra;	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   168
	return static_cast<CCallbackHandler*>(aAppData)->DoEventHandler(aComponent, eventParams);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   169
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   170
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   171
OMX_ERRORTYPE CCallbackHandler::DoFillBufferDone(OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   172
								  OMX_BUFFERHEADERTYPE* aBufferHeader)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   173
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   174
	TOmxMessage message;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   175
	message.iType = EFillBufferCallback;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   176
	message.iComponent = aComponent;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   177
	message.iBuffer = static_cast <OMX_BUFFERHEADERTYPE*>(aBufferHeader);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   178
	TInt error = iMsgQueue.Send(message);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   179
	//RDebug::Printf("CCallbackHandler:: Error: %d",error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   180
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   181
	return (error == KErrNone ? OMX_ErrorNone : OMX_ErrorUndefined);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   182
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   183
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   184
OMX_ERRORTYPE CCallbackHandler::DoEmptyBufferDone(OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   185
								   OMX_BUFFERHEADERTYPE* aBufferHeader)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   186
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   187
	TOmxMessage message;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   188
	message.iType = EEmptyBufferCallback;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   189
	message.iComponent = aComponent;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   190
	message.iBuffer = static_cast <OMX_BUFFERHEADERTYPE*> (aBufferHeader);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   191
	TInt error = iMsgQueue.Send(message);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   192
	//RDebug::Printf("CCallbackHandler:: Error: %d",error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   193
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   194
	return (error == KErrNone ? OMX_ErrorNone : OMX_ErrorUndefined);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   195
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   196
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   197
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   198
OMX_ERRORTYPE CCallbackHandler::DoEventHandler(OMX_HANDLETYPE aComponent, TEventParams aEventParams)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   199
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   200
	TOmxMessage message;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   201
	message.iType = EEventCallback;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   202
	message.iComponent = aComponent;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   203
	message.iEventParams = aEventParams;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   204
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   205
	/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   206
	OMX_EventCmdComplete,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   207
    OMX_EventError,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   208
    OMX_EventMark,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   209
    OMX_EventPortSettingsChanged,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   210
    OMX_EventBufferFlag,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   211
    OMX_EventResourcesAcquired,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   212
    OMX_EventComponentResumed,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   213
    OMX_EventDynamicResourcesAvailable,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   214
    OMX_EventPortFormatDetected,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   215
    OMX_EventMax = 0x7FFFFFFF
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   216
	*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   217
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   218
	// TO DO - Put in switch on OMX_EVENTTYPE iEvent and print out the event type and relevant error code in test logs
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   219
	TInt error = iMsgQueue.Send(message);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   220
	//RDebug::Printf("CCallbackHandler:: Error: %d",error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   221
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   222
	return (error == KErrNone ? OMX_ErrorNone : OMX_ErrorUndefined);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   223
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   224
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   225
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   226
// COmxGsTestBase
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   227
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   228
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   229
// Device driver constants
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   230
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   231
TVerdict COmxGsTestBase::doTestStepPreambleL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   232
/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   233
 * @return - TVerdict
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   234
 * Implementation of CTestStep base class virtual
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   235
 * It is used for doing all initialisation common to derived classes in here.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   236
 * Make it being able to leave if there are any errors here as there's no point in
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   237
 * trying to run a test step if anything fails.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   238
 * The leave will be picked up by the framework.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   239
 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   240
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   241
	// Here we check to see if there is already an active scheduler
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   242
	// installed, as this function will receive multiple calls during
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   243
	// Alloc testing of CS and GS components
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   244
	__UHEAP_MARK;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   245
	if (!CActiveScheduler::Current())
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   246
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   247
		iScheduler = new (ELeave) CActiveScheduler;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   248
		CActiveScheduler::Install(iScheduler);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   249
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   250
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   251
	// Make sure we are not running the Alloc tests, if we are
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   252
	// then we will create these elsewhere.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   253
	if (TestStepName() != (_L("MMVIDEO-OMX-CS-004-HP")) &&
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   254
		TestStepName() != (_L("MMVIDEO-OMX-GS-001-00-HP")) &&
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   255
		TestStepName() != (_L("MMVIDEO-OMX-JP-001-00-HP")) &&
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   256
		TestStepName() != (_L("MMVIDEO-OMX-FS-001-00-HP")) &&
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   257
		TestStepName() != (_L("MMVIDEO-OMX-IW-001-00-HP")))
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   258
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   259
		InitialiseOmxComponents();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   260
		if (TestStepResult() != EPass)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   261
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   262
			INFO_PRINTF1(_L("*** InitialiseOmxComponents() failed. No point running test case. ***"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   263
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   264
			// If the preamble leaves then the postamble isn't called by TEF.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   265
			// We have to do it ourselves to ensure stuff is cleaned up.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   266
			TRAP_IGNORE(doTestStepPostambleL());
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   267
			User::Leave(KErrGeneral);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   268
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   269
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   270
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   271
	return TestStepResult();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   272
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   273
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   274
TVerdict COmxGsTestBase::doTestStepPostambleL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   275
/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   276
 * @return - TVerdict
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   277
 * Implementation of CTestStep base class virtual
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   278
 * It is used for doing all after test treatment common to derived classes in here.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   279
 * Make it being able to leave
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   280
 * The leave will be picked up by the framework.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   281
 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   282
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   283
	CloseTestStep();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   284
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   285
	delete iScheduler;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   286
	__UHEAP_MARKEND;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   287
	return TestStepResult();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   288
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   289
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   290
COmxGsTestBase::~COmxGsTestBase()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   291
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   292
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   293
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   294
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   295
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   296
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   297
COmxGsTestBase::COmxGsTestBase() : iCamPrevState(OMX_StateInvalid),
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   298
										iGphxPrevState(OMX_StateInvalid)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   299
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   300
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   301
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   302
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   303
void
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   304
COmxGsTestBase::PrintOmxState(OMX_STATETYPE aOmxState)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   305
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   306
	switch(aOmxState)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   307
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   308
	    case OMX_StateInvalid:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   309
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   310
			INFO_PRINTF1(_L("OMX STATE : OMX_StateInvalid"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   311
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   312
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   313
	    case OMX_StateLoaded:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   314
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   315
			INFO_PRINTF1(_L("OMX STATE : OMX_StateLoaded"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   316
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   317
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   318
	    case OMX_StateIdle:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   319
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   320
			INFO_PRINTF1(_L("OMX STATE : OMX_StateIdle"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   321
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   322
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   323
	    case OMX_StateExecuting:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   324
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   325
			INFO_PRINTF1(_L("OMX STATE : OMX_StateExecuting"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   326
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   327
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   328
	    case OMX_StatePause:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   329
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   330
			INFO_PRINTF1(_L("OMX STATE : OMX_StatePause"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   331
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   332
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   333
	    case OMX_StateWaitForResources:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   334
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   335
			//INFO_PRINTF1(_L("OMX STATE : OMX_StateWaitForResources"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   336
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   337
			break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   338
		default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   339
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   340
			//INFO_PRINTF1(_L("OMX STATE : Wrong state found"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   341
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   342
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   343
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   344
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   345
TInt COmxGsTestBase::PrintOmxError(OMX_ERRORTYPE aOmxError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   346
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   347
    switch(aOmxError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   348
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   349
		case OMX_ErrorNone:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   350
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   351
			INFO_PRINTF1(_L("OMX ERROR : OMX_ErrorNone"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   352
			return KErrNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   353
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   354
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   355
		case OMX_ErrorInsufficientResources:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   356
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   357
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorInsufficientResources"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   358
			return KErrNoMemory; //KErrNotReady;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   359
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   360
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   361
		case OMX_ErrorUndefined:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   362
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   363
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorUndefined"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   364
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   365
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   366
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   367
		case OMX_ErrorInvalidComponentName:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   368
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   369
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorInvalidComponentName"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   370
			return KErrBadName;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   371
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   372
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   373
		case OMX_ErrorComponentNotFound:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   374
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   375
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorComponentNotFound"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   376
			return KErrNotFound;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   377
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   378
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   379
		case OMX_ErrorInvalidComponent:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   380
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   381
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorInvalidComponent"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   382
			return KErrBadHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   383
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   384
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   385
		case OMX_ErrorBadParameter:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   386
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   387
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorBadParameter"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   388
			return KErrArgument;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   389
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   390
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   391
		case OMX_ErrorNotImplemented:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   392
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   393
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorNotImplemented"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   394
			return KErrNotSupported;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   395
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   396
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   397
		case OMX_ErrorUnderflow:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   398
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   399
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorUnderflow"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   400
			return KErrUnderflow;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   401
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   402
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   403
		case OMX_ErrorOverflow:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   404
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   405
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorOverflow"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   406
			return KErrOverflow;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   407
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   408
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   409
		case OMX_ErrorHardware:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   410
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   411
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorHardware"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   412
			return KErrUnknown;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   413
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   414
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   415
		case OMX_ErrorInvalidState:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   416
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   417
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorInvalidState"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   418
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   419
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   420
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   421
		case OMX_ErrorStreamCorrupt:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   422
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   423
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorStreamCorrupt"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   424
			return KErrCorrupt;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   425
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   426
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   427
		case OMX_ErrorPortsNotCompatible:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   428
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   429
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorPortsNotCompatible"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   430
			//ERR_PRINTF1(_L("Ports being connected are not compatible"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   431
			return KErrUnknown;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   432
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   433
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   434
		case OMX_ErrorResourcesLost:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   435
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   436
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorResourcesLost"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   437
			//ERR_PRINTF1(_L("Resources allocated to an idle component have been lost resulting in the component returning to the loaded state"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   438
			return KErrNotReady;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   439
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   440
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   441
		case OMX_ErrorNoMore:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   442
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   443
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorNoMore"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   444
			//ERR_PRINTF1(_L("No more indicies can be enumerated"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   445
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   446
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   447
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   448
		case OMX_ErrorVersionMismatch:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   449
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   450
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorVersionMismatch"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   451
			//ERR_PRINTF1(_L("The component detected a version mismatch"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   452
			return KErrArgument;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   453
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   454
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   455
		case OMX_ErrorNotReady:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   456
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   457
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorNotReady"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   458
			//ERR_PRINTF1(_L("The component is not ready to return data at this time"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   459
			return KErrNotReady;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   460
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   461
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   462
		case OMX_ErrorTimeout:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   463
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   464
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorTimeout"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   465
			//ERR_PRINTF1(_L("There was a timeout that occurred"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   466
			return KErrTimedOut;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   467
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   468
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   469
		case OMX_ErrorSameState:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   470
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   471
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorSameState"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   472
			//ERR_PRINTF1(_L("This error occurs when trying to transition into the state you are already in"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   473
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   474
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   475
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   476
		case OMX_ErrorResourcesPreempted:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   477
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   478
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorResourcesPreempted"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   479
			//ERR_PRINTF1(_L("Resources allocated to an executing or paused component have been preempted, causing the component to return to the idle state"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   480
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   481
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   482
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   483
		case OMX_ErrorPortUnresponsiveDuringAllocation:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   484
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   485
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorPortUnresponsiveDuringAllocation"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   486
			//ERR_PRINTF1(_L("A non-supplier port sends this error to the IL client (via the EventHandler callback) during the allocation of buffers (on a transition from the LOADED to the IDLE state or on a port restart) when it deems that it has waited an unusually long time for the supplier to send it an allocated buffer via a UseBuffer call."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   487
			return KErrGeneral; //KErrTimedOut
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   488
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   489
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   490
		case OMX_ErrorPortUnresponsiveDuringDeallocation:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   491
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   492
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorPortUnresponsiveDuringDeallocation"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   493
			//ERR_PRINTF1(_L("A non-supplier port sends this error to the IL client (via the EventHandler callback) during the deallocation of buffers (on a transition from the IDLE to LOADED state or on a port stop) when it deems that it has waited an unsually long time for the supplier to request the deallocation of a buffer header via a FreeBuffer call."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   494
			return KErrGeneral; //KErrTimedOut
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   495
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   496
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   497
		case OMX_ErrorPortUnresponsiveDuringStop:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   498
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   499
		ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorPortUnresponsiveDuringStop"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   500
			//ERR_PRINTF1(_L("A supplier port sends this error to the IL client (via the EventHandler callback) during the stopping of a port (either on a transition from the IDLE to LOADED state or a port stop) when it deems that it has waited an unusually long time for the non-supplier to return a buffer via an EmptyThisBuffer or FillThisBuffer call."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   501
			return KErrGeneral; //KErrTimedOut
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   502
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   503
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   504
		case OMX_ErrorIncorrectStateTransition:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   505
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   506
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorIncorrectStateTransition"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   507
			//ERR_PRINTF1(_L("Attempting a state transtion that is not allowed"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   508
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   509
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   510
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   511
		case OMX_ErrorIncorrectStateOperation:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   512
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   513
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorIncorrectStateOperation"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   514
			//ERR_PRINTF1(_L("Attempting a command that is not allowed during the present state."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   515
			return KErrGeneral; //KErrNotSupported
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   516
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   517
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   518
		case OMX_ErrorUnsupportedSetting:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   519
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   520
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorUnsupportedSetting"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   521
			//ERR_PRINTF1(_L("The values encapsulated in the parameter or config structure are not supported."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   522
			return KErrGeneral; //KErrNotSupported
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   523
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   524
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   525
		case OMX_ErrorUnsupportedIndex:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   526
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   527
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorUnsupportedIndex"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   528
			//ERR_PRINTF1(_L("The parameter or config indicated by the given index is not supported."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   529
			return KErrNotSupported; //KErrTooBig or KErrGeneral
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   530
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   531
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   532
		case OMX_ErrorBadPortIndex:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   533
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   534
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorBadPortIndex"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   535
			//ERR_PRINTF1(_L("The port index supplied is incorrect."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   536
			return KErrArgument; //KErrTooBig
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   537
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   538
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   539
		case OMX_ErrorPortUnpopulated:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   540
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   541
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorPortUnpopulated"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   542
			//ERR_PRINTF1(_L("The port has lost one or more of its buffers and it thus unpopulated."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   543
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   544
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   545
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   546
		case OMX_ErrorComponentSuspended:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   547
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   548
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorComponentSuspended"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   549
			//ERR_PRINTF1(_L("Component suspended due to temporary loss of resources"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   550
			return KErrAbort;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   551
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   552
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   553
		case OMX_ErrorDynamicResourcesUnavailable:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   554
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   555
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorDynamicResourcesUnavailable"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   556
			//ERR_PRINTF1(_L("Component suspended due to an inability to acquire dynamic resources"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   557
			return KErrAbort; //KErrGeneral
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   558
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   559
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   560
		case OMX_ErrorMbErrorsInFrame:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   561
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   562
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorMbErrorsInFrame"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   563
			//ERR_PRINTF1(_L("When the macroblock error reporting is enabled the component returns new error for every frame that has errors"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   564
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   565
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   566
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   567
		case OMX_ErrorFormatNotDetected:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   568
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   569
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorFormatNotDetected"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   570
			//ERR_PRINTF1(_L("A component reports this error when it cannot parse or determine the format of an input stream."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   571
			return KErrCorrupt; //KErrGeneral
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   572
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   573
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   574
		case OMX_ErrorContentPipeOpenFailed:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   575
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   576
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorContentPipeOpenFailed"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   577
			//R//ERR_PRINTF1(_L("The content open operation failed."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   578
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   579
			//break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   580
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   581
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   582
		case OMX_ErrorContentPipeCreationFailed:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   583
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   584
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorContentPipeCreationFailed"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   585
			//ERR_PRINTF1(_L("The content creation operation failed."));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   586
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   587
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   588
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   589
		case OMX_ErrorSeperateTablesUsed:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   590
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   591
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorSeperateTablesUsed"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   592
			//ERR_PRINTF1(_L("Separate table information is being used"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   593
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   594
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   595
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   596
		case OMX_ErrorTunnelingUnsupported:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   597
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   598
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorTunnelingUnsupported"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   599
			//ERR_PRINTF1(_L("Tunneling is unsupported by the component"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   600
			return KErrNotSupported;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   601
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   602
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   603
		case OMX_ErrorMax:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   604
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   605
			ERR_PRINTF1(_L("OMX ERROR : OMX_ErrorMax"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   606
			//ERR_PRINTF1(_L("OMX_ErrorMax"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   607
			return KErrTooBig; // KErrGeneral
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   608
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   609
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   610
		default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   611
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   612
			ERR_PRINTF1(_L("OMX ERROR : Wrong error code found"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   613
			return KErrGeneral;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   614
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   615
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   616
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   617
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   618
void COmxGsTestBase::InfoPrint1(const TDesC& aPrint)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   619
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   620
	INFO_PRINTF1(aPrint);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   621
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   622
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   623
OMX_ERRORTYPE COmxGsTestBase::ConvertSymbianErrorType(TInt aError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   624
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   625
	OMX_ERRORTYPE err = OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   626
	switch (aError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   627
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   628
	case KErrNone:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   629
		err = OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   630
		break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   631
	case KErrNoMemory:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   632
		err = OMX_ErrorInsufficientResources;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   633
		break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   634
	case KErrGeneral:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   635
		break;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   636
	default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   637
		err = OMX_ErrorUndefined;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   638
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   639
	return err;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   640
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   641
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   642
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   643
void COmxGsTestBase::InitialiseOmxComponents()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   644
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   645
	iError = OMX_Init();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   646
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   647
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   648
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   649
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   650
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   651
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   652
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   653
	ASSERT(!iCallbackHandler);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   654
	TRAPD(error, iCallbackHandler = CCallbackHandler::NewL(*this));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   655
	OMX_CALLBACKTYPE* omxCallbacks = *iCallbackHandler;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   656
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   657
	if (error)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   658
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   659
		SetTestStepError(error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   660
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   661
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   662
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   663
	OMX_PTR appData = iCallbackHandler;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   664
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   665
	OMX_HANDLETYPE graphicsSinkHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   666
	OMX_STRING graphicsSinkComponentName = "OMX.SYMBIAN.VIDEO.GRAPHICSINK";
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   667
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   668
	iError = OMX_GetHandle(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   669
	    &graphicsSinkHandle,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   670
	    graphicsSinkComponentName,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   671
	    appData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   672
	    omxCallbacks);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   673
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   674
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   675
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   676
		INFO_PRINTF2(_L("Error %08X loading graphics sink"), iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   677
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   678
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   679
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   680
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   681
	iGraphicSinkCompHandle = (OMX_COMPONENTTYPE*) graphicsSinkHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   682
	INFO_PRINTF2(_L("OMX.SYMBIAN.VIDEO.GRAPHICSINK: Handle: %X"), iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   683
/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   684
	OMX_HANDLETYPE cameraSourceHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   685
	OMX_STRING cameraSourceComponentName = "OMX.SYMBIAN.VIDEO.CAMERASOURCE";
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   686
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   687
	iError = OMX_GetHandle(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   688
	    &cameraSourceHandle,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   689
	    cameraSourceComponentName,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   690
	    appData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   691
	    omxCallbacks);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   692
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   693
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   694
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   695
		INFO_PRINTF2(_L("Error %08X loading camera source"), iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   696
		OMX_FreeHandle(iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   697
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   698
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   699
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   700
	iCameraSourceCompHandle = (OMX_COMPONENTTYPE*)cameraSourceHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   701
	INFO_PRINTF2(_L("OMX.SYMBIAN.VIDEO.CAMERASOURCE: Handle: %X"), iCameraSourceCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   702
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   703
 	OMX_HANDLETYPE fileSinkHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   704
	OMX_STRING fileSinkComponentName = "OMX.SYMBIAN.OTHER.FILESINK";
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   705
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   706
	iError = OMX_GetHandle(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   707
	    &fileSinkHandle,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   708
	    fileSinkComponentName,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   709
	    appData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   710
	    omxCallbacks);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   711
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   712
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   713
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   714
		INFO_PRINTF2(_L("Error %08X loading file sink"), iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   715
		OMX_FreeHandle(iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   716
		OMX_FreeHandle(iCameraSourceCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   717
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   718
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   719
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   720
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   721
	iFileSinkCompHandle = (OMX_COMPONENTTYPE*)fileSinkHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   722
	INFO_PRINTF2(_L("OMX.SYMBIAN.OTHER.FILESINK: Handle: %X"), iFileSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   723
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   724
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   725
	OMX_HANDLETYPE jpegEncoderHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   726
	OMX_STRING jpegEncoderComponentName = "OMX.SYMBIAN.IMAGE.ENCODER.JPEG";
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   727
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   728
	iError = OMX_GetHandle(&jpegEncoderHandle,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   729
							jpegEncoderComponentName,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   730
							appData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   731
							omxCallbacks);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   732
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   733
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   734
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   735
		INFO_PRINTF2(_L("Error %08X loading jpeg encoder"), iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   736
		OMX_FreeHandle(iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   737
		OMX_FreeHandle(iCameraSourceCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   738
		OMX_FreeHandle(iFileSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   739
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   740
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   741
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   742
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   743
	iJpegEncoderCompHandle = (OMX_COMPONENTTYPE*) jpegEncoderHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   744
	INFO_PRINTF2(_L("OMX.SYMBIAN.IMAGE.ENCODER.JPEG: Handle: %X"), iJpegEncoderCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   745
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   746
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   747
    OMX_HANDLETYPE imageWriterHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   748
    OMX_STRING imageWriterComponentName = "OMX.SYMBIAN.IMAGE.IMAGEWRITER";
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   749
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   750
    iError = OMX_GetHandle(&imageWriterHandle,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   751
                            imageWriterComponentName,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   752
                            appData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   753
                            omxCallbacks);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   754
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   755
    if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   756
        {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   757
        INFO_PRINTF2(_L("Error %08X loading image writer"), iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   758
        OMX_FreeHandle(iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   759
        OMX_FreeHandle(iCameraSourceCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   760
        OMX_FreeHandle(iFileSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   761
        OMX_FreeHandle(iJpegEncoderCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   762
        SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   763
        return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   764
        }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   765
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   766
    iImageWriterCompHandle = (OMX_COMPONENTTYPE*) imageWriterHandle;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   767
    INFO_PRINTF2(_L("OMX.SYMBIAN.IMAGE.IMAGEWRITER: Handle: %X"), iImageWriterCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   768
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   769
	InitialiseTestSpecificOmxComponents();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   770
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   771
	SetTestStepResult(EPass);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   772
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   773
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   774
void COmxGsTestBase::InitialiseTestSpecificOmxComponents()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   775
    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   776
    // Disable clock port in Camera Source
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   777
//    INFO_PRINTF1(_L("send port 3 to disable"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   778
//    SendCommand(iCameraSourceCompHandle, OMX_CommandPortDisable, KCameraClockPortIndex, 0);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   779
    
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   780
    // Disable port VC in Camera Source
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   781
//    INFO_PRINTF1(_L("send port 1 to disable"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   782
//    SendCommand(iCameraSourceCompHandle, OMX_CommandPortDisable, KCameraVCPortIndex, 0);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   783
    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   784
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   785
void COmxGsTestBase::CreateWindowL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   786
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   787
	iSurfaceUpdateSession.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   788
		iSurfaceManager.Close();iWindowHandle = 0;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   789
	// Connect to a WS Session.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   790
    User::LeaveIfError(iWsSession.Connect());
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   791
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   792
    // Create a Window Group.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   793
    iWindowGroup = RWindowGroup(iWsSession);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   794
	User::LeaveIfError(iWindowGroup.Construct(iWindowHandle++));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   795
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   796
    // Create the Screen device for the WServ session.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   797
    iWsSd = new (ELeave) CWsScreenDevice(iWsSession);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   798
    User::LeaveIfError(iWsSd->Construct());
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   799
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   800
    //Done in different class
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   801
    iWindow = new (ELeave) RWindow(iWsSession);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   802
    User::LeaveIfError(iWindow->Construct(iWindowGroup, iWindowHandle++));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   803
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   804
    iWindow2 = new (ELeave) RWindow(iWsSession);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   805
    User::LeaveIfError(iWindow2->Construct(iWindowGroup, iWindowHandle));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   806
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   807
    //done in different class
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   808
	iGc = new (ELeave) CWindowGc(iWsSd);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   809
    User::LeaveIfError(iGc->Construct());
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   810
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   811
	iGc2 = new (ELeave) CWindowGc(iWsSd);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   812
    User::LeaveIfError(iGc2->Construct());
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   813
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   814
    // Reset the screen mode.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   815
    if(iWsSd->CurrentScreenMode() != 0)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   816
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   817
	    iWsSd->SetAppScreenMode(0);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   818
	    iWsSd->SetScreenMode(0);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   819
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   820
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   821
	iWindow->Activate();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   822
	iGc->Activate(*iWindow);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   823
	iGc->Clear();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   824
	iWindow->SetVisible(ETrue);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   825
	iWsSession.Flush();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   826
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   827
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   828
void COmxGsTestBase::CloseTest()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   829
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   830
	delete iCallbackHandler;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   831
	iCallbackHandler = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   832
	if(iTestChunk.Handle())
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   833
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   834
		iTestChunk.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   835
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   836
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   837
	if (iGc)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   838
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   839
	    delete iGc;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   840
	    iGc = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   841
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   842
	if (iGc2)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   843
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   844
	    delete iGc2;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   845
	    iGc2 = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   846
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   847
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   848
	if (iWsSd)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   849
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   850
	    delete iWsSd;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   851
	    iWsSd = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   852
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   853
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   854
	iWsSession.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   855
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   856
	if (iWindow)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   857
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   858
	    delete iWindow;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   859
	    iWindow = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   860
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   861
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   862
	if (iWindow2)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   863
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   864
	    delete iWindow2;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   865
	    iWindow2 = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   866
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   867
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   868
	if (iTestShutdown)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   869
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   870
	    delete iTestShutdown;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   871
	    iTestShutdown = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   872
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   873
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   874
	if (iTestPause)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   875
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   876
	    delete iTestPause;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   877
	    iTestPause = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   878
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   879
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   880
	if (iTestStateTransition)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   881
	    {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   882
	    delete iTestStateTransition;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   883
	    iTestStateTransition = NULL;	    
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   884
	    }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   885
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   886
	iSurfaceUpdateSession.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   887
	iSurfaceManager.Close();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   888
	// Make sure we are not running the Alloc tests, if we are
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   889
	// then we have already cleaned up the OMX components and core.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   890
	if(TestStepName() != (_L("MMVIDEO-OMX-CS-004-HP")) && TestStepName() != (_L("MMVIDEO-OMX-GS-001-00-HP"))
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   891
			&& TestStepName() != (_L("MMVIDEO-OMX-JP-001-00-HP")) && TestStepName() != (_L("MMVIDEO-OMX-FS-001-00-HP"))
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   892
			&& TestStepName() != (_L("MMVIDEO-OMX-IW-001-00-HP")))
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   893
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   894
		FreeHandles();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   895
		iError = OMX_Deinit();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   896
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   897
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   898
	REComSession::FinalClose();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   899
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   900
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   901
TInt COmxGsTestBase::InitialiseSurfaceManager()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   902
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   903
	TInt err = iSurfaceManager.Open();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   904
	if (err == KErrNone)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   905
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   906
		err = iSurfaceUpdateSession.Connect(3);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   907
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   908
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   909
	if (err == KErrNotFound)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   910
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   911
		INFO_PRINTF1(_L("Failed to find surfacemanger or surfaceupdatesession"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   912
		INFO_PRINTF1(_L("Make sure 'SYMBIAN_GRAPHICS_USE_GCE ON' is specified in epoc.ini"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   913
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   914
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   915
	return err;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   916
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   917
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   918
TInt COmxGsTestBase::CreateAndMapSurface(const RSurfaceManager::TSurfaceCreationAttributesBuf& aReqs, TSurfaceId& aSurfaceId)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   919
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   920
	TInt err = iSurfaceManager.CreateSurface(aReqs, aSurfaceId);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   921
	if (err)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   922
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   923
		ERR_PRINTF2(_L("RSurfaceManager::CreateSurface() failed with %d"), err);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   924
		return err;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   925
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   926
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   927
	err = iSurfaceManager.MapSurface(aSurfaceId, iTestChunk);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   928
	if (err)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   929
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   930
		ERR_PRINTF2(_L("RSurfaceManager::MapSurface() failed with %d"), err);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   931
		return err;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   932
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   933
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   934
	iSurfaceId = aSurfaceId;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   935
	return KErrNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   936
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   937
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   938
void COmxGsTestBase::SendCommand(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   939
			            OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   940
			            OMX_COMMANDTYPE aCmd,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   941
			            OMX_U32 aParam1,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   942
			            OMX_PTR aCmdData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   943
			            OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   944
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   945
	iError = OMX_SendCommand(aComponent,aCmd,aParam1,aCmdData);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   946
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   947
	if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   948
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   949
		ERR_PRINTF1(_L("SendCommandErr"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   950
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   951
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   952
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   953
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   954
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   955
void COmxGsTestBase::GetState(OMX_HANDLETYPE aComponent,OMX_STATETYPE* aState,OMX_STATETYPE aExpectedState)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   956
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   957
	iError = OMX_GetState(aComponent,aState);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   958
	if (OMX_ErrorNone != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   959
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   960
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   961
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   962
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   963
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   964
	// PrintOmxState(*aState);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   965
	if (aExpectedState != OMX_StateMax)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   966
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   967
		if (aExpectedState != *aState)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   968
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   969
			ERR_PRINTF1(_L("Did not return expected state"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   970
			PrintOmxState(*aState);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   971
			SetTestStepError(KErrGeneral);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   972
			return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   973
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   974
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   975
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   976
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   977
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   978
void COmxGsTestBase::SetParameter(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   979
						OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   980
            			OMX_INDEXTYPE aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   981
            			OMX_PTR aComponentParameterStructure,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   982
            			OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   983
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   984
	iError = OMX_SetParameter(aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   985
										aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   986
										aComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   987
	if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   988
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   989
		INFO_PRINTF3(_L("SetParameter() returned %08X instead of %08X"), iError, aExpError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   990
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   991
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   992
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   993
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   994
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   995
void COmxGsTestBase::GetParameter(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   996
					OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   997
            		OMX_INDEXTYPE aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   998
            		OMX_PTR aComponentParameterStructure,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   999
            		OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1000
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1001
	iError = OMX_GetParameter(aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1002
										aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1003
										aComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1004
	if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1005
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1006
		ERR_PRINTF3(_L("COmxGsTestBase::GetParameter - expected: %08X got: %08X"), aExpError, iError);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1007
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1008
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1009
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1010
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1011
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1012
void COmxGsTestBase::SetConfig(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1013
						OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1014
            			OMX_INDEXTYPE aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1015
            			OMX_PTR aComponentParameterStructure,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1016
            			OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1017
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1018
	iError = OMX_SetConfig(aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1019
										aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1020
										aComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1021
	if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1022
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1023
		INFO_PRINTF1(_L("COmxGsTestBase::SetConfig fail"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1024
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1025
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1026
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1027
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1028
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1029
void COmxGsTestBase::GetConfig(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1030
					OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1031
            		OMX_INDEXTYPE aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1032
            		OMX_PTR aComponentParameterStructure,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1033
            		OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1034
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1035
	iError = OMX_GetConfig(aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1036
										aIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1037
										aComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1038
	if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1039
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1040
		INFO_PRINTF1(_L("COmxGsTestBase::GetConfig fail"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1041
		SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1042
		return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1043
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1044
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1045
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1046
void COmxGsTestBase::FreeBuffer(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1047
		OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1048
        OMX_U32 aPortIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1049
        RPointerArray<OMX_BUFFERHEADERTYPE> aArrayBufferHeaderType,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1050
        OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1051
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1052
	TInt bufferCount = aArrayBufferHeaderType.Count();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1053
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1054
	for (TInt i =0; i < bufferCount ; ++i)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1055
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1056
		iError = OMX_FreeBuffer(aComponent,aPortIndex,aArrayBufferHeaderType[i]);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1057
		if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1058
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1059
			SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1060
			return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1061
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1062
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1063
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1064
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1065
void COmxGsTestBase::AllocateBuffer(
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1066
		OMX_HANDLETYPE aComponent,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1067
		OMX_BUFFERHEADERTYPE** aBufferHeaderType,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1068
        OMX_U32 aPortIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1069
        OMX_PTR aAppPrivate,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1070
        OMX_U32 aSizeBytes,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1071
        RPointerArray<OMX_BUFFERHEADERTYPE>* aArrayBufferHeaderType,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1072
        OMX_U32 aCount,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1073
        OMX_ERRORTYPE aExpError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1074
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1075
	for(TInt i = 0 ; i < aCount; i++ )
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1076
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1077
		iError = OMX_AllocateBuffer(aComponent,*&aBufferHeaderType,aPortIndex,aAppPrivate,aSizeBytes);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1078
		if (aExpError != iError)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1079
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1080
			SetTestStepError(PrintOmxError(iError));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1081
			return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1082
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1083
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1084
		// Used for tracking
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1085
		TInt err = aArrayBufferHeaderType->Append(*aBufferHeaderType);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1086
		if (err != KErrNone)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1087
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1088
			INFO_PRINTF2(_L("Append Buffer Failed %d"), err);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1089
			SetTestStepError(err);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1090
			return SetTestStepResult(EFail);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1091
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1092
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1093
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1094
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1095
void COmxGsTestBase::FreeHandles()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1096
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1097
	// Don't call this function after OMX_DeInit call
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1098
	if (iGraphicSinkCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1099
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1100
		INFO_PRINTF1(_L("FreeHandle for GFX ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1101
		OMX_FreeHandle(iGraphicSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1102
		iGraphicSinkCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1103
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1104
/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1105
	if(iCameraSourceCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1106
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1107
		INFO_PRINTF1(_L("FreeHandle for CAM ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1108
		OMX_FreeHandle(iCameraSourceCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1109
		iCameraSourceCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1110
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1111
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1112
	if (iFileSinkCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1113
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1114
		INFO_PRINTF1(_L("FreeHandle for FSK ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1115
		OMX_FreeHandle(iFileSinkCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1116
		iFileSinkCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1117
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1118
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1119
	if(iJpegEncoderCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1120
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1121
		INFO_PRINTF1(_L("FreeHandle for JPEG Encoder ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1122
		OMX_FreeHandle(iJpegEncoderCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1123
		iJpegEncoderCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1124
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1125
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1126
    if(iImageWriterCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1127
        {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1128
        INFO_PRINTF1(_L("FreeHandle for Image Writer ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1129
        OMX_FreeHandle(iImageWriterCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1130
        iImageWriterCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1131
        }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1132
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1133
	if(iXvidEncoderCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1134
        {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1135
        INFO_PRINTF1(_L("FreeHandle for Xvid Encoder ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1136
        OMX_FreeHandle(iXvidEncoderCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1137
        iXvidEncoderCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1138
        }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1139
    
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1140
    if(i3gpMuxerCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1141
        {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1142
        INFO_PRINTF1(_L("FreeHandle for 3gp Muxer ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1143
        OMX_FreeHandle(i3gpMuxerCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1144
        i3gpMuxerCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1145
        }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1146
    
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1147
    if(iClockCompHandle)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1148
        {
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1149
        INFO_PRINTF1(_L("FreeHandle for Clock ++"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1150
        OMX_FreeHandle(iClockCompHandle);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1151
        iClockCompHandle = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1152
        }
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1153
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1154
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1155
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1156
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1157
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1158
TInt COmxGsTestBase::StateTransition(const TDesC& /*aStateTransitionName*/)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1159
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1160
	return KErrNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1161
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1162
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1163
void COmxGsTestBase::StartTimer()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1164
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1165
	TRAPD(err, iTestShutdown = COmxGsTestShutdown::NewL(this,1));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1166
	if(err)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1167
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1168
		ERR_PRINTF1(_L("OOM ERROR"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1169
		return SetTestStepError(err);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1170
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1171
	iInterval = KTSU_OMX_GS_Interval;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1172
	iTestShutdown->Start(iInterval,KErrNone, EPass);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1173
	CActiveScheduler::Start();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1174
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1175
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1176
void COmxGsTestBase::WaitForCallbacks()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1177
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1178
	TRAPD(error, iTestShutdown = COmxGsTestShutdown::NewL(this,2));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1179
	if(error)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1180
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1181
		ERR_PRINTF1(_L("OOM ERROR"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1182
		return SetTestStepError(error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1183
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1184
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1185
	iInterval = KTSU_OMX_GS_CALLBACK;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1186
	iTestShutdown->Start(iInterval,KErrGeneral, EPass);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1187
	CActiveScheduler::Start();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1188
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1189
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1190
void COmxGsTestBase::PauseTimer()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1191
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1192
	TRAPD(error, iTestPause = COmxGsTestShutdown::NewL(this,3));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1193
	if(error)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1194
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1195
		ERR_PRINTF1(_L("OOM ERROR"));
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1196
		return SetTestStepError(error);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1197
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1198
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1199
	iInterval = KTSU_OMX_GS_Pause_Interval/2;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1200
	iTestPause->Start(iInterval,KErrGeneral, EPass);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1201
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1202
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1203
// ShutDown Class
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1204
COmxGsTestShutdown* COmxGsTestShutdown::NewL(COmxGsTestBase* aOmxGsTest,TInt aTimerId)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1205
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1206
	COmxGsTestShutdown* self = new(ELeave) COmxGsTestShutdown(aOmxGsTest,aTimerId);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1207
	CleanupStack::PushL(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1208
	self->ConstructL();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1209
	CleanupStack::Pop();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1210
	return self;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1211
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1212
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1213
COmxGsTestShutdown::COmxGsTestShutdown(COmxGsTestBase* aOmxGsTest,TInt aTimerId)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1214
: CTimer(EPriorityUserInput), iOmxGsTest(aOmxGsTest), iTimerId(aTimerId)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1215
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1216
	CActiveScheduler::Add(this);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1217
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1218
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1219
COmxGsTestShutdown::~COmxGsTestShutdown()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1220
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1221
	Cancel();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1222
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1223
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1224
void COmxGsTestShutdown::ConstructL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1225
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1226
	CTimer::ConstructL();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1227
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1228
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1229
void COmxGsTestShutdown::Start(TTimeIntervalMicroSeconds32 aInterval, TInt aReason, TVerdict aResult)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1230
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1231
	iReason = aReason;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1232
	iResult = aResult;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1233
	After(aInterval);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1234
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1235
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1236
void COmxGsTestShutdown::RunL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1237
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1238
	iOmxGsTest->PostKickOffTestL(iTimerId);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1239
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1240
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1241
COmxGsTestStateTransition* COmxGsTestStateTransition::NewL(COmxGsTestBase* aOmxGsTest,TInt aPriority)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1242
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1243
	COmxGsTestStateTransition* self = new(ELeave) COmxGsTestStateTransition(aOmxGsTest,aPriority);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1244
	CleanupStack::PushL(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1245
	self->ConstructL();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1246
	CleanupStack::Pop();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1247
	return self;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1248
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1249
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1250
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1251
COmxGsTestStateTransition::COmxGsTestStateTransition(COmxGsTestBase* aOmxGsTest,TInt aPriority)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1252
: CTimer(aPriority), iOmxGsTest(aOmxGsTest)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1253
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1254
	CActiveScheduler::Add(this);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1255
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1256
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1257
COmxGsTestStateTransition::~COmxGsTestStateTransition()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1258
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1259
	Cancel();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1260
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1261
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1262
void COmxGsTestStateTransition::ConstructL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1263
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1264
	CTimer::ConstructL();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1265
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1266
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1267
void COmxGsTestStateTransition::Start(TTimeIntervalMicroSeconds32 aInterval,const TDesC& aStateTransitionName)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1268
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1269
	iStateTransitionName = aStateTransitionName;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1270
	After(aInterval);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1271
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1272
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1273
void COmxGsTestStateTransition::RunL()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1274
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1275
	iOmxGsTest->StateTransition(iStateTransitionName);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
  1276
	}