imaging/imagingfws/src/imageframebody.h
changeset 0 5752a19fdefe
--- /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