os/kernelhwsrv/kerneltest/e32test/emul/d_guiconfig.cpp
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of the License "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// e32test\emul\d_guiconfig.cpp
sl@0
    15
// LDD for testing emulator GUI config API
sl@0
    16
// 
sl@0
    17
//
sl@0
    18
sl@0
    19
#include <kernel/kernel.h>
sl@0
    20
#include <wins/winsgui.h>
sl@0
    21
#include <e32keys.h>
sl@0
    22
#include "d_guiconfig.h"
sl@0
    23
sl@0
    24
const TInt KMajorVersionNumber=0;
sl@0
    25
const TInt KMinorVersionNumber=1;
sl@0
    26
const TInt KBuildVersionNumber=1;
sl@0
    27
sl@0
    28
class DTest;
sl@0
    29
sl@0
    30
class DTestFactory : public DLogicalDevice
sl@0
    31
//
sl@0
    32
// Test LDD factory
sl@0
    33
//
sl@0
    34
	{
sl@0
    35
public:
sl@0
    36
	DTestFactory();
sl@0
    37
	virtual TInt Install(); 					//overriding pure virtual
sl@0
    38
	virtual void GetCaps(TDes8& aDes) const;	//overriding pure virtual
sl@0
    39
	virtual TInt Create(DLogicalChannelBase*& aChannel); 	//overriding pure virtual
sl@0
    40
	};
sl@0
    41
sl@0
    42
class DTest : public DLogicalChannelBase
sl@0
    43
//
sl@0
    44
// Test logical channel
sl@0
    45
//
sl@0
    46
	{
sl@0
    47
public:
sl@0
    48
	virtual ~DTest();
sl@0
    49
protected:
sl@0
    50
	virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
sl@0
    51
	virtual TInt Request(TInt aFunction, TAny* a1, TAny* a2);
sl@0
    52
	};
sl@0
    53
sl@0
    54
DECLARE_STANDARD_LDD()
sl@0
    55
	{
sl@0
    56
	return new DTestFactory;
sl@0
    57
	}
sl@0
    58
sl@0
    59
DTestFactory::DTestFactory()
sl@0
    60
//
sl@0
    61
// Constructor
sl@0
    62
//
sl@0
    63
	{
sl@0
    64
	iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber);
sl@0
    65
	//iParseMask=0;//No units, no info, no PDD
sl@0
    66
	//iUnitsMask=0;//Only one thing
sl@0
    67
	}
sl@0
    68
sl@0
    69
TInt DTestFactory::Create(DLogicalChannelBase*& aChannel)
sl@0
    70
//
sl@0
    71
// Create a new DTest on this logical device
sl@0
    72
//
sl@0
    73
	{
sl@0
    74
	aChannel=new DTest;
sl@0
    75
	return aChannel?KErrNone:KErrNoMemory;
sl@0
    76
	}
sl@0
    77
sl@0
    78
TInt DTestFactory::Install()
sl@0
    79
//
sl@0
    80
// Install the LDD - overriding pure virtual
sl@0
    81
//
sl@0
    82
	{
sl@0
    83
	return SetName(&KLddName);
sl@0
    84
	}
sl@0
    85
sl@0
    86
void DTestFactory::GetCaps(TDes8& aDes) const
sl@0
    87
//
sl@0
    88
// Get capabilities - overriding pure virtual
sl@0
    89
//
sl@0
    90
	{
sl@0
    91
	TCapsTestV01 b;
sl@0
    92
	b.iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber);
sl@0
    93
    Kern::InfoCopy(aDes,(TUint8*)&b,sizeof(b));
sl@0
    94
	}
sl@0
    95
sl@0
    96
TInt DTest::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
sl@0
    97
//
sl@0
    98
// Create channel
sl@0
    99
//
sl@0
   100
	{
sl@0
   101
sl@0
   102
	if (!Kern::QueryVersionSupported(TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber),aVer))
sl@0
   103
		return KErrNotSupported;
sl@0
   104
	return KErrNone;
sl@0
   105
	}
sl@0
   106
sl@0
   107
DTest::~DTest()
sl@0
   108
//
sl@0
   109
// Destructor
sl@0
   110
//
sl@0
   111
	{
sl@0
   112
	}
sl@0
   113
sl@0
   114
TInt DTest::Request(TInt aFunction, TAny* a1, TAny* a2)
sl@0
   115
	{
sl@0
   116
	(void)a1;
sl@0
   117
	(void)a2;
sl@0
   118
	TInt r=KErrNone;
sl@0
   119
	switch (aFunction)
sl@0
   120
		{
sl@0
   121
		case RGuiConfigTest::EGetConfig:
sl@0
   122
			{
sl@0
   123
			r = WinsGui::CurrentConfiguration();
sl@0
   124
			break;
sl@0
   125
			}
sl@0
   126
		case RGuiConfigTest::EGenerateKeyEvent:
sl@0
   127
			{
sl@0
   128
			r = WinsGui::CurrentConfiguration();
sl@0
   129
sl@0
   130
			TRawEvent eventDown, eventUp;
sl@0
   131
			eventDown.Set(TRawEvent::EKeyDown, (EKeyScreenDimension0 + r)<<16);
sl@0
   132
			eventUp.Set(TRawEvent::EKeyUp, (EKeyScreenDimension0 + r)<<16);
sl@0
   133
sl@0
   134
			NKern::ThreadEnterCS();
sl@0
   135
			r = Kern::AddEvent(eventDown);
sl@0
   136
			if (r == KErrNone)
sl@0
   137
				r = Kern::AddEvent(eventUp);
sl@0
   138
			NKern::ThreadLeaveCS();
sl@0
   139
			break;
sl@0
   140
			}
sl@0
   141
		default:
sl@0
   142
			{
sl@0
   143
			r=KErrNotSupported;
sl@0
   144
			break;
sl@0
   145
			}
sl@0
   146
		}
sl@0
   147
	return r;
sl@0
   148
	}
sl@0
   149