--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kerneltest/e32test/video/t_video.cpp Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,1419 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Overview:
+// Test the video driver kernel extension
+// API Information:
+// HAL, UserSvr
+// Details:
+// - Get and report the value for brightness & max brightness. Adjust
+// the brightness. Verify results are as expected.
+// - Get and report the value for contrast & max contrast. Adjust the
+// contrast. Verify results are as expected.
+// - Get and set backlight status, verify results.
+// - Get the number of display modes and the current display mode.
+// - Get screen information for current display mode.
+// - Get Bits per pixel for current display mode, for an illegal mode
+// and for all modes.
+// - Switch display modes and verify results are as expected.
+// - Get and set palette entries, verify the results.
+// - Turn the display on and off.
+// - If additional screens are supported, test each screen as above.
+// - Test more devices than the kernel supports, verify the results.
+// Platforms/Drives/Compatibility:
+// All.
+// Assumptions/Requirement/Pre-requisites:
+// Failures and causes:
+// Base Port information:
+//
+//
+
+#include <e32test.h>
+#include <videodriver.h>
+#include <hal.h>
+#include <e32svr.h>
+
+LOCAL_D RTest test(_L("T_VIDEO"));
+
+LOCAL_C void RunTests(void);
+
+#ifndef __WINS__
+#define DUMP(x) test.Printf(_L(#x"= %d =0x%08x\n"), x, x)
+#endif
+
+LOCAL_C void RunTests(void)
+ {
+ TInt ret = KErrNone;
+ TInt HALArg;
+ TInt saved = 0;
+
+/* BRIGHTNESS */
+
+ TBool HALMaxBrightnessSupported = EFalse;
+ TBool HALGetBrightnessSupported = EFalse;
+ TBool HALSetBrightnessSupported = EFalse;
+
+ test.Next(_L("Max Brightness using HAL"));
+ TInt maxBrightness=-1;
+ ret = HAL::Get(HAL::EDisplayBrightnessMax, maxBrightness);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+
+ if (KErrNone == ret)
+ {
+ HALMaxBrightnessSupported = ETrue;
+ test.Printf(_L("Maximum brightness = %d\n"), maxBrightness);
+ }
+ else
+ test.Printf(_L("Maximum brightness is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ test.Printf(_L("Brightness = %d\n"), HALArg);
+ HALGetBrightnessSupported = ETrue;
+ saved = HALArg;
+ }
+ else
+ {
+ test.Printf(_L("Get Brightness is NOT SUPPORTED by HAL\n"));
+ }
+
+ test.Next(_L("Test brightness is <= maxBrightness"));
+ test(HALArg <= maxBrightness);
+
+ test.Next(_L("Set Brightness using HAL"));
+ ret = HAL::Set(HAL::EDisplayBrightness, 0);
+ test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
+ if ((KErrNone == ret) || (KErrArgument == ret))
+ HALSetBrightnessSupported = ETrue;
+ else
+ test.Printf(_L("Set brightness is NOT SUPPORTED by HAL\n"));
+
+
+
+ //if any of the brightness funcs are supported, test they all are
+ //we've already tested Ldd/HAL are giving same support
+ if (HALSetBrightnessSupported && HALGetBrightnessSupported && HALMaxBrightnessSupported)
+ {
+ //all supported
+ //do more comprehensive set/gets
+ test.Next(_L("Set Brightness using HAL to saved value"));
+ ret = HAL::Set(HAL::EDisplayBrightness, saved);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ test (saved == HALArg);
+
+ test.Next(_L("Set Brightness to the max using HAL"));
+ ret = HAL::Set(HAL::EDisplayBrightness, maxBrightness);
+ test.Printf(_L("ret = %d maxbr = %d"),ret, maxBrightness);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = 0;
+ ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ test (maxBrightness == HALArg);
+
+ test.Next(_L("Set Brightness using HAL"));
+ ret = HAL::Set(HAL::EDisplayBrightness, saved);
+ test (KErrNone == ret);
+
+
+ //test some out of range values
+ ret = HAL::Get(HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ saved = HALArg;
+
+ test.Next(_L("Set Brightness too large using HAL"));
+ ret = HAL::Set(HAL::EDisplayBrightness, maxBrightness+1);
+ test (KErrArgument == ret);
+
+ test.Next(_L("Set Brightness too small using HAL"));
+ ret = HAL::Set(HAL::EDisplayBrightness, -1);
+ test (KErrArgument == ret);
+
+ }
+ else //check none are supported
+ test(!(HALSetBrightnessSupported || HALGetBrightnessSupported || HALMaxBrightnessSupported));
+
+
+/* CONTRAST */
+
+ TBool HALMaxContrastSupported = EFalse;
+ TBool HALGetContrastSupported = EFalse;
+ TBool HALSetContrastSupported = EFalse;
+
+
+ test.Next(_L("Max Contrast using HAL"));
+ TInt maxContrast=-1;
+ ret = HAL::Get(HAL::EDisplayContrastMax, maxContrast);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+
+ if (KErrNone == ret)
+ {
+ HALMaxContrastSupported = ETrue;
+ test.Printf(_L("Maximum Contrast = %d\n"), maxContrast);
+ }
+ else
+ test.Printf(_L("Maximum Contrast is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EDisplayContrast, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ test.Printf(_L("Contrast = %d\n"), HALArg);
+ HALGetContrastSupported = ETrue;
+ saved = HALArg;
+ }
+ else
+ {
+ test.Printf(_L("Get Contrast is NOT SUPPORTED by HAL\n"));
+ }
+
+ test.Next(_L("Test contrast is <= maxcontrast"));
+ test(HALArg <= maxContrast);
+
+ test.Next(_L("Set Contrast using HAL"));
+ ret = HAL::Set(HAL::EDisplayContrast, 0);
+ test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
+ if ((KErrNone == ret) || (KErrArgument == ret))
+ HALSetContrastSupported = ETrue;
+ else
+ test.Printf(_L("Set Contrast is NOT SUPPORTED by HAL\n"));
+
+
+
+ //if any of the Contrast funcs are supported, test they all are
+ //we've already tested Ldd/HAL are giving same support
+ if (HALSetContrastSupported && HALGetContrastSupported && HALMaxContrastSupported)
+ {
+ //all supported
+ //do more comprehensive set/gets
+ test.Next(_L("Set Contrast using HAL to saved value"));
+ ret = HAL::Set(HAL::EDisplayContrast, saved);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ test (saved == HALArg);
+
+ test.Next(_L("Set Contrast to the max using HAL"));
+ ret = HAL::Set(HAL::EDisplayContrast, maxContrast);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = 0;
+ ret = HAL::Get(HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ test (maxContrast == HALArg);
+
+ test.Next(_L("Set Contrast using HAL"));
+ ret = HAL::Set(HAL::EDisplayContrast, saved);
+ test (KErrNone == ret);
+
+
+ //test some out of range values
+ ret = HAL::Get(HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ saved = HALArg;
+
+ test.Next(_L("Set Contrast too large using HAL"));
+ ret = HAL::Set(HAL::EDisplayContrast, maxContrast+1);
+ test (KErrArgument == ret);
+
+ test.Next(_L("Set Contrast too small using HAL"));
+ ret = HAL::Set(HAL::EDisplayContrast, -1);
+ test (KErrArgument == ret);
+
+ }
+ else //check none are supported
+ test(!(HALSetContrastSupported || HALGetContrastSupported || HALMaxContrastSupported));
+
+
+
+/* BACKLIGHT */
+
+ TBool HALGetBacklightSupported = EFalse;
+ TBool HALSetBacklightSupported = EFalse;
+ TBool lightSupported = EFalse;
+
+ test.Next(_L("check if backlight supported using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EBacklight, lightSupported);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ test.Printf(_L("Backlight supported = %d"), lightSupported);
+
+
+
+ test.Next(_L("Get Backlight state using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EBacklightState, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ HALGetBacklightSupported = ETrue;
+ test.Printf(_L("Backlight is = %d from HAL\n"), HALArg);
+ }
+ else
+ test.Printf(_L("Get Light is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Set Backlight state using HAL"));
+ HALArg = 0;
+ ret = HAL::Set(HAL::EBacklightState, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ HALSetBacklightSupported = ETrue;
+ test.Printf(_L("Backlight is set to = %d from HAL\n"), HALArg);
+ }
+ else
+ test.Printf(_L("Set Light is NOT SUPPORTED by HAL\n"));
+
+
+
+
+ if (HALGetBacklightSupported && HALSetBacklightSupported)
+ {
+
+ test.Next(_L("Get Backlight state using HAL (should be off)"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EBacklightState, HALArg);
+ test (KErrNone == ret);
+ test (0 == HALArg);
+
+ test.Next(_L("Set Backlight state to on using HAL"));
+ ret = HAL::Set(HAL::EBacklightState, 1);
+ test (KErrNone == ret);
+
+ }
+ else
+ test (!HALGetBacklightSupported == !HALSetBacklightSupported);
+
+
+ /* maximum display colors*/
+ test.Next(_L("Display Colors"));
+ ret = HAL::Get(HAL::EDisplayColors, HALArg);
+ test (KErrNone == ret);
+
+
+ /* DISPLAY MODE */
+ test.Next(_L("Display Modes"));
+ TInt totalModes;
+ ret = HAL::Get(HAL::EDisplayNumModes, totalModes);
+ test (KErrNone == ret);
+
+ TInt displayMode;
+ ret = HAL::Get(HAL::EDisplayMode, displayMode);
+ test (KErrNone == ret);
+
+
+
+ /* SCREEN INFORMATION*/
+
+ test.Next(_L("Get Screen Info for current mode using driver"));
+
+
+ test.Next(_L("Get screen info using usersvr"));
+ TScreenInfoV01 screenInfo;
+ TPckg<TScreenInfoV01> sI(screenInfo);
+ UserSvr::ScreenInfo(sI);
+ test (screenInfo.iScreenAddressValid != screenInfo.iWindowHandleValid);
+ if (screenInfo.iScreenAddressValid)
+ test (screenInfo.iScreenAddress != 0);
+ if (screenInfo.iWindowHandleValid)
+ test (screenInfo.iWindowHandle != 0);
+
+
+ TInt val;
+ test.Next(_L("Get DisplayXPixels using HAL"));
+ ret = HAL::Get(HAL::EDisplayXPixels, val);
+ test (KErrNone == ret);
+ test (val == screenInfo.iScreenSize.iWidth);
+
+ test.Next(_L("Get DisplayYPixels using HAL"));
+ ret = HAL::Get(HAL::EDisplayYPixels, val);
+ test (KErrNone == ret);
+ test (val == screenInfo.iScreenSize.iHeight);
+
+ TInt xtwips;
+ test.Next(_L("Get DisplayXTwips using HAL"));
+ ret = HAL::Get(HAL::EDisplayXTwips, xtwips);
+ test (KErrNone == ret);
+
+ TInt ytwips;
+ test.Next(_L("Get DisplayYTwips using HAL"));
+ ret = HAL::Get(HAL::EDisplayYTwips, ytwips);
+ test (KErrNone == ret);
+
+ TInt vaddr;
+ test.Next(_L("Get video address using HAL"));
+ ret = HAL::Get(HAL::EDisplayMemoryAddress, vaddr);
+ test (KErrNone == ret);
+#ifndef __WINS__
+ test (vaddr == (TInt)screenInfo.iScreenAddress);
+#else
+ test (vaddr == (TInt)screenInfo.iWindowHandle);
+#endif
+
+ test.Next(_L("Use machine info"));
+
+ TMachineInfoV1 mi;
+ TMachineInfoV1Buf mib;
+
+ UserHal::MachineInfo(mib);
+ mi = mib();
+
+ 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);
+ test.Printf(_L("xtwips = %d, ytwips = %d, iWidth = %d, iHeight = %d\n"),xtwips, ytwips, mi.iPhysicalScreenSize.iWidth, mi.iPhysicalScreenSize.iHeight);
+
+ test (screenInfo.iScreenSize.iWidth == mi.iDisplaySizeInPixels.iWidth);
+ test (screenInfo.iScreenSize.iHeight == mi.iDisplaySizeInPixels.iHeight);
+ test (xtwips == mi.iPhysicalScreenSize.iWidth);
+ test (ytwips == mi.iPhysicalScreenSize.iHeight);
+
+
+/* BITS PER PIXEL */
+
+ test.Next(_L("Get Bits per pixel for current display mode using HAL"));
+
+ HALArg = displayMode;
+ ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+
+
+ test.Next(_L("Get Bits per pixel with illegal mode using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrArgument == ret);
+
+ HALArg = totalModes;
+ ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrArgument == ret);
+
+
+/*DISPLAY MODES*/
+ test.Next(_L("loop through the display modes getting the info"));
+
+ TInt count;
+
+ TInt fourBppMode = -1;
+
+ for (count = 0; count < totalModes; count++)
+ {
+
+ test.Next(_L("Offset To first pixel"));
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayOffsetToFirstPixel, HALArg);
+ test (KErrNone == ret);
+ test (HALArg >= 0);
+
+ test.Next(_L("Test Offset between lines is > 0"));
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayOffsetBetweenLines, HALArg);
+ test (KErrNone == ret);
+#ifndef __WINS__
+ test (HALArg > 0);
+#else
+ test.Printf(_L("WINS can return 0 here as it doesn't handle the buffer itself, target hardware must return > 0"));
+ test (HALArg >= 0);
+#endif
+ test.Next(_L("is display mono"));
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayIsMono, HALArg);
+ test (KErrNone == ret);
+
+ test.Next(_L("is display palettized"));
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayIsPalettized, HALArg);
+ test (KErrNone == ret);
+
+ test.Next(_L("bits per pixel"));
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+
+ if (HALArg == 4)
+ fourBppMode = count;
+
+ }
+
+
+ test.Next(_L("switch display modes must be supported if > 1 display mode"));
+
+ TInt oldMode = displayMode;
+#ifndef __X86__
+ if (totalModes > 1)
+ {
+ HALArg = displayMode;
+ ret = HAL::Set(HAL::EDisplayMode, HALArg);
+ test.Printf(_L("ret is %d dmode is %d\n"),ret, HALArg);
+ test (KErrNone == ret);
+
+ ret = HAL::Get(HAL::EDisplayMode, HALArg);
+ test (KErrNone == ret);
+ test (HALArg == displayMode);
+
+ }
+#endif
+ for (count = 0; count < totalModes; count++)
+ {
+
+#ifndef __X86__
+ if (totalModes > 1) //we must support mode change
+ {
+ test.Printf(_L("Setting Display Mode to %d\n"), count);
+
+ ret = HAL::Set(HAL::EDisplayMode, count);
+ test (KErrNone == ret);
+
+ ret = HAL::Get(HAL::EDisplayMode, HALArg);
+ test (KErrNone == ret);
+ test (HALArg == count);
+ }
+#endif
+
+ /* PALETTE */
+
+ //get the palette entries
+ //set a few to something else
+ //set them again
+
+ TInt palettized = count;
+ test.Next(_L("Get if we are using a palette using HAL"));
+ ret = HAL::Get(HAL::EDisplayIsPalettized, palettized);
+ test (KErrNone == ret);
+
+ if (palettized)
+ {
+ HALArg = count;
+ ret = HAL::Get(HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+ test.Printf(_L("Bitsperpixel is %d\n"),HALArg);
+ test (HALArg <= 8);
+
+ TInt max = (1 << HALArg) - 1;
+ test.Printf(_L("number of palette entries is %d\n"),max);
+
+ test.Next(_L("Get legal Palette entries using HAL and driver in loop"));
+ for (TInt x = 0; x <= max; x++)
+ {
+ HALArg = x;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
+ test.Printf(_L("getting entry %d, ret is %d\n"),x, ret);
+ test (KErrNone == ret);
+
+ }
+
+
+ //try a few sets
+ TInt saved;
+
+ test.Next(_L("Set Palette entry 0 to red using HAL"));
+
+ saved = 0;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, saved);
+ test (KErrNone == ret);
+
+ HALArg = 0xF80000;
+ ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+ if (KErrNone == ret)
+ {
+ HALArg = 0;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+ test ((HALArg & 0xF8FFFF)==0xF80000);
+
+ ret = HAL::Set(HAL::EDisplayPaletteEntry, saved);
+ test (KErrNone == ret);
+
+
+ HALArg = 1;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+
+
+ HALArg = (7 << 24) || 0xFFFF00;
+ ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+
+
+ }
+
+
+
+ HALArg = count;
+ test (KErrNone == HAL::Get(HAL::EDisplayBitsPerPixel, HALArg));
+
+ if (4 == HALArg)
+ {
+ test.Next(_L("Get Illegal palette entry using HAL"));
+ HALArg = 18;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrArgument == ret);
+
+
+ test.Next(_L("Set Illegal palette entry using HAL"));
+ HALArg = 0x12 << 24 ;
+ ret = HAL::Set(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrArgument == ret);
+ }
+
+ }
+ else
+ {
+ //not palettized
+ test.Next(_L("Get palette entry using HAL - should fail"));
+ HALArg = 0;
+ ret = HAL::Get(HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNotSupported == ret);
+ }
+
+
+ }
+
+#ifndef __X86__
+ if (totalModes > 1) //we must support mode change
+ {
+ ret = HAL::Set(HAL::EDisplayMode, oldMode);
+ test (KErrNone == ret);
+ }
+#endif
+
+
+
+
+ /* DISPLAY ON/OFF */
+
+ TInt displayState;
+
+ test.Next(_L("Check Display is on using HAL"));
+ displayState = EFalse;
+ ret = HAL::Get(HAL::EDisplayState, displayState);
+ test (KErrNone == ret);
+ test (displayState!=EFalse);
+
+ test.Next(_L("Turn Display Off using HAL"));
+ ret = HAL::Set(HAL::EDisplayState, 0);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+ if (KErrNone == ret)
+ {
+// test.Next(_L("Check Display is off using HAL"));
+ displayState = ETrue;
+ ret = HAL::Get(HAL::EDisplayState, displayState);
+ test (KErrNone == ret);
+ test (displayState==EFalse);
+
+ // test.Next(_L("Display On using HAL"));
+ // ret = HAL::Set(HAL::EDisplayState, 1);
+ // test (KErrNotSupported == ret);
+
+
+ //need some way of turning on the display!
+ RTimer timer;
+ test(timer.CreateLocal()==KErrNone);
+ TTime now;
+ now.HomeTime();
+ TTime wakeup;
+ wakeup=now+TTimeIntervalSeconds(10);
+ TRequestStatus done;
+ timer.At(done,wakeup);
+
+ UserHal::SwitchOff();
+ User::WaitForRequest(done);
+
+ TRawEvent switchon;
+ switchon.Set(TRawEvent::ESwitchOn);
+ UserSvr::AddEvent(switchon);
+ }
+ else
+ test.Printf(_L("Display On/Off not supported by HAL on this playform\n"));
+
+
+ test.Next(_L("Check Display On using HAL"));
+ displayState = EFalse;
+ ret = HAL::Get(HAL::EDisplayState, displayState);
+ test (KErrNone == ret);
+ test (displayState!=EFalse);
+
+
+// !!! Disable platform security tests until we get the new APIs
+/*
+ test.Next(_L("Check if secure screen supported"));
+ TInt secure = EFalse;
+ ret = HAL::Get(HAL::ESecureDisplay, secure);
+ test (KErrNone == ret || KErrNotSupported == ret);
+ if (KErrNone == ret)
+ {
+ //get the secure address
+ TInt addr = 0;
+ ret = HAL::Get(HAL::ESecureDisplayMemoryAddress, addr);
+ test (KErrNone == ret);
+
+ //switch to secure screen
+ ret = HAL::Set(HAL::ESecureDisplay, ETrue);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to insecure screen
+ ret = HAL::Set(HAL::ESecureDisplay, EFalse);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to secure screen
+ ret = HAL::Set(HAL::ESecureDisplay, ETrue);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to insecure screen
+ ret = HAL::Set(HAL::ESecureDisplay, EFalse);
+ test (KErrNone == ret);
+ }
+ else
+ test.Printf(_L("secure screen not supported on this platform\n"));
+*/
+
+ }
+
+
+//the function above tests HAL APIs where no screen number is specified
+//and implicitly screen 0 is assumed. This function runs only for additional
+//screens if any (screen1, screen2 etc.)
+//this uses the HAL APIs that take a screen number
+LOCAL_C void RunTestsAdditionalScreens(TInt screen)
+ {
+ TInt ret = KErrNone;
+ TInt HALArg;
+ TInt saved = 0;
+
+/* BRIGHTNESS */
+
+ TBool HALMaxBrightnessSupported = EFalse;
+ TBool HALGetBrightnessSupported = EFalse;
+ TBool HALSetBrightnessSupported = EFalse;
+
+
+ test.Next(_L("Max Brightness using HAL"));
+ TInt maxBrightness=-1;
+ ret = HAL::Get(screen, HAL::EDisplayBrightnessMax, maxBrightness);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+
+ if (KErrNone == ret)
+ {
+ HALMaxBrightnessSupported = ETrue;
+ test.Printf(_L("Maximum brightness = %d\n"), maxBrightness);
+ }
+ else
+ test.Printf(_L("Maximum brightness is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ test.Printf(_L("Brightness = %d\n"), HALArg);
+ HALGetBrightnessSupported = ETrue;
+ saved = HALArg;
+ }
+ else
+ {
+ test.Printf(_L("Get Brightness is NOT SUPPORTED by HAL\n"));
+ }
+
+ test.Next(_L("Test brightness is <= maxBrightness"));
+ test(HALArg <= maxBrightness);
+
+ test.Next(_L("Set Brightness using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, 0);
+ test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
+ if ((KErrNone == ret) || (KErrArgument == ret))
+ HALSetBrightnessSupported = ETrue;
+ else
+ test.Printf(_L("Set brightness is NOT SUPPORTED by HAL\n"));
+
+
+
+ //if any of the brightness funcs are supported, test they all are
+ //we've already tested Ldd/HAL are giving same support
+ if (HALSetBrightnessSupported && HALGetBrightnessSupported && HALMaxBrightnessSupported)
+ {
+ //all supported
+ //do more comprehensive set/gets
+ test.Next(_L("Set Brightness using HAL to saved value"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, saved);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ test (saved == HALArg);
+
+ test.Next(_L("Set Brightness to the max using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, maxBrightness);
+ test.Printf(_L("ret = %d maxbr = %d"),ret, maxBrightness);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Brightness using HAL"));
+ HALArg = 0;
+ ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ test (maxBrightness == HALArg);
+
+ test.Next(_L("Set Brightness using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, saved);
+ test (KErrNone == ret);
+
+
+ //test some out of range values
+ ret = HAL::Get(screen, HAL::EDisplayBrightness, HALArg);
+ test (KErrNone == ret);
+ saved = HALArg;
+
+ test.Next(_L("Set Brightness too large using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, maxBrightness+1);
+ test (KErrArgument == ret);
+
+ test.Next(_L("Set Brightness too small using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayBrightness, -1);
+ test (KErrArgument == ret);
+
+ }
+ else //check none are supported
+ test(!(HALSetBrightnessSupported || HALGetBrightnessSupported || HALMaxBrightnessSupported));
+
+
+/* CONTRAST */
+
+ TBool HALMaxContrastSupported = EFalse;
+ TBool HALGetContrastSupported = EFalse;
+ TBool HALSetContrastSupported = EFalse;
+
+
+ test.Next(_L("Max Contrast using HAL"));
+ TInt maxContrast=-1;
+ ret = HAL::Get(screen, HAL::EDisplayContrastMax, maxContrast);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+
+ if (KErrNone == ret)
+ {
+ HALMaxContrastSupported = ETrue;
+ test.Printf(_L("Maximum Contrast = %d\n"), maxContrast);
+ }
+ else
+ test.Printf(_L("Maximum Contrast is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ test.Printf(_L("Contrast = %d\n"), HALArg);
+ HALGetContrastSupported = ETrue;
+ saved = HALArg;
+ }
+ else
+ {
+ test.Printf(_L("Get Contrast is NOT SUPPORTED by HAL\n"));
+ }
+
+ test.Next(_L("Test contrast is <= maxcontrast"));
+ test(HALArg <= maxContrast);
+
+ test.Next(_L("Set Contrast using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, 0);
+ test ((KErrNone == ret) || (KErrNotSupported == ret) || (KErrArgument == ret));
+ if ((KErrNone == ret) || (KErrArgument == ret))
+ HALSetContrastSupported = ETrue;
+ else
+ test.Printf(_L("Set Contrast is NOT SUPPORTED by HAL\n"));
+
+
+
+ //if any of the Contrast funcs are supported, test they all are
+ //we've already tested Ldd/HAL are giving same support
+ if (HALSetContrastSupported && HALGetContrastSupported && HALMaxContrastSupported)
+ {
+ //all supported
+ //do more comprehensive set/gets
+ test.Next(_L("Set Contrast using HAL to saved value"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, saved);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ test (saved == HALArg);
+
+ test.Next(_L("Set Contrast to the max using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, maxContrast);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get Contrast using HAL"));
+ HALArg = 0;
+ ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ test (maxContrast == HALArg);
+
+ test.Next(_L("Set Contrast using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, saved);
+ test (KErrNone == ret);
+
+
+ //test some out of range values
+ ret = HAL::Get(screen, HAL::EDisplayContrast, HALArg);
+ test (KErrNone == ret);
+ saved = HALArg;
+
+ test.Next(_L("Set Contrast too large using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, maxContrast+1);
+ test (KErrArgument == ret);
+
+ test.Next(_L("Set Contrast too small using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayContrast, -1);
+ test (KErrArgument == ret);
+
+ }
+ else //check none are supported
+ test(!(HALSetContrastSupported || HALGetContrastSupported || HALMaxContrastSupported));
+
+
+
+/* BACKLIGHT */
+
+ TBool HALGetBacklightSupported = EFalse;
+ TBool HALSetBacklightSupported = EFalse;
+ TBool lightSupported = EFalse;
+
+ test.Next(_L("check if backlight supported using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EBacklight, lightSupported);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ test.Printf(_L("Backlight supported = %d"), lightSupported);
+
+
+
+ test.Next(_L("Get Backlight state using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EBacklightState, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ HALGetBacklightSupported = ETrue;
+ test.Printf(_L("Backlight is = %d from HAL\n"), HALArg);
+ }
+ else
+ test.Printf(_L("Get Light is NOT SUPPORTED by HAL\n"));
+
+
+ test.Next(_L("Set Backlight state using HAL"));
+ HALArg = 0;
+ ret = HAL::Set(screen, HAL::EBacklightState, HALArg);
+ test ((KErrNone == ret) || (KErrNotSupported == ret));
+ if (KErrNone == ret)
+ {
+ HALSetBacklightSupported = ETrue;
+ test.Printf(_L("Backlight is set to = %d from HAL\n"), HALArg);
+ }
+ else
+ test.Printf(_L("Set Light is NOT SUPPORTED by HAL\n"));
+
+
+
+
+ if (HALGetBacklightSupported && HALSetBacklightSupported)
+ {
+
+ test.Next(_L("Get Backlight state using HAL (should be off)"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EBacklightState, HALArg);
+ test (KErrNone == ret);
+ test (0 == HALArg);
+
+ test.Next(_L("Set Backlight state to on using HAL"));
+ ret = HAL::Set(screen, HAL::EBacklightState, 1);
+ test (KErrNone == ret);
+
+ }
+ else
+ test (!HALGetBacklightSupported == !HALSetBacklightSupported);
+
+
+ /* maximum display colors*/
+ test.Next(_L("Display Colors"));
+ ret = HAL::Get(screen, HAL::EDisplayColors, HALArg);
+ test (KErrNone == ret);
+
+
+ /* DISPLAY MODE */
+ test.Next(_L("Display Modes"));
+ TInt totalModes;
+ ret = HAL::Get(screen, HAL::EDisplayNumModes, totalModes);
+ test (KErrNone == ret);
+
+ TInt displayMode;
+ ret = HAL::Get(screen, HAL::EDisplayMode, displayMode);
+ test (KErrNone == ret);
+
+ TInt val;
+ test.Next(_L("Get DisplayXPixels using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayXPixels, val);
+ test (KErrNone == ret);
+
+ test.Next(_L("Get DisplayYPixels using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayYPixels, val);
+ test (KErrNone == ret);
+
+ TInt xtwips;
+ test.Next(_L("Get DisplayXTwips using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayXTwips, xtwips);
+ test (KErrNone == ret);
+
+ TInt ytwips;
+ test.Next(_L("Get DisplayYTwips using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayYTwips, ytwips);
+ test (KErrNone == ret);
+
+ TInt vaddr;
+ test.Next(_L("Get video address using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayMemoryAddress, vaddr);
+ test (KErrNone == ret);
+
+
+/* BITS PER PIXEL */
+
+ test.Next(_L("Get Bits per pixel for current display mode using HAL"));
+
+ HALArg = displayMode;
+ ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+
+
+ test.Next(_L("Get Bits per pixel with illegal mode using HAL"));
+ HALArg = -1;
+ ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrArgument == ret);
+
+ HALArg = totalModes;
+ ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrArgument == ret);
+
+
+/*DISPLAY MODES*/
+ test.Next(_L("loop through the display modes getting the info"));
+
+ TInt count;
+
+ TInt fourBppMode = -1;
+
+ for (count = 0; count < totalModes; count++)
+ {
+
+ test.Next(_L("Offset To first pixel"));
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayOffsetToFirstPixel, HALArg);
+ test (KErrNone == ret);
+ test (HALArg >= 0);
+
+ test.Next(_L("Test Offset between lines is > 0"));
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayOffsetBetweenLines, HALArg);
+ test (KErrNone == ret);
+#ifndef __WINS__
+ test (HALArg > 0);
+#else
+ test.Printf(_L("WINS can return 0 here as it doesn't handle the buffer itself, target hardware must return > 0"));
+ test (HALArg >= 0);
+#endif
+ test.Next(_L("is display mono"));
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayIsMono, HALArg);
+ test (KErrNone == ret);
+
+ test.Next(_L("is display palettized"));
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayIsPalettized, HALArg);
+ test (KErrNone == ret);
+
+ test.Next(_L("bits per pixel"));
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+
+ if (HALArg == 4)
+ fourBppMode = count;
+
+ }
+
+
+ test.Next(_L("switch display modes must be supported if > 1 display mode"));
+
+ TInt oldMode = displayMode;
+#ifndef __X86__
+ if (totalModes > 1)
+ {
+ HALArg = displayMode;
+ ret = HAL::Set(screen, HAL::EDisplayMode, HALArg);
+ test.Printf(_L("ret is %d dmode is %d\n"),ret, HALArg);
+ test (KErrNone == ret);
+
+ ret = HAL::Get(screen, HAL::EDisplayMode, HALArg);
+ test (KErrNone == ret);
+ test (HALArg == displayMode);
+
+ }
+#endif
+ for (count = 0; count < totalModes; count++)
+ {
+
+#ifndef __X86__
+ if (totalModes > 1) //we must support mode change
+ {
+ test.Printf(_L("Setting Display Mode to %d\n"), count);
+
+ ret = HAL::Set(screen, HAL::EDisplayMode, count);
+ test (KErrNone == ret);
+
+ ret = HAL::Get(screen, HAL::EDisplayMode, HALArg);
+ test (KErrNone == ret);
+ test (HALArg == count);
+ }
+#endif
+
+ /* PALETTE */
+
+ //get the palette entries
+ //set a few to something else
+ //set them again
+
+ TInt palettized = count;
+ test.Next(_L("Get if we are using a palette using HAL"));
+ ret = HAL::Get(screen, HAL::EDisplayIsPalettized, palettized);
+ test (KErrNone == ret);
+
+ if (palettized)
+ {
+ HALArg = count;
+ ret = HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg);
+ test (KErrNone == ret);
+ test.Printf(_L("Bitsperpixel is %d\n"),HALArg);
+ test (HALArg <= 8);
+
+ TInt max = (1 << HALArg) - 1;
+ test.Printf(_L("number of palette entries is %d\n"),max);
+
+ test.Next(_L("Get legal Palette entries using HAL and driver in loop"));
+ for (TInt x = 0; x <= max; x++)
+ {
+ HALArg = x;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test.Printf(_L("getting entry %d, ret is %d\n"),x, ret);
+ test (KErrNone == ret);
+
+ }
+
+
+ //try a few sets
+ TInt saved;
+
+ test.Next(_L("Set Palette entry 0 to red using HAL"));
+
+ saved = 0;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, saved);
+ test (KErrNone == ret);
+
+ HALArg = 0xFF0000;
+ ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+ if (KErrNone == ret)
+ {
+ HALArg = 0;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+ test (HALArg = 0xFF0000);
+
+ ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, saved);
+ test (KErrNone == ret);
+
+
+ HALArg = 1;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+
+
+ HALArg = (7 << 24) || 0xFFFF00;
+ ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNone == ret);
+
+
+ }
+
+
+
+ HALArg = count;
+ test (KErrNone == HAL::Get(screen, HAL::EDisplayBitsPerPixel, HALArg));
+
+ if (4 == HALArg)
+ {
+ test.Next(_L("Get Illegal palette entry using HAL"));
+ HALArg = 18;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrArgument == ret);
+
+
+ test.Next(_L("Set Illegal palette entry using HAL"));
+ HALArg = 0x12 << 24 ;
+ ret = HAL::Set(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrArgument == ret);
+ }
+
+ }
+ else
+ {
+ //not palettized
+ test.Next(_L("Get palette entry using HAL - should fail"));
+ HALArg = 0;
+ ret = HAL::Get(screen, HAL::EDisplayPaletteEntry, HALArg);
+ test (KErrNotSupported == ret);
+ }
+
+
+ }
+
+#ifndef __X86__
+ if (totalModes > 1) //we must support mode change
+ {
+ ret = HAL::Set(screen, HAL::EDisplayMode, oldMode);
+ test (KErrNone == ret);
+ }
+#endif
+
+
+
+
+ /* DISPLAY ON/OFF */
+
+
+ // get current display state
+ TInt curDisplayState;
+ ret = HAL::Get(screen, HAL::EDisplayState, curDisplayState);
+ test (KErrNone == ret);
+
+ test.Next(_L("Turn Display on using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayState, 1);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+ TInt displayState;
+
+ test.Next(_L("Check Display is on using HAL"));
+ displayState = EFalse;
+ ret = HAL::Get(screen, HAL::EDisplayState, displayState);
+ test (KErrNone == ret);
+ test (displayState!=EFalse);
+
+ test.Next(_L("Turn Display Off using HAL"));
+ ret = HAL::Set(screen, HAL::EDisplayState, 0);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+ if (KErrNone == ret)
+ {
+ test.Next(_L("Check Display is off using HAL"));
+ displayState = ETrue;
+ ret = HAL::Get(screen, HAL::EDisplayState, displayState);
+ test (KErrNone == ret);
+ test (displayState==EFalse);
+
+ // test.Next(_L("Display On using HAL"));
+ // ret = HAL::Set(screen, HAL::EDisplayState, 1);
+ // test (KErrNotSupported == ret);
+
+
+ //need some way of turning on the display!
+ RTimer timer;
+ test(timer.CreateLocal()==KErrNone);
+ TTime now;
+ now.HomeTime();
+ TTime wakeup;
+ wakeup=now+TTimeIntervalSeconds(10);
+ TRequestStatus done;
+ timer.At(done,wakeup);
+
+ UserHal::SwitchOff();
+ User::WaitForRequest(done);
+
+ TRawEvent switchon;
+ switchon.Set(TRawEvent::ESwitchOn);
+ UserSvr::AddEvent(switchon);
+ }
+ else
+ test.Printf(_L("Display On/Off not supported by HAL on this playform\n"));
+
+ // restore the original display state
+ ret = HAL::Set(screen, HAL::EDisplayState, curDisplayState);
+ test (KErrNone == ret || KErrNotSupported == ret);
+
+
+// !!! Disable platform security tests until we get the new APIs
+/*
+ test.Next(_L("Check if secure screen supported"));
+ TInt secure = EFalse;
+ ret = HAL::Get(screen, HAL::ESecureDisplay, secure);
+ test (KErrNone == ret || KErrNotSupported == ret);
+ if (KErrNone == ret)
+ {
+ //get the secure address
+ TInt addr = 0;
+ ret = HAL::Get(screen, HAL::ESecureDisplayMemoryAddress, addr);
+ test (KErrNone == ret);
+
+ //switch to secure screen
+ ret = HAL::Set(screen, HAL::ESecureDisplay, ETrue);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to insecure screen
+ ret = HAL::Set(screen, HAL::ESecureDisplay, EFalse);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to secure screen
+ ret = HAL::Set(screen, HAL::ESecureDisplay, ETrue);
+ test (KErrNone == ret);
+ User::After(2000000);
+
+ //switch to insecure screen
+ ret = HAL::Set(screen, HAL::ESecureDisplay, EFalse);
+ test (KErrNone == ret);
+ }
+ else
+ test.Printf(_L("secure screen not supported on this platform\n"));
+*/
+
+ }
+
+
+GLDEF_C TInt E32Main()
+//
+//
+ {
+
+ test.Title();
+//
+#if defined(__EPOC32__) && defined(__CPU_X86)
+ test.Printf(_L("Doesn't run on X86\n"));
+#else
+
+ test.Start(_L("Testing Video extension"));
+
+ RunTests();
+ TInt screens=1; // assume that we have at least 1 screen in case the HAL attr isn't supported
+ TInt ret=HAL::Get(HAL::EDisplayNumberOfScreens, screens);
+ test((ret==KErrNone) || (ret==KErrNotSupported));
+
+ TInt i;
+ for(i=1;i<screens;i++)
+ RunTestsAdditionalScreens(i);
+
+ test.Next(_L("Test more devices than the kernel can handle"));
+ //this constant should have a value > KMaxHalEntries (defined in the kernel)
+ const TInt KMoreThanKernelAllocates=10;
+ for(i=screens;i<KMoreThanKernelAllocates;i++)
+ {
+ TInt val;
+ test.Next(_L("Get DisplayXPixels using HAL"));
+ ret = HAL::Get(i, HAL::EDisplayXPixels, val);
+ test (KErrNotSupported == ret);
+
+ test.Next(_L("Get DisplayYPixels using HAL"));
+ ret = HAL::Get(i, HAL::EDisplayYPixels, val);
+ test (KErrNotSupported == ret);
+
+ TInt xtwips;
+ test.Next(_L("Get DisplayXTwips using HAL"));
+ ret = HAL::Get(i, HAL::EDisplayXTwips, xtwips);
+ test (KErrNotSupported == ret);
+
+ TInt ytwips;
+ test.Next(_L("Get DisplayYTwips using HAL"));
+ ret = HAL::Get(i, HAL::EDisplayYTwips, ytwips);
+ test (KErrNotSupported == ret);
+
+ TInt vaddr;
+ test.Next(_L("Get video address using HAL"));
+ ret = HAL::Get(i, HAL::EDisplayMemoryAddress, vaddr);
+ test (KErrNotSupported == ret);
+ }
+
+ test.Next(_L("Test HAL::GetAll"));
+ TInt numEntries;
+ HAL::SEntry* entries;
+ ret=HAL::GetAll(numEntries, entries);
+ test(ret==KErrNone);
+
+ test(numEntries==screens*(TInt)HAL::ENumHalAttributes);
+
+ User::Free(entries);
+
+ test.Next(_L("Test TRawEvent for multiple devices (screens)"));
+
+ TRawEvent event1;
+ test(event1.Type()==0);
+ test(event1.DeviceNumber()==KUndefinedDeviceNumber);
+
+ event1.SetDeviceNumber(0);
+ test(event1.DeviceNumber()==0);
+
+ event1.SetDeviceNumber(KUndefinedDeviceNumber);
+ test(event1.DeviceNumber()==KUndefinedDeviceNumber);
+
+ test(event1.Type()==0);
+
+ event1.Set(TRawEvent::EKeyDown);
+ test(event1.Type()==TRawEvent::EKeyDown);
+
+ event1.Set(TRawEvent::EKeyUp,10);
+ test(event1.Type()==TRawEvent::EKeyUp);
+
+ event1.Set(TRawEvent::EKeyDown,10,10);
+ test(event1.Type()==TRawEvent::EKeyDown);
+
+ test.End();
+ test.Close();
+
+#endif
+
+ return KErrNone;
+ }
+