diff -r 000000000000 -r 5752a19fdefe imaging/imagingfws/src/imageframebody.h --- /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 + +/** +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