graphicscomposition/openwfcompositionengine/inc/openwfc_ri_display.h
changeset 152 9f1c3fea0f87
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicscomposition/openwfcompositionengine/inc/openwfc_ri_display.h	Wed Aug 18 11:05:09 2010 +0300
@@ -0,0 +1,121 @@
+// Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and/or associated documentation files (the
+// "Materials"), to deal in the Materials without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Materials, and to
+// permit persons to whom the Materials are furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Materials.
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+//
+// Description:
+// Display Adaptation Interface
+// 
+//
+
+#ifndef OPENWFC_RI_DISPLAY_H
+#define OPENWFC_RI_DISPLAY_H
+
+#include <WF/openwfc_ri_display_update.h>
+#include <pixelformats.h>
+
+class COpenWFC_RI_Display: public CBase, public MOpenWFC_RI_Display_Update
+    {
+public:    
+    typedef enum
+        {
+        EScreenInvalid                = 0x0000,    // Initialisation value, don't use
+        EScreenRotate0                = 0x0001,    // No rotation
+        EScreenRotate90               = 0x0002,    // 90 degree
+        EScreenRotate180              = 0x0004,    // 180 degree
+        EScreenRotate270              = 0x0008,    // 270 degree
+        EScreenRotateMirrorVertical   = 0x0010,    // Upside down/flip
+        EScreenRotateMirrorHorizontal = 0x0020,    // Mirrored
+        EScreenRotateAll              = 0x000F
+        } TScreenRotation;
+
+    typedef enum
+        {
+        EScreenAttributeInvalid       = 0,
+        EScreenAttributeImplementationVersion,      // Version implementation   (TUint32)   RO
+        // Currently the only  pixel format support is EUidPixelFormatXRGB_8888
+        EScreenAttributePixelFormat,                // Pixel format             (TUint32)   RO
+        // Curently, the only value supported is "4"
+        EScreenAttributeBytesPerPixel,              // Bytes per pixel          (TUint32)   RO
+        EScreenAttributeSupportedRotation,          // Supported rotation bitmap(TUint32)   RO
+        EScreenAttributeDefaultRotation,            // Default rotation         (TUint32)   RO
+        EScreenAttributeCurrentRotation,            // Current rotation         (TUint32)   RW
+        EScreenAttributeNormalWidth,                // Width - rotaton 0        (TUint32)   RO
+        EScreenAttributeNormalHeight,               // Height - rotaton 0       (TUint32)   RO
+        EScreenAttributeNormalStride,               // Stride - rotaton 0       (TUint32)   RO
+        EScreenAttributeFlippedWidth,               // Width - rotaton 90       (TUint32)   RO
+        EScreenAttributeFlippedHeight,              // Height - rotaton 90      (TUint32)   RO
+        EScreenAttributeFlippedStride,              // Stride - rotaton 90      (TUint32)   RO
+        EScreenAttributeScreenGeometry              // geometry struct                      RO
+        } TScreenAttribute;
+        
+    typedef struct {
+        TInt32 iSupportedRotations;
+        TInt32 iBytesPerPixel;
+        TScreenRotation iDefaultRotation;
+        TScreenRotation iCurrentRotation;
+        TUidPixelFormat iPixelFormat;
+        TInt32 iNormalWidth;
+        TInt32 iNormalHeight;
+        TInt32 iNormalStride;
+        TInt32 iFlippedWidth;
+        TInt32 iFlippedHeight;
+        TInt32 iFlippedStride;
+        } TScreenGeometryAttribute;
+        
+public:
+        /**
+         * API version
+         * 
+         * @return  API version
+         */
+    inline TUint32 APIVersion();
+    
+    /**
+     * Symbian function factory
+     * 
+     * @param   aStream   Screen Id
+     * 
+     * @return  An instance of implemented interface
+     */
+    IMPORT_C static COpenWFC_RI_Display* NewL(TUint aScreen);
+    
+    /**
+     * retrieves the default screen number for an implementation
+     * 
+     * 
+     * @return  Default Screen ID
+     */
+	IMPORT_C static TUint32 DefaultScreenNumber();
+	
+public:
+    static const TInt32 KTopMostLayer = 0;
+    static const TUint32 KAPIVersion  = 0x00000001;
+    
+protected:
+     TInt GetAttributeSize(TUint aAttributeId);
+    };
+
+inline TUint32 COpenWFC_RI_Display::APIVersion()
+    {
+    return KAPIVersion;
+    }
+
+
+#endif // OPENWFC_RI_DISPLAY_H