diff -r 4d1fe4a7ce83 -r af143508cc47 graphicshwdrivers/surfacemgr/inc/surface_hints.h --- a/graphicshwdrivers/surfacemgr/inc/surface_hints.h Fri Aug 13 15:11:40 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "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: -// Surface Manager API -// - -#ifndef __SURFACE_HINTS_H__ -#define __SURFACE_HINTS_H__ - -//- Include Files ---------------------------------------------------------- - -#include - - -//- Namespace --------------------------------------------------------------- - -namespace surfaceHints -{ - -//- Constants --------------------------------------------------------------- - -/** Hint of the surface content. - @see TSurfaceContent for possible values -*/ -const TInt KSurfaceContent = 0x1; - -/** Hint of the expected update rate of the surface content. - Value for a surface containing e.g. 25 fps video the value should be 25. - For a static UI element the value should be 0. - @see TSurfaceUpdate -*/ -const TInt KSurfaceUpdate = 0x2; - -/** Hint whether the surface content is copy protected and can it be - shown on external displays. - @see TSurfaceProtection for possible values. -*/ -const TInt KSurfaceProtection = 0x3; - - -/** Values used for the KSurfaceContent key */ -enum TSurfaceContent - { - /** No specific use-case */ - EGeneric, - /** Camera viewfinder frames */ - EViewFinder, - /** Images captured by camera */ - EStillImage, - /** Decoded video frames */ - EVideoPlayback, - /** Video frames from video telephony */ - EVideoTelephony, - /** EGL surface */ - EGfx, - /** Main UI surface */ - EUi, - /** Composition target surface */ - ECompositionTarget, - /** Indicates that the surface has to accessible by ARM. - This can be orr'ed with other TSurfaceContent enumerations. */ - EArmAccess = 0x80000000 - }; - - -/** Values used for the KSurfaceProtection key. The values are bitmasks and can be combined -* e.g. EAllowAnalogProtectionRequired | EAllowDigitalProtectionRequired. -*/ -enum TSurfaceProtection - { - /** - * Not allowed on external outputs - */ - EAllowInternalOnly = 0x00000000, - - /** - * Allowed on all external outputs - */ - EAllowAllExternals = 0xFFFFFFFF, - - /** - * Allow passing content over analog outputs, - * e.g. composite and S-video - */ - EAllowAnalog = 0x00000010, - - /** - * Allow output over an analog output channel which has a protection - * mechanism - */ - EAllowAnalogProtectionRequired = 0x00000020, - - /** - * Allow passing content over digital outputs, - * e.g. DVI and HDMI - */ - EAllowDigital = 0x00000200, - - /** - * Licensed product must attempt to engage HDCP to protect the content. - * However it should be passed through to HDMI even if HDCP is not engaged or fails to engage. - */ - EAllowDigitalProtectionRequested = 0x00000400, - - /** - * Licensed product is required to engage HDCP to protect the content. - * If HDCP is not engaged or can not be engaged the content must not be passed through to HDMI. - */ - EAllowDigitalProtectionRequired = 0x00000800, - }; - - -class TSurfaceUpdate - { - /** Constructor. - @param aUpdateRate How often the surface content is redrawn per second. - @param aTearingFree When ETrue surface updates should be synchronized - with display refresh rate, otherwise surface can - be updated as fast as possible. - */ - inline TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree); - - /** Converts a value to TSurfaceUpdate */ - inline TSurfaceUpdate(TInt aValue); - - /** Converts TSurfaceUpdate to a signed integer, so it can be used as - a value for KSurfaceUpdate key. */ - inline operator TInt() const; - - /** Getter for surface update rate. - @return updates per second - */ - inline TUint UpdateRate() const; - - /** Getter for surface update synchronization. - @return ETrue - updates should be synchronized with display refresh rate, - EFalse - surface can be updated as fast as possible. - */ - inline TBool TearingFree() const; - - private: - TUint iValue; - }; - - -//- Forward Declarations ---------------------------------------------------- - - -//- Class Definitions ------------------------------------------------------- - - -//- Inline Functions -------------------------------------------------------- - -TSurfaceUpdate::TSurfaceUpdate(TUint aUpdateRate, TBool aTearingFree) - : iValue( ( aUpdateRate & 0xFFFF ) | ( aTearingFree ? 0x80000000 : 0x0 ) ) - { - } -TSurfaceUpdate::TSurfaceUpdate(TInt aValue) - : iValue( static_cast( aValue ) ) - { - } - -TSurfaceUpdate::operator TInt() const - { - return static_cast( iValue ); - } - -TUint TSurfaceUpdate::UpdateRate() const - { - return ( iValue & 0xFFFF ); - } - -TBool TSurfaceUpdate::TearingFree() const - { - return ( iValue & 0x80000000 ) ? ETrue : EFalse; - } - -}; //namespace surfaceHints - -#endif //__SURFACE_HINTS_H__ - -// End of File -