os/kernelhwsrv/kerneltest/e32test/video/t_video.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) 2001-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
// Overview:
sl@0
    15
// Test the video driver kernel extension
sl@0
    16
// API Information:
sl@0
    17
// HAL, UserSvr
sl@0
    18
// Details:
sl@0
    19
// - Get and report the value for brightness & max brightness. Adjust 
sl@0
    20
// the brightness. Verify results are as expected.
sl@0
    21
// - Get and report the value for contrast & max contrast. Adjust the 
sl@0
    22
// contrast. Verify results are as expected.
sl@0
    23
// - Get and set backlight status, verify results.
sl@0
    24
// - Get the number of display modes and the current display mode.
sl@0
    25
// - Get screen information for current display mode.
sl@0
    26
// - Get Bits per pixel for current display mode, for an illegal mode 
sl@0
    27
// and for all modes.
sl@0
    28
// - Switch display modes and verify results are as expected.
sl@0
    29
// - Get and set palette entries, verify the results.
sl@0
    30
// - Turn the display on and off.
sl@0
    31
// - If additional screens are supported, test each screen as above.
sl@0
    32
// - Test more devices than the kernel supports, verify the results.
sl@0
    33
// Platforms/Drives/Compatibility:
sl@0
    34
// All.
sl@0
    35
// Assumptions/Requirement/Pre-requisites:
sl@0
    36
// Failures and causes:
sl@0
    37
// Base Port information:
sl@0
    38
// 
sl@0
    39
//
sl@0
    40
sl@0
    41
#include <e32test.h>
sl@0
    42
#include <videodriver.h>
sl@0
    43
#include <hal.h>
sl@0
    44
#include <e32svr.h>
sl@0
    45
sl@0
    46
LOCAL_D RTest test(_L("T_VIDEO"));
sl@0
    47
sl@0
    48
LOCAL_C void RunTests(void);
sl@0
    49
sl@0
    50
#ifndef __WINS__
sl@0
    51
#define DUMP(x) test.Printf(_L(#x"= %d =0x%08x\n"), x, x)
sl@0
    52
#endif
sl@0
    53
sl@0
    54
LOCAL_C void RunTests(void)
sl@0
    55
	{
sl@0
    56
	TInt ret = KErrNone;
sl@0
    57
	TInt HALArg;
sl@0
    58
	TInt saved = 0;
sl@0
    59
sl@0
    60
/*	BRIGHTNESS	*/
sl@0
    61
	
sl@0
    62
	TBool HALMaxBrightnessSupported = EFalse;
sl@0
    63
	TBool HALGetBrightnessSupported = EFalse;
sl@0
    64
	TBool HALSetBrightnessSupported = EFalse;
sl@0
    65
sl@0
    66
	test.Next(_L("Max Brightness using HAL"));
sl@0
    67
	TInt maxBrightness=-1;
sl@0
    68
	ret = HAL::Get(HAL::EDisplayBrightnessMax, maxBrightness);
sl@0
    69
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
    70
sl@0
    71
	if (KErrNone == ret)
sl@0
    72
		{
sl@0
    73
		HALMaxBrightnessSupported = ETrue;
sl@0
    74
		test.Printf(_L("Maximum brightness = %d\n"), maxBrightness);
sl@0
    75
		}
sl@0
    76
	else
sl@0
    77
		test.Printf(_L("Maximum brightness is NOT SUPPORTED by HAL\n"));
sl@0
    78
sl@0
    79
sl@0
    80
	test.Next(_L("Get Brightness using HAL"));
sl@0
    81
	HALArg = -1;
sl@0
    82
	ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
sl@0
    83
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
    84
	if (KErrNone == ret)
sl@0
    85
		{
sl@0
    86
		test.Printf(_L("Brightness = %d\n"), HALArg);
sl@0
    87
		HALGetBrightnessSupported = ETrue;
sl@0
    88
		saved = HALArg;
sl@0
    89
		}
sl@0
    90
	else
sl@0
    91
		{
sl@0
    92
		test.Printf(_L("Get Brightness is NOT SUPPORTED by HAL\n"));
sl@0
    93
		}
sl@0
    94
sl@0
    95
	test.Next(_L("Test brightness is <= maxBrightness"));
sl@0
    96
	test(HALArg <= maxBrightness);
sl@0
    97
sl@0
    98
	test.Next(_L("Set Brightness using HAL"));
sl@0
    99
	ret = HAL::Set(HAL::EDisplayBrightness, 0);
sl@0
   100
	test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
sl@0
   101
	if ((KErrNone == ret) || (KErrArgument == ret))
sl@0
   102
		HALSetBrightnessSupported = ETrue;
sl@0
   103
	else
sl@0
   104
		test.Printf(_L("Set brightness is NOT SUPPORTED by HAL\n"));
sl@0
   105
sl@0
   106
sl@0
   107
		
sl@0
   108
	//if any of the brightness funcs are supported, test they all are
sl@0
   109
	//we've already tested Ldd/HAL are giving same support
sl@0
   110
	if (HALSetBrightnessSupported && HALGetBrightnessSupported && HALMaxBrightnessSupported)
sl@0
   111
		{
sl@0
   112
		//all supported
sl@0
   113
		//do more comprehensive set/gets
sl@0
   114
		test.Next(_L("Set Brightness using HAL to saved value"));
sl@0
   115
		ret = HAL::Set(HAL::EDisplayBrightness, saved);
sl@0
   116
		test (KErrNone == ret);
sl@0
   117
sl@0
   118
		test.Next(_L("Get Brightness using HAL"));
sl@0
   119
		HALArg = -1;
sl@0
   120
		ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
sl@0
   121
		test (KErrNone == ret);
sl@0
   122
		test (saved == HALArg);
sl@0
   123
	
sl@0
   124
		test.Next(_L("Set Brightness to the max using HAL"));
sl@0
   125
		ret = HAL::Set(HAL::EDisplayBrightness, maxBrightness);
sl@0
   126
		test.Printf(_L("ret = %d maxbr = %d"),ret, maxBrightness);
sl@0
   127
		test (KErrNone == ret);
sl@0
   128
sl@0
   129
		test.Next(_L("Get Brightness using HAL"));
sl@0
   130
		HALArg = 0;
sl@0
   131
		ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
sl@0
   132
		test (KErrNone == ret);
sl@0
   133
		test (maxBrightness == HALArg);
sl@0
   134
sl@0
   135
		test.Next(_L("Set Brightness using HAL"));
sl@0
   136
		ret = HAL::Set(HAL::EDisplayBrightness, saved);
sl@0
   137
		test (KErrNone == ret);
sl@0
   138
sl@0
   139
sl@0
   140
		//test some out of range values
sl@0
   141
		ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
sl@0
   142
		test (KErrNone == ret);
sl@0
   143
		saved = HALArg;
sl@0
   144
sl@0
   145
		test.Next(_L("Set Brightness too large using HAL"));
sl@0
   146
		ret = HAL::Set(HAL::EDisplayBrightness, maxBrightness+1);
sl@0
   147
		test (KErrArgument == ret);
sl@0
   148
sl@0
   149
		test.Next(_L("Set Brightness too small using HAL"));
sl@0
   150
		ret = HAL::Set(HAL::EDisplayBrightness, -1);
sl@0
   151
		test (KErrArgument == ret);
sl@0
   152
sl@0
   153
		}
sl@0
   154
		else	//check none are supported
sl@0
   155
			test(!(HALSetBrightnessSupported || HALGetBrightnessSupported || HALMaxBrightnessSupported));
sl@0
   156
sl@0
   157
sl@0
   158
/*	CONTRAST	*/
sl@0
   159
sl@0
   160
	TBool HALMaxContrastSupported = EFalse;
sl@0
   161
	TBool HALGetContrastSupported = EFalse;
sl@0
   162
	TBool HALSetContrastSupported = EFalse;
sl@0
   163
	
sl@0
   164
sl@0
   165
	test.Next(_L("Max Contrast using HAL"));
sl@0
   166
	TInt maxContrast=-1;
sl@0
   167
	ret = HAL::Get(HAL::EDisplayContrastMax, maxContrast);
sl@0
   168
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   169
sl@0
   170
	if (KErrNone == ret)
sl@0
   171
		{
sl@0
   172
		HALMaxContrastSupported = ETrue;
sl@0
   173
		test.Printf(_L("Maximum Contrast = %d\n"), maxContrast);
sl@0
   174
		}
sl@0
   175
	else
sl@0
   176
		test.Printf(_L("Maximum Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   177
sl@0
   178
sl@0
   179
	test.Next(_L("Get Contrast using HAL"));
sl@0
   180
	HALArg = -1;
sl@0
   181
	ret = HAL::Get(HAL::EDisplayContrast, HALArg);
sl@0
   182
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   183
	if (KErrNone == ret)
sl@0
   184
		{
sl@0
   185
		test.Printf(_L("Contrast = %d\n"), HALArg);
sl@0
   186
		HALGetContrastSupported = ETrue;
sl@0
   187
		saved = HALArg;
sl@0
   188
		}
sl@0
   189
	else
sl@0
   190
		{
sl@0
   191
		test.Printf(_L("Get Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   192
		}
sl@0
   193
sl@0
   194
	test.Next(_L("Test contrast is <= maxcontrast"));
sl@0
   195
	test(HALArg <= maxContrast);
sl@0
   196
sl@0
   197
	test.Next(_L("Set Contrast using HAL"));
sl@0
   198
	ret = HAL::Set(HAL::EDisplayContrast, 0);
sl@0
   199
	test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
sl@0
   200
	if ((KErrNone == ret) || (KErrArgument == ret))
sl@0
   201
		HALSetContrastSupported = ETrue;
sl@0
   202
	else
sl@0
   203
		test.Printf(_L("Set Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   204
sl@0
   205
sl@0
   206
		
sl@0
   207
	//if any of the Contrast funcs are supported, test they all are
sl@0
   208
	//we've already tested Ldd/HAL are giving same support
sl@0
   209
	if (HALSetContrastSupported && HALGetContrastSupported && HALMaxContrastSupported)
sl@0
   210
		{
sl@0
   211
		//all supported
sl@0
   212
		//do more comprehensive set/gets
sl@0
   213
		test.Next(_L("Set Contrast using HAL to saved value"));
sl@0
   214
		ret = HAL::Set(HAL::EDisplayContrast, saved);
sl@0
   215
		test (KErrNone == ret);
sl@0
   216
sl@0
   217
		test.Next(_L("Get Contrast using HAL"));
sl@0
   218
		HALArg = -1;
sl@0
   219
		ret = HAL::Get(HAL::EDisplayContrast, HALArg);
sl@0
   220
		test (KErrNone == ret);
sl@0
   221
		test (saved == HALArg);
sl@0
   222
	
sl@0
   223
		test.Next(_L("Set Contrast to the max using HAL"));
sl@0
   224
		ret = HAL::Set(HAL::EDisplayContrast, maxContrast);
sl@0
   225
		test (KErrNone == ret);
sl@0
   226
sl@0
   227
		test.Next(_L("Get Contrast using HAL"));
sl@0
   228
		HALArg = 0;
sl@0
   229
		ret = HAL::Get(HAL::EDisplayContrast, HALArg);
sl@0
   230
		test (KErrNone == ret);
sl@0
   231
		test (maxContrast == HALArg);
sl@0
   232
sl@0
   233
		test.Next(_L("Set Contrast using HAL"));
sl@0
   234
		ret = HAL::Set(HAL::EDisplayContrast, saved);
sl@0
   235
		test (KErrNone == ret);
sl@0
   236
sl@0
   237
sl@0
   238
		//test some out of range values
sl@0
   239
		ret = HAL::Get(HAL::EDisplayContrast, HALArg);
sl@0
   240
		test (KErrNone == ret);
sl@0
   241
		saved = HALArg;
sl@0
   242
sl@0
   243
		test.Next(_L("Set Contrast too large using HAL"));
sl@0
   244
		ret = HAL::Set(HAL::EDisplayContrast, maxContrast+1);
sl@0
   245
		test (KErrArgument == ret);
sl@0
   246
sl@0
   247
		test.Next(_L("Set Contrast too small using HAL"));
sl@0
   248
		ret = HAL::Set(HAL::EDisplayContrast, -1);
sl@0
   249
		test (KErrArgument == ret);
sl@0
   250
sl@0
   251
		}
sl@0
   252
		else	//check none are supported
sl@0
   253
			test(!(HALSetContrastSupported || HALGetContrastSupported || HALMaxContrastSupported));
sl@0
   254
sl@0
   255
		
sl@0
   256
		
sl@0
   257
/*	BACKLIGHT	*/
sl@0
   258
sl@0
   259
	TBool HALGetBacklightSupported = EFalse;
sl@0
   260
	TBool HALSetBacklightSupported = EFalse;
sl@0
   261
	TBool lightSupported = EFalse;
sl@0
   262
sl@0
   263
	test.Next(_L("check if backlight supported using HAL"));
sl@0
   264
	HALArg = -1;
sl@0
   265
	ret = HAL::Get(HAL::EBacklight, lightSupported);
sl@0
   266
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   267
	test.Printf(_L("Backlight supported = %d"), lightSupported);
sl@0
   268
sl@0
   269
sl@0
   270
sl@0
   271
	test.Next(_L("Get Backlight state using HAL"));
sl@0
   272
	HALArg = -1;
sl@0
   273
	ret = HAL::Get(HAL::EBacklightState, HALArg);
sl@0
   274
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   275
	if (KErrNone == ret)
sl@0
   276
		{
sl@0
   277
		HALGetBacklightSupported = ETrue;
sl@0
   278
		test.Printf(_L("Backlight is = %d from HAL\n"), HALArg);
sl@0
   279
		}
sl@0
   280
	else
sl@0
   281
		test.Printf(_L("Get Light is NOT SUPPORTED by HAL\n"));
sl@0
   282
sl@0
   283
sl@0
   284
	test.Next(_L("Set Backlight state using HAL"));
sl@0
   285
	HALArg = 0;
sl@0
   286
	ret = HAL::Set(HAL::EBacklightState, HALArg);
sl@0
   287
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   288
	if (KErrNone == ret)
sl@0
   289
		{
sl@0
   290
		HALSetBacklightSupported = ETrue;
sl@0
   291
		test.Printf(_L("Backlight is set to = %d from HAL\n"), HALArg);
sl@0
   292
		}
sl@0
   293
	else
sl@0
   294
		test.Printf(_L("Set Light is NOT SUPPORTED by HAL\n"));
sl@0
   295
sl@0
   296
sl@0
   297
sl@0
   298
sl@0
   299
	if 	(HALGetBacklightSupported && HALSetBacklightSupported)
sl@0
   300
		{
sl@0
   301
sl@0
   302
		test.Next(_L("Get Backlight state using HAL (should be off)"));
sl@0
   303
		HALArg = -1;
sl@0
   304
		ret = HAL::Get(HAL::EBacklightState, HALArg);
sl@0
   305
		test (KErrNone == ret);
sl@0
   306
		test (0 == HALArg);
sl@0
   307
sl@0
   308
		test.Next(_L("Set Backlight state to on using HAL"));
sl@0
   309
		ret = HAL::Set(HAL::EBacklightState, 1);
sl@0
   310
		test (KErrNone == ret);
sl@0
   311
sl@0
   312
		}
sl@0
   313
	else
sl@0
   314
		test (!HALGetBacklightSupported == !HALSetBacklightSupported);
sl@0
   315
sl@0
   316
sl@0
   317
	/* maximum display colors*/
sl@0
   318
	test.Next(_L("Display Colors"));
sl@0
   319
	ret = HAL::Get(HAL::EDisplayColors, HALArg);
sl@0
   320
	test (KErrNone == ret);
sl@0
   321
sl@0
   322
	
sl@0
   323
	/*  DISPLAY MODE */
sl@0
   324
	test.Next(_L("Display Modes"));
sl@0
   325
	TInt totalModes;
sl@0
   326
	ret = HAL::Get(HAL::EDisplayNumModes, totalModes);
sl@0
   327
	test (KErrNone == ret);
sl@0
   328
sl@0
   329
	TInt displayMode;
sl@0
   330
	ret = HAL::Get(HAL::EDisplayMode, displayMode);
sl@0
   331
	test (KErrNone == ret);
sl@0
   332
	
sl@0
   333
	
sl@0
   334
sl@0
   335
	/* SCREEN INFORMATION*/
sl@0
   336
sl@0
   337
	test.Next(_L("Get Screen Info for current mode using driver"));
sl@0
   338
sl@0
   339
sl@0
   340
	test.Next(_L("Get screen info using usersvr"));
sl@0
   341
	TScreenInfoV01 screenInfo;
sl@0
   342
	TPckg<TScreenInfoV01> sI(screenInfo);
sl@0
   343
	UserSvr::ScreenInfo(sI);
sl@0
   344
	test (screenInfo.iScreenAddressValid != screenInfo.iWindowHandleValid);
sl@0
   345
	if (screenInfo.iScreenAddressValid)
sl@0
   346
		test (screenInfo.iScreenAddress != 0);
sl@0
   347
	if (screenInfo.iWindowHandleValid)
sl@0
   348
		test (screenInfo.iWindowHandle != 0);
sl@0
   349
sl@0
   350
sl@0
   351
	TInt val;
sl@0
   352
	test.Next(_L("Get DisplayXPixels using HAL"));
sl@0
   353
	ret = HAL::Get(HAL::EDisplayXPixels, val);
sl@0
   354
	test (KErrNone == ret);
sl@0
   355
	test (val == screenInfo.iScreenSize.iWidth);
sl@0
   356
sl@0
   357
	test.Next(_L("Get DisplayYPixels using HAL"));
sl@0
   358
	ret = HAL::Get(HAL::EDisplayYPixels, val);
sl@0
   359
	test (KErrNone == ret);
sl@0
   360
	test (val == screenInfo.iScreenSize.iHeight);
sl@0
   361
sl@0
   362
	TInt xtwips;
sl@0
   363
	test.Next(_L("Get DisplayXTwips using HAL"));
sl@0
   364
	ret = HAL::Get(HAL::EDisplayXTwips, xtwips);
sl@0
   365
	test (KErrNone == ret);
sl@0
   366
sl@0
   367
	TInt ytwips;
sl@0
   368
	test.Next(_L("Get DisplayYTwips using HAL"));
sl@0
   369
	ret = HAL::Get(HAL::EDisplayYTwips, ytwips);
sl@0
   370
	test (KErrNone == ret);
sl@0
   371
sl@0
   372
	TInt vaddr;
sl@0
   373
	test.Next(_L("Get video address using HAL"));
sl@0
   374
	ret = HAL::Get(HAL::EDisplayMemoryAddress, vaddr);
sl@0
   375
	test (KErrNone == ret);
sl@0
   376
#ifndef __WINS__
sl@0
   377
	test (vaddr == (TInt)screenInfo.iScreenAddress);
sl@0
   378
#else
sl@0
   379
	test (vaddr == (TInt)screenInfo.iWindowHandle);
sl@0
   380
#endif
sl@0
   381
sl@0
   382
	test.Next(_L("Use machine info"));
sl@0
   383
sl@0
   384
	TMachineInfoV1 mi;
sl@0
   385
	TMachineInfoV1Buf mib;
sl@0
   386
sl@0
   387
	UserHal::MachineInfo(mib);
sl@0
   388
	mi = mib();
sl@0
   389
sl@0
   390
	test.Printf(_L("si.iWidth = %d,  si.iHeight = %d,  mi.iWidth = %d, mi.iHeight = %d\n"),screenInfo.iScreenSize.iWidth, screenInfo.iScreenSize.iHeight, mi.iDisplaySizeInPixels.iWidth, mi.iDisplaySizeInPixels.iHeight);
sl@0
   391
	test.Printf(_L("xtwips = %d,  ytwips = %d,  iWidth = %d, iHeight = %d\n"),xtwips, ytwips, mi.iPhysicalScreenSize.iWidth, mi.iPhysicalScreenSize.iHeight);
sl@0
   392
sl@0
   393
	test (screenInfo.iScreenSize.iWidth == mi.iDisplaySizeInPixels.iWidth);
sl@0
   394
	test (screenInfo.iScreenSize.iHeight == mi.iDisplaySizeInPixels.iHeight);
sl@0
   395
	test (xtwips == mi.iPhysicalScreenSize.iWidth);
sl@0
   396
	test (ytwips == mi.iPhysicalScreenSize.iHeight);
sl@0
   397
sl@0
   398
sl@0
   399
/* BITS PER PIXEL */
sl@0
   400
sl@0
   401
	test.Next(_L("Get Bits per pixel for current display mode using HAL"));
sl@0
   402
sl@0
   403
	HALArg = displayMode;
sl@0
   404
	ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
sl@0
   405
	test (KErrNone == ret);
sl@0
   406
sl@0
   407
sl@0
   408
	test.Next(_L("Get Bits per pixel with illegal mode using HAL"));
sl@0
   409
	HALArg = -1;
sl@0
   410
	ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
sl@0
   411
	test (KErrArgument == ret);
sl@0
   412
sl@0
   413
	HALArg = totalModes;
sl@0
   414
	ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
sl@0
   415
	test (KErrArgument == ret);
sl@0
   416
sl@0
   417
	
sl@0
   418
/*DISPLAY MODES*/
sl@0
   419
	test.Next(_L("loop through the display modes getting the info"));
sl@0
   420
sl@0
   421
	TInt count;
sl@0
   422
sl@0
   423
	TInt fourBppMode = -1;
sl@0
   424
sl@0
   425
	for (count = 0; count < totalModes; count++)
sl@0
   426
		{
sl@0
   427
sl@0
   428
		test.Next(_L("Offset To first pixel"));
sl@0
   429
		HALArg = count;
sl@0
   430
		ret = HAL::Get(HAL::EDisplayOffsetToFirstPixel, HALArg);
sl@0
   431
		test (KErrNone == ret);
sl@0
   432
		test (HALArg >= 0);
sl@0
   433
sl@0
   434
		test.Next(_L("Test Offset between lines is > 0"));
sl@0
   435
		HALArg = count;
sl@0
   436
		ret = HAL::Get(HAL::EDisplayOffsetBetweenLines, HALArg);
sl@0
   437
		test (KErrNone == ret);
sl@0
   438
#ifndef __WINS__
sl@0
   439
		test (HALArg > 0);
sl@0
   440
#else		
sl@0
   441
		test.Printf(_L("WINS can return 0 here as it doesn't handle the buffer itself, target hardware must return > 0"));
sl@0
   442
		test (HALArg >= 0);
sl@0
   443
#endif
sl@0
   444
		test.Next(_L("is display mono"));
sl@0
   445
		HALArg = count;
sl@0
   446
		ret = HAL::Get(HAL::EDisplayIsMono, HALArg);
sl@0
   447
		test (KErrNone == ret);
sl@0
   448
		
sl@0
   449
		test.Next(_L("is display palettized"));
sl@0
   450
		HALArg = count;
sl@0
   451
		ret = HAL::Get(HAL::EDisplayIsPalettized, HALArg);
sl@0
   452
		test (KErrNone == ret);
sl@0
   453
sl@0
   454
		test.Next(_L("bits per pixel"));
sl@0
   455
		HALArg = count;
sl@0
   456
		ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
sl@0
   457
		test (KErrNone == ret);
sl@0
   458
sl@0
   459
		if (HALArg == 4)
sl@0
   460
			fourBppMode = count;
sl@0
   461
sl@0
   462
		}
sl@0
   463
sl@0
   464
sl@0
   465
	test.Next(_L("switch display modes must be supported if > 1 display mode"));
sl@0
   466
sl@0
   467
	TInt oldMode = displayMode;
sl@0
   468
#ifndef __X86__
sl@0
   469
	if (totalModes > 1)
sl@0
   470
		{
sl@0
   471
		HALArg = displayMode;
sl@0
   472
		ret = HAL::Set(HAL::EDisplayMode, HALArg);
sl@0
   473
		test.Printf(_L("ret is %d dmode is %d\n"),ret, HALArg);
sl@0
   474
		test (KErrNone == ret);
sl@0
   475
sl@0
   476
		ret = HAL::Get(HAL::EDisplayMode, HALArg);
sl@0
   477
		test (KErrNone == ret);
sl@0
   478
		test (HALArg == displayMode);
sl@0
   479
sl@0
   480
		}
sl@0
   481
#endif
sl@0
   482
	for (count = 0; count < totalModes; count++)
sl@0
   483
		{
sl@0
   484
			
sl@0
   485
#ifndef __X86__
sl@0
   486
		if (totalModes > 1)  //we must support mode change
sl@0
   487
			{
sl@0
   488
			test.Printf(_L("Setting Display Mode to %d\n"), count);
sl@0
   489
sl@0
   490
			ret = HAL::Set(HAL::EDisplayMode, count);
sl@0
   491
			test (KErrNone == ret);
sl@0
   492
sl@0
   493
			ret = HAL::Get(HAL::EDisplayMode, HALArg);
sl@0
   494
			test (KErrNone == ret);
sl@0
   495
			test (HALArg == count);
sl@0
   496
			}
sl@0
   497
#endif
sl@0
   498
sl@0
   499
		/* PALETTE */
sl@0
   500
sl@0
   501
		//get the palette entries
sl@0
   502
		//set a few to something else
sl@0
   503
		//set them again
sl@0
   504
sl@0
   505
		TInt palettized = count;
sl@0
   506
		test.Next(_L("Get if we are using a palette using HAL"));
sl@0
   507
		ret = HAL::Get(HAL::EDisplayIsPalettized, palettized);
sl@0
   508
		test (KErrNone == ret);
sl@0
   509
sl@0
   510
		if (palettized)
sl@0
   511
			{
sl@0
   512
			HALArg = count;
sl@0
   513
			ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
sl@0
   514
			test (KErrNone == ret);
sl@0
   515
			test.Printf(_L("Bitsperpixel is  %d\n"),HALArg);
sl@0
   516
			test (HALArg <= 8);
sl@0
   517
sl@0
   518
			TInt max = (1 << HALArg) - 1;
sl@0
   519
			test.Printf(_L("number of palette entries is %d\n"),max);
sl@0
   520
			
sl@0
   521
			test.Next(_L("Get legal Palette entries using HAL and driver in loop"));
sl@0
   522
			for (TInt x = 0; x <= max; x++)
sl@0
   523
				{
sl@0
   524
				HALArg = x;
sl@0
   525
				ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   526
				test.Printf(_L("getting entry %d, ret is %d\n"),x, ret);
sl@0
   527
				test (KErrNone == ret);
sl@0
   528
sl@0
   529
				}
sl@0
   530
sl@0
   531
sl@0
   532
			//try a few sets
sl@0
   533
			TInt saved;
sl@0
   534
sl@0
   535
			test.Next(_L("Set Palette entry 0 to red using HAL"));
sl@0
   536
sl@0
   537
			saved = 0;
sl@0
   538
			ret = HAL::Get(HAL::EDisplayPaletteEntry, saved);
sl@0
   539
			test (KErrNone == ret);
sl@0
   540
sl@0
   541
			HALArg = 0xF80000;
sl@0
   542
			ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   543
			test (KErrNone == ret || KErrNotSupported == ret);
sl@0
   544
			
sl@0
   545
			if (KErrNone == ret)
sl@0
   546
				{
sl@0
   547
				HALArg = 0;
sl@0
   548
				ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   549
				test (KErrNone == ret);
sl@0
   550
				test ((HALArg & 0xF8FFFF)==0xF80000);
sl@0
   551
sl@0
   552
				ret = HAL::Set(HAL::EDisplayPaletteEntry, saved);
sl@0
   553
				test (KErrNone == ret);
sl@0
   554
sl@0
   555
sl@0
   556
				HALArg = 1;
sl@0
   557
				ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   558
				test (KErrNone == ret);
sl@0
   559
sl@0
   560
sl@0
   561
				HALArg = (7 << 24) || 0xFFFF00;
sl@0
   562
				ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   563
				test (KErrNone == ret);
sl@0
   564
sl@0
   565
			
sl@0
   566
				}
sl@0
   567
				
sl@0
   568
sl@0
   569
			
sl@0
   570
			HALArg = count;
sl@0
   571
			test (KErrNone == HAL::Get(HAL::EDisplayBitsPerPixel, HALArg));
sl@0
   572
sl@0
   573
			if (4 == HALArg)
sl@0
   574
				{
sl@0
   575
				test.Next(_L("Get Illegal palette entry using HAL"));
sl@0
   576
				HALArg = 18;
sl@0
   577
				ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   578
				test (KErrArgument == ret);
sl@0
   579
sl@0
   580
sl@0
   581
				test.Next(_L("Set Illegal palette entry using HAL"));
sl@0
   582
				HALArg = 0x12 << 24 ;
sl@0
   583
				ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   584
				test (KErrArgument == ret);
sl@0
   585
				}
sl@0
   586
		
sl@0
   587
			}
sl@0
   588
		else
sl@0
   589
			{
sl@0
   590
			//not palettized
sl@0
   591
			test.Next(_L("Get palette entry using HAL - should fail"));
sl@0
   592
			HALArg = 0;
sl@0
   593
			ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
sl@0
   594
			test (KErrNotSupported == ret);
sl@0
   595
			}
sl@0
   596
sl@0
   597
	
sl@0
   598
		}		
sl@0
   599
sl@0
   600
#ifndef __X86__
sl@0
   601
	if (totalModes > 1)  //we must support mode change
sl@0
   602
		{
sl@0
   603
		ret = HAL::Set(HAL::EDisplayMode, oldMode);
sl@0
   604
		test (KErrNone == ret);
sl@0
   605
		}
sl@0
   606
#endif
sl@0
   607
	
sl@0
   608
	
sl@0
   609
	
sl@0
   610
	
sl@0
   611
	/*	DISPLAY ON/OFF	*/
sl@0
   612
sl@0
   613
	TInt displayState;
sl@0
   614
sl@0
   615
	test.Next(_L("Check Display is on using HAL"));
sl@0
   616
	displayState = EFalse;
sl@0
   617
	ret = HAL::Get(HAL::EDisplayState, displayState);
sl@0
   618
	test (KErrNone == ret);
sl@0
   619
	test (displayState!=EFalse);
sl@0
   620
sl@0
   621
	test.Next(_L("Turn Display Off using HAL"));
sl@0
   622
	ret = HAL::Set(HAL::EDisplayState, 0);
sl@0
   623
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
   624
sl@0
   625
	if (KErrNone == ret)
sl@0
   626
		{
sl@0
   627
//		test.Next(_L("Check Display is off using HAL"));
sl@0
   628
		displayState = ETrue;
sl@0
   629
		ret = HAL::Get(HAL::EDisplayState, displayState);
sl@0
   630
		test (KErrNone == ret);
sl@0
   631
		test (displayState==EFalse);
sl@0
   632
sl@0
   633
	//	test.Next(_L("Display On using HAL"));
sl@0
   634
	//	ret = HAL::Set(HAL::EDisplayState, 1);
sl@0
   635
	//	test (KErrNotSupported == ret);
sl@0
   636
		
sl@0
   637
sl@0
   638
	//need some way of turning on the display!
sl@0
   639
		RTimer timer;
sl@0
   640
		test(timer.CreateLocal()==KErrNone);
sl@0
   641
		TTime now;
sl@0
   642
		now.HomeTime();
sl@0
   643
		TTime wakeup;
sl@0
   644
		wakeup=now+TTimeIntervalSeconds(10);
sl@0
   645
		TRequestStatus done;
sl@0
   646
		timer.At(done,wakeup);
sl@0
   647
sl@0
   648
		UserHal::SwitchOff();
sl@0
   649
		User::WaitForRequest(done);
sl@0
   650
sl@0
   651
		TRawEvent switchon;
sl@0
   652
		switchon.Set(TRawEvent::ESwitchOn);
sl@0
   653
		UserSvr::AddEvent(switchon);
sl@0
   654
		}
sl@0
   655
	else
sl@0
   656
		test.Printf(_L("Display On/Off not supported by HAL on this playform\n"));
sl@0
   657
sl@0
   658
	
sl@0
   659
	test.Next(_L("Check Display On using HAL"));
sl@0
   660
	displayState = EFalse;
sl@0
   661
	ret = HAL::Get(HAL::EDisplayState, displayState);
sl@0
   662
	test (KErrNone == ret);
sl@0
   663
	test (displayState!=EFalse);
sl@0
   664
sl@0
   665
sl@0
   666
// !!! Disable platform security tests until we get the new APIs
sl@0
   667
/*	
sl@0
   668
	test.Next(_L("Check if secure screen supported"));
sl@0
   669
	TInt secure = EFalse;
sl@0
   670
	ret = HAL::Get(HAL::ESecureDisplay, secure);
sl@0
   671
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
   672
	if (KErrNone == ret)
sl@0
   673
		{
sl@0
   674
		//get the secure address
sl@0
   675
		TInt addr = 0;
sl@0
   676
		ret = HAL::Get(HAL::ESecureDisplayMemoryAddress, addr);
sl@0
   677
		test (KErrNone == ret);
sl@0
   678
sl@0
   679
		//switch to secure screen
sl@0
   680
		ret = HAL::Set(HAL::ESecureDisplay, ETrue);
sl@0
   681
		test (KErrNone == ret);
sl@0
   682
		User::After(2000000);
sl@0
   683
sl@0
   684
		//switch to insecure screen
sl@0
   685
		ret = HAL::Set(HAL::ESecureDisplay, EFalse);
sl@0
   686
		test (KErrNone == ret);
sl@0
   687
		User::After(2000000);
sl@0
   688
sl@0
   689
		//switch to secure screen
sl@0
   690
		ret = HAL::Set(HAL::ESecureDisplay, ETrue);
sl@0
   691
		test (KErrNone == ret);
sl@0
   692
		User::After(2000000);
sl@0
   693
sl@0
   694
		//switch to insecure screen
sl@0
   695
		ret = HAL::Set(HAL::ESecureDisplay, EFalse);
sl@0
   696
		test (KErrNone == ret);
sl@0
   697
		}
sl@0
   698
	else
sl@0
   699
		test.Printf(_L("secure screen not supported on this platform\n"));
sl@0
   700
*/
sl@0
   701
sl@0
   702
	}
sl@0
   703
sl@0
   704
sl@0
   705
//the function above tests HAL APIs where no screen number is specified
sl@0
   706
//and implicitly screen 0 is assumed. This function runs only for additional
sl@0
   707
//screens if any (screen1, screen2 etc.)
sl@0
   708
//this uses the HAL APIs that take a screen number
sl@0
   709
LOCAL_C void RunTestsAdditionalScreens(TInt screen)
sl@0
   710
	{
sl@0
   711
	TInt ret = KErrNone;
sl@0
   712
	TInt HALArg;
sl@0
   713
	TInt saved = 0;
sl@0
   714
sl@0
   715
/*	BRIGHTNESS	*/
sl@0
   716
	
sl@0
   717
	TBool HALMaxBrightnessSupported = EFalse;
sl@0
   718
	TBool HALGetBrightnessSupported = EFalse;
sl@0
   719
	TBool HALSetBrightnessSupported = EFalse;
sl@0
   720
	
sl@0
   721
sl@0
   722
	test.Next(_L("Max Brightness using HAL"));
sl@0
   723
	TInt maxBrightness=-1;
sl@0
   724
	ret = HAL::Get(screen, HAL::EDisplayBrightnessMax, maxBrightness);
sl@0
   725
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   726
sl@0
   727
	if (KErrNone == ret)
sl@0
   728
		{
sl@0
   729
		HALMaxBrightnessSupported = ETrue;
sl@0
   730
		test.Printf(_L("Maximum brightness = %d\n"), maxBrightness);
sl@0
   731
		}
sl@0
   732
	else
sl@0
   733
		test.Printf(_L("Maximum brightness is NOT SUPPORTED by HAL\n"));
sl@0
   734
sl@0
   735
sl@0
   736
	test.Next(_L("Get Brightness using HAL"));
sl@0
   737
	HALArg = -1;
sl@0
   738
	ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
sl@0
   739
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   740
	if (KErrNone == ret)
sl@0
   741
		{
sl@0
   742
		test.Printf(_L("Brightness = %d\n"), HALArg);
sl@0
   743
		HALGetBrightnessSupported = ETrue;
sl@0
   744
		saved = HALArg;
sl@0
   745
		}
sl@0
   746
	else
sl@0
   747
		{
sl@0
   748
		test.Printf(_L("Get Brightness is NOT SUPPORTED by HAL\n"));
sl@0
   749
		}
sl@0
   750
sl@0
   751
	test.Next(_L("Test brightness is <= maxBrightness"));
sl@0
   752
	test(HALArg <= maxBrightness);
sl@0
   753
sl@0
   754
	test.Next(_L("Set Brightness using HAL"));
sl@0
   755
	ret = HAL::Set(screen, HAL::EDisplayBrightness, 0);
sl@0
   756
	test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
sl@0
   757
	if ((KErrNone == ret) || (KErrArgument == ret))
sl@0
   758
		HALSetBrightnessSupported = ETrue;
sl@0
   759
	else
sl@0
   760
		test.Printf(_L("Set brightness is NOT SUPPORTED by HAL\n"));
sl@0
   761
sl@0
   762
sl@0
   763
		
sl@0
   764
	//if any of the brightness funcs are supported, test they all are
sl@0
   765
	//we've already tested Ldd/HAL are giving same support
sl@0
   766
	if (HALSetBrightnessSupported && HALGetBrightnessSupported && HALMaxBrightnessSupported)
sl@0
   767
		{
sl@0
   768
		//all supported
sl@0
   769
		//do more comprehensive set/gets
sl@0
   770
		test.Next(_L("Set Brightness using HAL to saved value"));
sl@0
   771
		ret = HAL::Set(screen, HAL::EDisplayBrightness, saved);
sl@0
   772
		test (KErrNone == ret);
sl@0
   773
sl@0
   774
		test.Next(_L("Get Brightness using HAL"));
sl@0
   775
		HALArg = -1;
sl@0
   776
		ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
sl@0
   777
		test (KErrNone == ret);
sl@0
   778
		test (saved == HALArg);
sl@0
   779
	
sl@0
   780
		test.Next(_L("Set Brightness to the max using HAL"));
sl@0
   781
		ret = HAL::Set(screen, HAL::EDisplayBrightness, maxBrightness);
sl@0
   782
		test.Printf(_L("ret = %d maxbr = %d"),ret, maxBrightness);
sl@0
   783
		test (KErrNone == ret);
sl@0
   784
sl@0
   785
		test.Next(_L("Get Brightness using HAL"));
sl@0
   786
		HALArg = 0;
sl@0
   787
		ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
sl@0
   788
		test (KErrNone == ret);
sl@0
   789
		test (maxBrightness == HALArg);
sl@0
   790
sl@0
   791
		test.Next(_L("Set Brightness using HAL"));
sl@0
   792
		ret = HAL::Set(screen, HAL::EDisplayBrightness, saved);
sl@0
   793
		test (KErrNone == ret);
sl@0
   794
sl@0
   795
sl@0
   796
		//test some out of range values
sl@0
   797
		ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
sl@0
   798
		test (KErrNone == ret);
sl@0
   799
		saved = HALArg;
sl@0
   800
sl@0
   801
		test.Next(_L("Set Brightness too large using HAL"));
sl@0
   802
		ret = HAL::Set(screen, HAL::EDisplayBrightness, maxBrightness+1);
sl@0
   803
		test (KErrArgument == ret);
sl@0
   804
sl@0
   805
		test.Next(_L("Set Brightness too small using HAL"));
sl@0
   806
		ret = HAL::Set(screen, HAL::EDisplayBrightness, -1);
sl@0
   807
		test (KErrArgument == ret);
sl@0
   808
sl@0
   809
		}
sl@0
   810
		else	//check none are supported
sl@0
   811
			test(!(HALSetBrightnessSupported || HALGetBrightnessSupported || HALMaxBrightnessSupported));
sl@0
   812
sl@0
   813
sl@0
   814
/*	CONTRAST	*/
sl@0
   815
sl@0
   816
	TBool HALMaxContrastSupported = EFalse;
sl@0
   817
	TBool HALGetContrastSupported = EFalse;
sl@0
   818
	TBool HALSetContrastSupported = EFalse;
sl@0
   819
	
sl@0
   820
sl@0
   821
	test.Next(_L("Max Contrast using HAL"));
sl@0
   822
	TInt maxContrast=-1;
sl@0
   823
	ret = HAL::Get(screen, HAL::EDisplayContrastMax, maxContrast);
sl@0
   824
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   825
sl@0
   826
	if (KErrNone == ret)
sl@0
   827
		{
sl@0
   828
		HALMaxContrastSupported = ETrue;
sl@0
   829
		test.Printf(_L("Maximum Contrast = %d\n"), maxContrast);
sl@0
   830
		}
sl@0
   831
	else
sl@0
   832
		test.Printf(_L("Maximum Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   833
sl@0
   834
sl@0
   835
	test.Next(_L("Get Contrast using HAL"));
sl@0
   836
	HALArg = -1;
sl@0
   837
	ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
sl@0
   838
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   839
	if (KErrNone == ret)
sl@0
   840
		{
sl@0
   841
		test.Printf(_L("Contrast = %d\n"), HALArg);
sl@0
   842
		HALGetContrastSupported = ETrue;
sl@0
   843
		saved = HALArg;
sl@0
   844
		}
sl@0
   845
	else
sl@0
   846
		{
sl@0
   847
		test.Printf(_L("Get Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   848
		}
sl@0
   849
sl@0
   850
	test.Next(_L("Test contrast is <= maxcontrast"));
sl@0
   851
	test(HALArg <= maxContrast);
sl@0
   852
sl@0
   853
	test.Next(_L("Set Contrast using HAL"));
sl@0
   854
	ret = HAL::Set(screen, HAL::EDisplayContrast, 0);
sl@0
   855
	test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
sl@0
   856
	if ((KErrNone == ret) || (KErrArgument == ret))
sl@0
   857
		HALSetContrastSupported = ETrue;
sl@0
   858
	else
sl@0
   859
		test.Printf(_L("Set Contrast is NOT SUPPORTED by HAL\n"));
sl@0
   860
sl@0
   861
sl@0
   862
		
sl@0
   863
	//if any of the Contrast funcs are supported, test they all are
sl@0
   864
	//we've already tested Ldd/HAL are giving same support
sl@0
   865
	if (HALSetContrastSupported && HALGetContrastSupported && HALMaxContrastSupported)
sl@0
   866
		{
sl@0
   867
		//all supported
sl@0
   868
		//do more comprehensive set/gets
sl@0
   869
		test.Next(_L("Set Contrast using HAL to saved value"));
sl@0
   870
		ret = HAL::Set(screen, HAL::EDisplayContrast, saved);
sl@0
   871
		test (KErrNone == ret);
sl@0
   872
sl@0
   873
		test.Next(_L("Get Contrast using HAL"));
sl@0
   874
		HALArg = -1;
sl@0
   875
		ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
sl@0
   876
		test (KErrNone == ret);
sl@0
   877
		test (saved == HALArg);
sl@0
   878
	
sl@0
   879
		test.Next(_L("Set Contrast to the max using HAL"));
sl@0
   880
		ret = HAL::Set(screen, HAL::EDisplayContrast, maxContrast);
sl@0
   881
		test (KErrNone == ret);
sl@0
   882
sl@0
   883
		test.Next(_L("Get Contrast using HAL"));
sl@0
   884
		HALArg = 0;
sl@0
   885
		ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
sl@0
   886
		test (KErrNone == ret);
sl@0
   887
		test (maxContrast == HALArg);
sl@0
   888
sl@0
   889
		test.Next(_L("Set Contrast using HAL"));
sl@0
   890
		ret = HAL::Set(screen, HAL::EDisplayContrast, saved);
sl@0
   891
		test (KErrNone == ret);
sl@0
   892
sl@0
   893
sl@0
   894
		//test some out of range values
sl@0
   895
		ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
sl@0
   896
		test (KErrNone == ret);
sl@0
   897
		saved = HALArg;
sl@0
   898
sl@0
   899
		test.Next(_L("Set Contrast too large using HAL"));
sl@0
   900
		ret = HAL::Set(screen, HAL::EDisplayContrast, maxContrast+1);
sl@0
   901
		test (KErrArgument == ret);
sl@0
   902
sl@0
   903
		test.Next(_L("Set Contrast too small using HAL"));
sl@0
   904
		ret = HAL::Set(screen, HAL::EDisplayContrast, -1);
sl@0
   905
		test (KErrArgument == ret);
sl@0
   906
sl@0
   907
		}
sl@0
   908
		else	//check none are supported
sl@0
   909
			test(!(HALSetContrastSupported || HALGetContrastSupported || HALMaxContrastSupported));
sl@0
   910
sl@0
   911
		
sl@0
   912
		
sl@0
   913
/*	BACKLIGHT	*/
sl@0
   914
sl@0
   915
	TBool HALGetBacklightSupported = EFalse;
sl@0
   916
	TBool HALSetBacklightSupported = EFalse;
sl@0
   917
	TBool lightSupported = EFalse;
sl@0
   918
sl@0
   919
	test.Next(_L("check if backlight supported using HAL"));
sl@0
   920
	HALArg = -1;
sl@0
   921
	ret = HAL::Get(screen, HAL::EBacklight, lightSupported);
sl@0
   922
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   923
	test.Printf(_L("Backlight supported = %d"), lightSupported);
sl@0
   924
sl@0
   925
sl@0
   926
sl@0
   927
	test.Next(_L("Get Backlight state using HAL"));
sl@0
   928
	HALArg = -1;
sl@0
   929
	ret = HAL::Get(screen, HAL::EBacklightState, HALArg);
sl@0
   930
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   931
	if (KErrNone == ret)
sl@0
   932
		{
sl@0
   933
		HALGetBacklightSupported = ETrue;
sl@0
   934
		test.Printf(_L("Backlight is = %d from HAL\n"), HALArg);
sl@0
   935
		}
sl@0
   936
	else
sl@0
   937
		test.Printf(_L("Get Light is NOT SUPPORTED by HAL\n"));
sl@0
   938
sl@0
   939
sl@0
   940
	test.Next(_L("Set Backlight state using HAL"));
sl@0
   941
	HALArg = 0;
sl@0
   942
	ret = HAL::Set(screen, HAL::EBacklightState, HALArg);
sl@0
   943
	test ((KErrNone == ret) || (KErrNotSupported == ret));
sl@0
   944
	if (KErrNone == ret)
sl@0
   945
		{
sl@0
   946
		HALSetBacklightSupported = ETrue;
sl@0
   947
		test.Printf(_L("Backlight is set to = %d from HAL\n"), HALArg);
sl@0
   948
		}
sl@0
   949
	else
sl@0
   950
		test.Printf(_L("Set Light is NOT SUPPORTED by HAL\n"));
sl@0
   951
sl@0
   952
sl@0
   953
sl@0
   954
sl@0
   955
	if 	(HALGetBacklightSupported && HALSetBacklightSupported)
sl@0
   956
		{
sl@0
   957
sl@0
   958
		test.Next(_L("Get Backlight state using HAL (should be off)"));
sl@0
   959
		HALArg = -1;
sl@0
   960
		ret = HAL::Get(screen, HAL::EBacklightState, HALArg);
sl@0
   961
		test (KErrNone == ret);
sl@0
   962
		test (0 == HALArg);
sl@0
   963
sl@0
   964
		test.Next(_L("Set Backlight state to on using HAL"));
sl@0
   965
		ret = HAL::Set(screen, HAL::EBacklightState, 1);
sl@0
   966
		test (KErrNone == ret);
sl@0
   967
sl@0
   968
		}
sl@0
   969
	else
sl@0
   970
		test (!HALGetBacklightSupported == !HALSetBacklightSupported);
sl@0
   971
sl@0
   972
sl@0
   973
	/* maximum display colors*/
sl@0
   974
	test.Next(_L("Display Colors"));
sl@0
   975
	ret = HAL::Get(screen, HAL::EDisplayColors, HALArg);
sl@0
   976
	test (KErrNone == ret);
sl@0
   977
sl@0
   978
	
sl@0
   979
	/*  DISPLAY MODE */
sl@0
   980
	test.Next(_L("Display Modes"));
sl@0
   981
	TInt totalModes;
sl@0
   982
	ret = HAL::Get(screen, HAL::EDisplayNumModes, totalModes);
sl@0
   983
	test (KErrNone == ret);
sl@0
   984
sl@0
   985
	TInt displayMode;
sl@0
   986
	ret = HAL::Get(screen, HAL::EDisplayMode, displayMode);
sl@0
   987
	test (KErrNone == ret);
sl@0
   988
	
sl@0
   989
	TInt val;
sl@0
   990
	test.Next(_L("Get DisplayXPixels using HAL"));
sl@0
   991
	ret = HAL::Get(screen, HAL::EDisplayXPixels, val);
sl@0
   992
	test (KErrNone == ret);
sl@0
   993
sl@0
   994
	test.Next(_L("Get DisplayYPixels using HAL"));
sl@0
   995
	ret = HAL::Get(screen, HAL::EDisplayYPixels, val);
sl@0
   996
	test (KErrNone == ret);
sl@0
   997
sl@0
   998
	TInt xtwips;
sl@0
   999
	test.Next(_L("Get DisplayXTwips using HAL"));
sl@0
  1000
	ret = HAL::Get(screen, HAL::EDisplayXTwips, xtwips);
sl@0
  1001
	test (KErrNone == ret);
sl@0
  1002
sl@0
  1003
	TInt ytwips;
sl@0
  1004
	test.Next(_L("Get DisplayYTwips using HAL"));
sl@0
  1005
	ret = HAL::Get(screen, HAL::EDisplayYTwips, ytwips);
sl@0
  1006
	test (KErrNone == ret);
sl@0
  1007
sl@0
  1008
	TInt vaddr;
sl@0
  1009
	test.Next(_L("Get video address using HAL"));
sl@0
  1010
	ret = HAL::Get(screen, HAL::EDisplayMemoryAddress, vaddr);
sl@0
  1011
	test (KErrNone == ret);
sl@0
  1012
sl@0
  1013
sl@0
  1014
/* BITS PER PIXEL */
sl@0
  1015
sl@0
  1016
	test.Next(_L("Get Bits per pixel for current display mode using HAL"));
sl@0
  1017
sl@0
  1018
	HALArg = displayMode;
sl@0
  1019
	ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
sl@0
  1020
	test (KErrNone == ret);
sl@0
  1021
sl@0
  1022
sl@0
  1023
	test.Next(_L("Get Bits per pixel with illegal mode using HAL"));
sl@0
  1024
	HALArg = -1;
sl@0
  1025
	ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
sl@0
  1026
	test (KErrArgument == ret);
sl@0
  1027
sl@0
  1028
	HALArg = totalModes;
sl@0
  1029
	ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
sl@0
  1030
	test (KErrArgument == ret);
sl@0
  1031
sl@0
  1032
	
sl@0
  1033
/*DISPLAY MODES*/
sl@0
  1034
	test.Next(_L("loop through the display modes getting the info"));
sl@0
  1035
sl@0
  1036
	TInt count;
sl@0
  1037
sl@0
  1038
	TInt fourBppMode = -1;
sl@0
  1039
sl@0
  1040
	for (count = 0; count < totalModes; count++)
sl@0
  1041
		{
sl@0
  1042
sl@0
  1043
		test.Next(_L("Offset To first pixel"));
sl@0
  1044
		HALArg = count;
sl@0
  1045
		ret = HAL::Get(screen, HAL::EDisplayOffsetToFirstPixel, HALArg);
sl@0
  1046
		test (KErrNone == ret);
sl@0
  1047
		test (HALArg >= 0);
sl@0
  1048
sl@0
  1049
		test.Next(_L("Test Offset between lines is > 0"));
sl@0
  1050
		HALArg = count;
sl@0
  1051
		ret = HAL::Get(screen, HAL::EDisplayOffsetBetweenLines, HALArg);
sl@0
  1052
		test (KErrNone == ret);
sl@0
  1053
#ifndef __WINS__
sl@0
  1054
		test (HALArg > 0);
sl@0
  1055
#else		
sl@0
  1056
		test.Printf(_L("WINS can return 0 here as it doesn't handle the buffer itself, target hardware must return > 0"));
sl@0
  1057
		test (HALArg >= 0);
sl@0
  1058
#endif
sl@0
  1059
		test.Next(_L("is display mono"));
sl@0
  1060
		HALArg = count;
sl@0
  1061
		ret = HAL::Get(screen, HAL::EDisplayIsMono, HALArg);
sl@0
  1062
		test (KErrNone == ret);
sl@0
  1063
		
sl@0
  1064
		test.Next(_L("is display palettized"));
sl@0
  1065
		HALArg = count;
sl@0
  1066
		ret = HAL::Get(screen, HAL::EDisplayIsPalettized, HALArg);
sl@0
  1067
		test (KErrNone == ret);
sl@0
  1068
sl@0
  1069
		test.Next(_L("bits per pixel"));
sl@0
  1070
		HALArg = count;
sl@0
  1071
		ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
sl@0
  1072
		test (KErrNone == ret);
sl@0
  1073
sl@0
  1074
		if (HALArg == 4)
sl@0
  1075
			fourBppMode = count;
sl@0
  1076
sl@0
  1077
		}
sl@0
  1078
sl@0
  1079
sl@0
  1080
	test.Next(_L("switch display modes must be supported if > 1 display mode"));
sl@0
  1081
sl@0
  1082
	TInt oldMode = displayMode;
sl@0
  1083
#ifndef __X86__
sl@0
  1084
	if (totalModes > 1)
sl@0
  1085
		{
sl@0
  1086
		HALArg = displayMode;
sl@0
  1087
		ret = HAL::Set(screen, HAL::EDisplayMode, HALArg);
sl@0
  1088
		test.Printf(_L("ret is %d dmode is %d\n"),ret, HALArg);
sl@0
  1089
		test (KErrNone == ret);
sl@0
  1090
sl@0
  1091
		ret = HAL::Get(screen, HAL::EDisplayMode, HALArg);
sl@0
  1092
		test (KErrNone == ret);
sl@0
  1093
		test (HALArg == displayMode);
sl@0
  1094
sl@0
  1095
		}
sl@0
  1096
#endif
sl@0
  1097
	for (count = 0; count < totalModes; count++)
sl@0
  1098
		{
sl@0
  1099
			
sl@0
  1100
#ifndef __X86__
sl@0
  1101
		if (totalModes > 1)  //we must support mode change
sl@0
  1102
			{
sl@0
  1103
			test.Printf(_L("Setting Display Mode to %d\n"), count);
sl@0
  1104
sl@0
  1105
			ret = HAL::Set(screen, HAL::EDisplayMode, count);
sl@0
  1106
			test (KErrNone == ret);
sl@0
  1107
sl@0
  1108
			ret = HAL::Get(screen, HAL::EDisplayMode, HALArg);
sl@0
  1109
			test (KErrNone == ret);
sl@0
  1110
			test (HALArg == count);
sl@0
  1111
			}
sl@0
  1112
#endif
sl@0
  1113
sl@0
  1114
		/* PALETTE */
sl@0
  1115
sl@0
  1116
		//get the palette entries
sl@0
  1117
		//set a few to something else
sl@0
  1118
		//set them again
sl@0
  1119
sl@0
  1120
		TInt palettized = count;
sl@0
  1121
		test.Next(_L("Get if we are using a palette using HAL"));
sl@0
  1122
		ret = HAL::Get(screen, HAL::EDisplayIsPalettized, palettized);
sl@0
  1123
		test (KErrNone == ret);
sl@0
  1124
sl@0
  1125
		if (palettized)
sl@0
  1126
			{
sl@0
  1127
			HALArg = count;
sl@0
  1128
			ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
sl@0
  1129
			test (KErrNone == ret);
sl@0
  1130
			test.Printf(_L("Bitsperpixel is  %d\n"),HALArg);
sl@0
  1131
			test (HALArg <= 8);
sl@0
  1132
sl@0
  1133
			TInt max = (1 << HALArg) - 1;
sl@0
  1134
			test.Printf(_L("number of palette entries is %d\n"),max);
sl@0
  1135
			
sl@0
  1136
			test.Next(_L("Get legal Palette entries using HAL and driver in loop"));
sl@0
  1137
			for (TInt x = 0; x <= max; x++)
sl@0
  1138
				{
sl@0
  1139
				HALArg = x;
sl@0
  1140
				ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1141
				test.Printf(_L("getting entry %d, ret is %d\n"),x, ret);
sl@0
  1142
				test (KErrNone == ret);
sl@0
  1143
sl@0
  1144
				}
sl@0
  1145
sl@0
  1146
sl@0
  1147
			//try a few sets
sl@0
  1148
			TInt saved;
sl@0
  1149
sl@0
  1150
			test.Next(_L("Set Palette entry 0 to red using HAL"));
sl@0
  1151
sl@0
  1152
			saved = 0;
sl@0
  1153
			ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, saved);
sl@0
  1154
			test (KErrNone == ret);
sl@0
  1155
sl@0
  1156
			HALArg = 0xFF0000;
sl@0
  1157
			ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1158
			test (KErrNone == ret || KErrNotSupported == ret);
sl@0
  1159
			
sl@0
  1160
			if (KErrNone == ret)
sl@0
  1161
				{
sl@0
  1162
				HALArg = 0;
sl@0
  1163
				ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1164
				test (KErrNone == ret);
sl@0
  1165
				test (HALArg = 0xFF0000);
sl@0
  1166
sl@0
  1167
				ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, saved);
sl@0
  1168
				test (KErrNone == ret);
sl@0
  1169
sl@0
  1170
sl@0
  1171
				HALArg = 1;
sl@0
  1172
				ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1173
				test (KErrNone == ret);
sl@0
  1174
sl@0
  1175
sl@0
  1176
				HALArg = (7 << 24) || 0xFFFF00;
sl@0
  1177
				ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1178
				test (KErrNone == ret);
sl@0
  1179
sl@0
  1180
			
sl@0
  1181
				}
sl@0
  1182
				
sl@0
  1183
sl@0
  1184
			
sl@0
  1185
			HALArg = count;
sl@0
  1186
			test (KErrNone == HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg));
sl@0
  1187
sl@0
  1188
			if (4 == HALArg)
sl@0
  1189
				{
sl@0
  1190
				test.Next(_L("Get Illegal palette entry using HAL"));
sl@0
  1191
				HALArg = 18;
sl@0
  1192
				ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1193
				test (KErrArgument == ret);
sl@0
  1194
sl@0
  1195
sl@0
  1196
				test.Next(_L("Set Illegal palette entry using HAL"));
sl@0
  1197
				HALArg = 0x12 << 24 ;
sl@0
  1198
				ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1199
				test (KErrArgument == ret);
sl@0
  1200
				}
sl@0
  1201
		
sl@0
  1202
			}
sl@0
  1203
		else
sl@0
  1204
			{
sl@0
  1205
			//not palettized
sl@0
  1206
			test.Next(_L("Get palette entry using HAL - should fail"));
sl@0
  1207
			HALArg = 0;
sl@0
  1208
			ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
sl@0
  1209
			test (KErrNotSupported == ret);
sl@0
  1210
			}
sl@0
  1211
sl@0
  1212
	
sl@0
  1213
		}		
sl@0
  1214
sl@0
  1215
#ifndef __X86__
sl@0
  1216
	if (totalModes > 1)  //we must support mode change
sl@0
  1217
		{
sl@0
  1218
		ret = HAL::Set(screen, HAL::EDisplayMode, oldMode);
sl@0
  1219
		test (KErrNone == ret);
sl@0
  1220
		}
sl@0
  1221
#endif
sl@0
  1222
	
sl@0
  1223
	
sl@0
  1224
	
sl@0
  1225
	
sl@0
  1226
	/*	DISPLAY ON/OFF	*/
sl@0
  1227
sl@0
  1228
	
sl@0
  1229
	// get current display state
sl@0
  1230
	TInt curDisplayState;
sl@0
  1231
	ret = HAL::Get(screen, HAL::EDisplayState, curDisplayState);
sl@0
  1232
	test (KErrNone == ret);
sl@0
  1233
sl@0
  1234
	test.Next(_L("Turn Display on using HAL"));
sl@0
  1235
	ret = HAL::Set(screen, HAL::EDisplayState, 1);
sl@0
  1236
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
  1237
sl@0
  1238
	TInt displayState;
sl@0
  1239
sl@0
  1240
	test.Next(_L("Check Display is on using HAL"));
sl@0
  1241
	displayState = EFalse;
sl@0
  1242
	ret = HAL::Get(screen, HAL::EDisplayState, displayState);
sl@0
  1243
	test (KErrNone == ret);
sl@0
  1244
	test (displayState!=EFalse);
sl@0
  1245
sl@0
  1246
	test.Next(_L("Turn Display Off using HAL"));
sl@0
  1247
	ret = HAL::Set(screen, HAL::EDisplayState, 0);
sl@0
  1248
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
  1249
sl@0
  1250
	if (KErrNone == ret)
sl@0
  1251
		{
sl@0
  1252
		test.Next(_L("Check Display is off using HAL"));
sl@0
  1253
		displayState = ETrue;
sl@0
  1254
		ret = HAL::Get(screen, HAL::EDisplayState, displayState);
sl@0
  1255
		test (KErrNone == ret);
sl@0
  1256
		test (displayState==EFalse);
sl@0
  1257
sl@0
  1258
	//	test.Next(_L("Display On using HAL"));
sl@0
  1259
	//	ret = HAL::Set(screen, HAL::EDisplayState, 1);
sl@0
  1260
	//	test (KErrNotSupported == ret);
sl@0
  1261
		
sl@0
  1262
sl@0
  1263
	//need some way of turning on the display!
sl@0
  1264
		RTimer timer;
sl@0
  1265
		test(timer.CreateLocal()==KErrNone);
sl@0
  1266
		TTime now;
sl@0
  1267
		now.HomeTime();
sl@0
  1268
		TTime wakeup;
sl@0
  1269
		wakeup=now+TTimeIntervalSeconds(10);
sl@0
  1270
		TRequestStatus done;
sl@0
  1271
		timer.At(done,wakeup);
sl@0
  1272
sl@0
  1273
		UserHal::SwitchOff();
sl@0
  1274
		User::WaitForRequest(done);
sl@0
  1275
sl@0
  1276
		TRawEvent switchon;
sl@0
  1277
		switchon.Set(TRawEvent::ESwitchOn);
sl@0
  1278
		UserSvr::AddEvent(switchon);
sl@0
  1279
		}
sl@0
  1280
	else
sl@0
  1281
		test.Printf(_L("Display On/Off not supported by HAL on this playform\n"));
sl@0
  1282
sl@0
  1283
	// restore the original display state
sl@0
  1284
	ret = HAL::Set(screen, HAL::EDisplayState, curDisplayState);
sl@0
  1285
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
  1286
sl@0
  1287
sl@0
  1288
// !!! Disable platform security tests until we get the new APIs
sl@0
  1289
/*	
sl@0
  1290
	test.Next(_L("Check if secure screen supported"));
sl@0
  1291
	TInt secure = EFalse;
sl@0
  1292
	ret = HAL::Get(screen, HAL::ESecureDisplay, secure);
sl@0
  1293
	test (KErrNone == ret || KErrNotSupported == ret);
sl@0
  1294
	if (KErrNone == ret)
sl@0
  1295
		{
sl@0
  1296
		//get the secure address
sl@0
  1297
		TInt addr = 0;
sl@0
  1298
		ret = HAL::Get(screen, HAL::ESecureDisplayMemoryAddress, addr);
sl@0
  1299
		test (KErrNone == ret);
sl@0
  1300
sl@0
  1301
		//switch to secure screen
sl@0
  1302
		ret = HAL::Set(screen, HAL::ESecureDisplay, ETrue);
sl@0
  1303
		test (KErrNone == ret);
sl@0
  1304
		User::After(2000000);
sl@0
  1305
sl@0
  1306
		//switch to insecure screen
sl@0
  1307
		ret = HAL::Set(screen, HAL::ESecureDisplay, EFalse);
sl@0
  1308
		test (KErrNone == ret);
sl@0
  1309
		User::After(2000000);
sl@0
  1310
sl@0
  1311
		//switch to secure screen
sl@0
  1312
		ret = HAL::Set(screen, HAL::ESecureDisplay, ETrue);
sl@0
  1313
		test (KErrNone == ret);
sl@0
  1314
		User::After(2000000);
sl@0
  1315
sl@0
  1316
		//switch to insecure screen
sl@0
  1317
		ret = HAL::Set(screen, HAL::ESecureDisplay, EFalse);
sl@0
  1318
		test (KErrNone == ret);
sl@0
  1319
		}
sl@0
  1320
	else
sl@0
  1321
		test.Printf(_L("secure screen not supported on this platform\n"));
sl@0
  1322
*/
sl@0
  1323
sl@0
  1324
	}
sl@0
  1325
sl@0
  1326
sl@0
  1327
GLDEF_C TInt E32Main()
sl@0
  1328
//
sl@0
  1329
//
sl@0
  1330
    {
sl@0
  1331
sl@0
  1332
	test.Title();
sl@0
  1333
//
sl@0
  1334
#if defined(__EPOC32__) && defined(__CPU_X86)
sl@0
  1335
	test.Printf(_L("Doesn't run on X86\n"));
sl@0
  1336
#else
sl@0
  1337
sl@0
  1338
	test.Start(_L("Testing Video extension"));
sl@0
  1339
sl@0
  1340
	RunTests();
sl@0
  1341
	TInt screens=1;	// assume that we have at least 1 screen in case the HAL attr isn't supported
sl@0
  1342
	TInt ret=HAL::Get(HAL::EDisplayNumberOfScreens, screens);
sl@0
  1343
	test((ret==KErrNone) || (ret==KErrNotSupported));
sl@0
  1344
sl@0
  1345
	TInt i;
sl@0
  1346
	for(i=1;i<screens;i++)
sl@0
  1347
		RunTestsAdditionalScreens(i);
sl@0
  1348
sl@0
  1349
	test.Next(_L("Test more devices than the kernel can handle"));
sl@0
  1350
	//this constant should have a value > KMaxHalEntries (defined in the kernel)
sl@0
  1351
	const TInt KMoreThanKernelAllocates=10;
sl@0
  1352
	for(i=screens;i<KMoreThanKernelAllocates;i++)
sl@0
  1353
		{
sl@0
  1354
		TInt val;
sl@0
  1355
		test.Next(_L("Get DisplayXPixels using HAL"));
sl@0
  1356
		ret = HAL::Get(i, HAL::EDisplayXPixels, val);
sl@0
  1357
		test (KErrNotSupported == ret);
sl@0
  1358
sl@0
  1359
		test.Next(_L("Get DisplayYPixels using HAL"));
sl@0
  1360
		ret = HAL::Get(i, HAL::EDisplayYPixels, val);
sl@0
  1361
		test (KErrNotSupported == ret);
sl@0
  1362
sl@0
  1363
		TInt xtwips;
sl@0
  1364
		test.Next(_L("Get DisplayXTwips using HAL"));
sl@0
  1365
		ret = HAL::Get(i, HAL::EDisplayXTwips, xtwips);
sl@0
  1366
		test (KErrNotSupported == ret);
sl@0
  1367
sl@0
  1368
		TInt ytwips;
sl@0
  1369
		test.Next(_L("Get DisplayYTwips using HAL"));
sl@0
  1370
		ret = HAL::Get(i, HAL::EDisplayYTwips, ytwips);
sl@0
  1371
		test (KErrNotSupported == ret);
sl@0
  1372
sl@0
  1373
		TInt vaddr;
sl@0
  1374
		test.Next(_L("Get video address using HAL"));
sl@0
  1375
		ret = HAL::Get(i, HAL::EDisplayMemoryAddress, vaddr);
sl@0
  1376
		test (KErrNotSupported == ret);
sl@0
  1377
		}
sl@0
  1378
sl@0
  1379
	test.Next(_L("Test HAL::GetAll"));
sl@0
  1380
	TInt numEntries;
sl@0
  1381
	HAL::SEntry* entries;
sl@0
  1382
	ret=HAL::GetAll(numEntries, entries);
sl@0
  1383
	test(ret==KErrNone);
sl@0
  1384
sl@0
  1385
	test(numEntries==screens*(TInt)HAL::ENumHalAttributes);
sl@0
  1386
sl@0
  1387
	User::Free(entries);
sl@0
  1388
sl@0
  1389
	test.Next(_L("Test TRawEvent for multiple devices (screens)"));
sl@0
  1390
sl@0
  1391
	TRawEvent event1;
sl@0
  1392
	test(event1.Type()==0);
sl@0
  1393
	test(event1.DeviceNumber()==KUndefinedDeviceNumber);
sl@0
  1394
sl@0
  1395
	event1.SetDeviceNumber(0);
sl@0
  1396
	test(event1.DeviceNumber()==0);
sl@0
  1397
sl@0
  1398
	event1.SetDeviceNumber(KUndefinedDeviceNumber);
sl@0
  1399
	test(event1.DeviceNumber()==KUndefinedDeviceNumber);
sl@0
  1400
sl@0
  1401
	test(event1.Type()==0);
sl@0
  1402
sl@0
  1403
	event1.Set(TRawEvent::EKeyDown);
sl@0
  1404
	test(event1.Type()==TRawEvent::EKeyDown);
sl@0
  1405
sl@0
  1406
	event1.Set(TRawEvent::EKeyUp,10);
sl@0
  1407
	test(event1.Type()==TRawEvent::EKeyUp);
sl@0
  1408
sl@0
  1409
	event1.Set(TRawEvent::EKeyDown,10,10);
sl@0
  1410
	test(event1.Type()==TRawEvent::EKeyDown);
sl@0
  1411
sl@0
  1412
	test.End();
sl@0
  1413
	test.Close();
sl@0
  1414
sl@0
  1415
#endif
sl@0
  1416
sl@0
  1417
	return KErrNone;
sl@0
  1418
    }
sl@0
  1419