diff -r 735348f59235 -r 948c7f65f6d4 mmplugins/imagingplugins/codecs/PNGCodec/PNGConvert.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmplugins/imagingplugins/codecs/PNGCodec/PNGConvert.h Wed Sep 01 12:38:50 2010 +0100 @@ -0,0 +1,89 @@ +// Copyright (c) 1999-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: +// + +#ifndef __PNGCONVERT_H__ +#define __PNGCONVERT_H__ + +#include +#include "PNGCodec.h" + +/** @file + @internalComponent */ + +class MPngDecoder + { +public: + virtual void GoToProcessDataState()=0; + }; + +// Decoder. +class CPngReadCodec; +class CPngDecoder : public CImageDecoderPlugin, public MPngDecoder + { +public: + enum TDecodeState + { + EStateStart, + EStateNormalProcess, + EStateDataProcess + }; +public: + CPngDecoder(); + + static CPngDecoder* NewL(); + virtual ~CPngDecoder(); + + virtual void ImageType(TInt aFrameNumber, TUid& aImageType, TUid& aImageSubType) const; + CFrameInfoStrings* FrameInfoStringsL(RFs& aFs, TInt aFrameNumber); + + void GoToProcessDataState(); + +private: + // From CImageDecoderPlugin + void ReadFormatL(); + void ScanDataL(); + void DoConvert(); + void InitConvertL(); + void NotifyComplete(); + + TDecodeState iState; + }; + +// CPngEncoder +class CPngEncoder : public CImageEncoderPlugin + { +private: + enum TEncodeState + { + EStateNormalProcess, + EStateDataProcess + }; +public: + static CPngEncoder* NewL(); + virtual ~CPngEncoder(); + void GoToProcessDataState(); +protected: + // from CImageEncoderPlugin + void PrepareEncoderL(const CFrameImageData* aFrameImageData); + void DoConvert(); + void UpdateHeaderL(); + void InitConvertL(); + void NotifyComplete(); +private: + CPngEncoder(); +private: + TEncodeState iState; + }; +#endif // __PNGCONVERT_H__