--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imaging/imagingfws/src/imageframebody.h Wed Aug 25 12:29:52 2010 +0300
@@ -0,0 +1,93 @@
+// Copyright (c) 2005-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:
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+#ifndef IMAGEFRAMEBODY_H
+#define IMAGEFRAMEBODY_H
+
+#include <imageframe.h>
+
+/**
+CBody class implements the functionality declared in CImageFrame class.
+It can be created as a wrapper around a RChunk or a descriptor.
+*/
+NONSHARABLE_CLASS( CImageFrame::CBody ): public CBase
+ {
+ friend class CImageFrame;
+
+private:
+ static CBody* NewL(CImageFrame& aHandle, const TDes8& aBuffer, TInt aMaxBufferSize);
+
+ static CBody* NewL(CImageFrame& aHandle, const TDes8& aBuffer, TInt aMaxBufferSize,
+ const TSize& aFrameSize, const TFrameFormatBase& aFrameFormat, const TFrameLayoutBase& aFrameLayout);
+
+ static CBody* NewL(CImageFrame& aHandle, const RChunk* aBuffer, TInt aMaxBufferSize, TInt aDataOffset);
+
+ static CBody* NewL(CImageFrame& aHandle, const RChunk* aBuffer, TInt aMaxBufferSize,
+ TInt aDataOffset, const TSize& aFrameSize, const TFrameFormatBase& aFrameFormat,const TFrameLayoutBase& aFrameLayout);
+ ~CBody();
+
+ const TFrameFormatBase& FrameFormat() const;
+ void SetFrameFormatL(const TFrameFormatBase& aFormat);
+
+ const TFrameLayoutBase& FrameLayout() const;
+ void SetFrameLayoutL(const TFrameLayoutBase& aFrameLayout);
+
+ const TSize& FrameSizeInPixels() const;
+ void SetFrameSizeInPixels(const TSize& aFrameSize);
+
+ TDes8& Data();
+
+ const TDesC8& Data() const;
+
+ RChunk& DataChunk();
+
+ TInt DataOffset() const;
+ TInt MaxBufferSize() const;
+ TBool IsChunk() const;
+
+ explicit CBody(CImageFrame& aHandle);
+ CBody(CImageFrame& aHandle, const TDes8& aBuffer);
+
+ void StoreChunkL(const RChunk* aBuffer, TInt aMaxBufferSize, TInt aDataOffset);
+ void SetMaxSizeL(TInt aMaxBufferSize);
+ void StoreAddParamL(const TSize& aFrameSize, const TFrameFormatBase& aFrameFormat, const TFrameLayoutBase& aFrameLayout);
+ void SetDefaultFormatL();
+
+
+private:
+ CImageFrame& iHandle;
+ // Frame size in pixels
+ TSize iFrameSize;
+ // Image Frame specific layout
+ TFrameLayoutBase* iLayout;
+ // Image Frame format
+ TFrameFormatBase* iFormat;
+ // pointer to the RChunk, represented by the CImageFrameRChunk object
+ RChunk* iDataChunk;
+ // offset of the data from the start of the chunk
+ TInt iDataOffset;
+ // 8-bit pointer to the data.
+ TPtr8 iBufferPtr;
+ // The maximum size allocated to this object by its creator
+ TInt iMaxBufferSize;
+ // stores the info about the type of the present object
+ TBool iIsChunk;
+ };
+
+#endif //IMAGEFRAMEBODY_H