--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imageadaptationextensions/iclextjpegapi/inc/IclExtJpegApiFrameImpl.h Thu Dec 17 09:22:31 2009 +0200
@@ -0,0 +1,276 @@
+/*
+* Copyright (c) 2006 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: Definition of TFrameFormatExt and CVisualFrameImpl
+*
+*/
+
+#ifndef _ICLEXTJPEGAPIFRAMEIMPL_
+#define _ICLEXTJPEGAPIFRAMEIMPL_
+
+#include <icl/icl_propertyuids.h>
+#include "IclExtJpegApiConst.h"
+
+class CVisualFrame::TFrameLayout;
+
+#include "imageframe.h"
+
+/**
+* TFrameFormatExt
+* @lib IclExtJpegApi.lib
+* @since 3.2
+*/
+class TFrameFormatExt : public TFrameFormatBase
+ {
+ public:
+
+ /**
+ * C++ default constructor.
+ */
+ TFrameFormatExt( TInt aFormatCode ) :
+ TFrameFormatBase( KUidExtIclImageFrameFormat ),
+ iFormatCode( aFormatCode )
+ {
+ Constructor();
+ };
+
+ /**
+ * Duplicate
+ * @since 3.2
+ * @return TFrameFormatExt
+ */
+ TFrameFormatBase* DuplicateL() const
+ {
+ return new ( ELeave ) TFrameFormatExt( iFormatCode );
+ };
+
+ /**
+ * Colour space
+ * @since 3.2
+ * @return TUid
+ */
+ TUid ColourSpace() const;
+
+ /**
+ * Sampling
+ * @since 3.2
+ * @return TUid
+ */
+ TUid Sampling() const;
+
+ /**
+ * Format code
+ * @since 3.2
+ * @return TInt
+ */
+ TInt FormatCode() const;
+
+ /**
+ * Set colour space
+ * @since 3.2
+ * @param aColourSpace
+ * @return void
+ */
+ void SetColourSpace( TUid aColourSpace );
+
+
+ protected:
+
+ /**
+ * constructor.
+ */
+ void Constructor();
+
+ protected: // Data
+
+ // The image frame colour space
+ TUid iColourSpace;
+ // The frame sampling
+ TUid iSampling;
+ // The image frame format code which uniquely identifies all other parameters.
+ TInt iFormatCode;
+
+ };
+
+
+/**
+* CVisualFrameImpl
+* @lib IclExtJpegApi.lib
+* @since 3.2
+*/
+class CVisualFrameImpl : public CImageFrame
+ {
+ public:
+
+ /**
+ * Two-phased constructor.
+ * @since 3.2
+ * @param aBuffer A descriptor reference to buffer containing the image data.
+ * @param aDimension The dimensions of the corresponding image data.
+ * @param aFrameFormat The frame format of the corresponding image data.
+ */
+ static CVisualFrameImpl* NewL(
+ TDes8& aBuffer,
+ const TSize& aDimension,
+ TInt aFrameFormat );
+
+ /**
+ * Two-phased constructor.
+ * @param aChunk An RChunk reference to buffer containing the image data.
+ * @param aSize The amount of image data in bytes.
+ * @param amaxSize The maximum size of the memory reserved in the chunk.
+ * @param aDataOffset The offset value specifying the location of the image
+ * data in the chunk.
+ * @param aDimension The dimensions of the corresponding image data.
+ * @param aFrameFormat The frame format of the corresponding image data.
+ */
+ static CVisualFrameImpl* NewL(
+ RChunk& aChunk,
+ TInt aSize,
+ TInt aMaxSize,
+ TInt aDataOffset,
+ const TSize& aDimension,
+ TInt aFrameFormat );
+ /**
+ * Two-phased constructor.
+ * @param aBuffer A descriptor reference to buffer containing the image data.
+ * @param aDimension The dimensions of the corresponding image data.
+ * @param aFrameLayout The layout of the image color components.
+ */
+ static CVisualFrameImpl* NewL(
+ TDes8& aBuffer,
+ const TSize& aDimension,
+ TInt aFrameFormat,
+ const CVisualFrame::TFrameLayout& aFrameLayout );
+
+ /**
+ * Two-phased constructor.
+ * @param aChunk An RChunk reference to buffer containing the image data.
+ * @param aSize The amount of image data in bytes.
+ * @param aMaxSize The maximum size of the memory reserved in the chunk for
+ * the image data.
+ * @param aDimension The dimensions of the corresponding image data.
+ * @param aFrameFormat The frame format of the corresponding image data.
+ * @param aFrameLayout The layout of the image color components. TFrameLayout
+ * contains the scan line lengths and offsets for each component
+ * in planar YUV case
+ */
+ static CVisualFrameImpl* NewL(
+ RChunk& aChunk,
+ TInt aSize,
+ TInt aMaxSize,
+ const TSize& aDimension,
+ TInt aFrameFormat,
+ const CVisualFrame::TFrameLayout& aFrameLayout );
+
+ static CVisualFrameImpl* NewL( const CImageFrame* aImageFrame );
+
+ /**
+ * Get image frame
+ * @since 3.2
+ * @return CImageFrame
+ */
+ CImageFrame* GetImageFrameL();
+
+ /**
+ * Returns a constant reference to the chunk containing
+ * the image data, if exists.
+ * @since 3.2
+ * @return RChunk
+ */
+ const RChunk& DataChunkL() const;
+
+ /**
+ * Returns a descriptor pointer to the image data location, if exists
+ * @since 3.2
+ * @return TPtr8
+ */
+ TPtr8 DataPtrL() const;
+
+ /**
+ * Returns the dimensions of the image.
+ * @since 3.2
+ * @return TSize
+ */
+ TSize Dimension() const;
+
+ /**
+ * Return the image data format.
+ * @since 3.2
+ * @return TInt
+ */
+ TInt FrameFormat2() const;
+
+ /**
+ * Returns the offset of the image data for non-planar,
+ * single-component or compressed images.
+ * @since 3.2
+ * @return TInt
+ */
+ TInt DataOffset() const;
+
+ /**
+ * Returns the amount of stored image data in bytes.
+ * @since 3.2
+ * @return TInt
+ */
+ TInt Size() const;
+
+ /**
+ * Sets the amount of image data to the given value.
+ * Should be called when the image data amount is modified explicitly.
+ * @since 3.2
+ * @param
+ * @return void
+ */
+ void SetSizeL( TInt aSize );
+
+ /**
+ * Returns the maximum size of the memory space reserved for image data
+ * @since 3.2
+ * @return TInt
+ */
+ TInt MaxSize() const;
+
+ /**
+ * Returns the storage type of the image data.
+ * @since 3.2
+ * @return TInt
+ */
+ TInt DataContainer() const;
+
+ /**
+ * Returns the layout of the image data for planar compressed images.
+ * @since 3.2
+ * @param
+ * @return CVisualFrame::TFrameLayout
+ */
+ const CVisualFrame::TFrameLayout& FrameLayout2() const;
+
+ /**
+ * Destructor.
+ */
+ virtual ~CVisualFrameImpl();
+
+ private: // Data
+
+ CVisualFrame::TFrameLayout iFrameLayout2;
+
+ TInt iSize;
+ };
+
+
+#endif // _ICLEXTJPEGAPIFRAMEIMPL_
+
+
+// End of File