--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vtprotocolplugins/DisplaySink/inc/cvtimage.h Mon Nov 23 14:47:47 2009 +0200
@@ -0,0 +1,175 @@
+/*
+* Copyright (c) 2004 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: Image Transforms subsystem.
+*
+*/
+
+
+
+
+#ifndef CVTIMAGE_H
+#define CVTIMAGE_H
+
+// INCLUDE FILES
+
+#include <e32base.h>
+#include <gdi.h>
+
+// CLASS DECLARATIONS
+
+/**
+* Abstract base class for VS images.
+*
+* @lib videosource.lib
+*/
+class CVtImage : public CBase
+ {
+ public:
+ /**
+ * Enumeration for supported image types.
+ */
+ enum TVtImageType
+ {
+ /**
+ * CFbsBitmap image.
+ */
+ EVtImageBitmap,
+
+ /**
+ * YUV 420 planar image where all Y samples are found first in memory as an
+ * array of unsigned char (possibly with a larger stride for memory alignment),
+ * followed immediately by all Cr (U) samples (with half the stride of the Y
+ * lines, and half the number of lines), then followed immediately by all Cb
+ * (V) samples in a similar fashion.
+ */
+ EVtImageIYUV
+ };
+
+ /**
+ * Vt display modes. Used for identifying image's data format.
+ */
+ enum TVtDisplayMode
+ {
+ /**
+ * Unsupported display mode.
+ */
+ EVtColorNone,
+
+ /**
+ * 4096 colour display mode (12 bpp).
+ */
+ EVtColor4K,
+
+ /**
+ * 2^16 colour display mode (16 bpp).
+ */
+ EVtColor64K,
+
+ /**
+ * True colour display mode (24 bpp).
+ */
+ EVtColor16M,
+
+ /**
+ * True colour display mode (32 bpp).
+ */
+ EVtColor16MU,
+
+ /**
+ * True colour display mode with alpha (32 bpp).
+ */
+ EVtColor16MA,
+
+ /**
+ * YUV 420 planar display mode.
+ */
+ EVtColorIYUV
+ };
+
+ /**
+ * Pure virtual function to check whether bitmap heap needs to be locked
+ * for this image type.
+ * @return Returns ETrue if bitmap heap lock is required, EFalse
+ * otherwise.
+ */
+ virtual TBool NeedHeapLock() const = 0;
+
+ /**
+ * Pure virtual function to get displaymode from image.
+ * @return Returns image's displaymode.
+ */
+ virtual TVtDisplayMode DisplayMode() const = 0;
+
+ /**
+ * Pure virtual function to get size of the image in pixels
+ * @return Returns size of the image in pixels.
+ */
+ virtual TSize Size() const = 0;
+
+ /**
+ * Pure virtual function to get how many bytes this image has per
+ * scaline.
+ * @return Returns number of bytes per scanline.
+ */
+ virtual TInt BytesPerRow() const = 0;
+
+ /**
+ * Pure virtual function to get pointer to image data.
+ * @return Returns pointer to image data.
+ */
+ virtual TUint32* DataAddress() const = 0;
+
+ /**
+ * Pure virtual function to get pointer to image data at defined line.
+ * If aLine is lower than zero then line zero is returned, also if aLine
+ * is greater than height of the image minus 1 ( height - 1 ) then line
+ * number ( height - 1 ) is returned.
+ * @param "aLine" Number of vertical line for which pointer is wanted.
+ * @return Returns pointer to the beginning of the requested scanline.
+ */
+ virtual TUint32* LineAddress( TInt aLine ) const = 0;
+
+ /**
+ * Method for getting image type.
+ * @return Returns type of the image.
+ */
+ IMPORT_C TVtImageType Type() const;
+
+ public: // static methods
+
+ /**
+ * Converts given TDisplayMode to corresponding TVtDisplayMode.
+ * @param "aMode" Display mode as TDisplayMode.
+ * @return Returns mode as TVtDisplayMode.
+ */
+ static TVtDisplayMode DisplayModeToVtDisplayMode( TDisplayMode aMode );
+
+ protected:
+
+ /**
+ * C++ constructor.
+ */
+ CVtImage( TVtImageType aType );
+
+ private:
+
+ // Type of the image.
+ TVtImageType iType;
+ };
+
+#endif // CVTIMAGE_H
+
+// End of File
+
+