diff -r e3cdd00b5ae3 -r 27fe719c32e6 camappengine/StillConverter/Inc/CaeStillConverter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camappengine/StillConverter/Inc/CaeStillConverter.h Wed Sep 01 12:23:23 2010 +0100 @@ -0,0 +1,159 @@ +/* +* Copyright (c) 2002 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: Still Image Converter base class for Camera Application Engine +* +*/ + + + +#ifndef CAESTILLCONVERTER_H +#define CAESTILLCONVERTER_H + +// INCLUDES +#include + +// CONSTANTS + +const TUid KUidSpecialFreeScalingDecoder = { 0x101FF555 }; // This decoder supports free scaling + +// CLASS DECLARATION + +/** +* Still Converter class. +* Base class for still image conversions by the Camera Application Engine. +*/ +NONSHARABLE_CLASS( CCaeStillConverter ) : public CActive + { + + public: + + /** + * Destructor. + */ + virtual ~CCaeStillConverter(); + + protected: + + /** + * Internal state. + */ + enum + { + EIdle, + EConvert + }; + + protected: // Functions from base classes + /** + * From CActive, handles an active object’s request completion event. + * @return void + */ + void RunL(); + + /** + * From CActive, called if CCaeStillConverter function RunL() leaves. + * @param aError Standard Symbian OS error code + * @return Error code KErrNone + */ + TInt RunError( + TInt aError ); + + protected: + /** + * C++ constructor. + */ + CCaeStillConverter(); + + /** + * Symbian 2nd phase constructor that can leave. + * This is intended to be called from derived class ConstructL(). + */ + void ConstructL(); + + protected: + /** + * Returns the engine state. + * @return Boolean indicating if Still Converter is busy + */ + TBool IsBusy() const; + + protected: // To be implemented in a derived class. + /** + * Converts (encodes or decodes) the image. + * @return void + */ + virtual void ConvertL() = 0; + + /** + * Perfoms necessary cleanup and delivers the result to the client. + * @param aError Error code KErrNone to indicate success or a standard Symbian OS error code + * @return void + */ + virtual void ConversionComplete( + TInt aError ) = 0; + + /** + * Sets the specific image codec implementation to be used in decoding and encoding. + * @since 3.1 + * @param aCodecUid The UID of the specific image codec to be used. + * @return void + */ + virtual void SetImageCodecL( + TUid aCodecUid ) = 0; + + protected: // Data + + // Class for image data. + class CImageItem: public CBase + { + public: + CImageItem() {}; + virtual ~CImageItem() + { + delete iBitmap; + delete iImageBuffer; + delete iFrameImageData; + }; + public: + // Bitmap. + CFbsBitmap* iBitmap; + // Bitmap target size. + TSize iBitmapSize; + // Bitmap target size for free scaling. + TSize iFullyScaledBitmapSize; + // Bitmap display mode. + TDisplayMode iBitmapDisplayMode; + // Image in some common image file format (like Jpeg) + HBufC8* iImageBuffer; + // Info for encoder + CFrameImageData* iFrameImageData; + // UID of conversion target image type. + TUid iImageTypeUid; + }; + + // Specific image codec UID. + TUid iImageCodecUid; + + // Pointer to array of CImageItem. + RPointerArray* iImageQueue; + + // Still Converter state. + TInt iState; + + }; + + +#endif // CAESTILLCONVERTER_H + +// End of File