diff -r e3cdd00b5ae3 -r 27fe719c32e6 camappengine/StillConverter/Inc/CaeStillDecoder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camappengine/StillConverter/Inc/CaeStillDecoder.h Wed Sep 01 12:23:23 2010 +0100 @@ -0,0 +1,164 @@ +/* +* 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 Decoder for Camera Application Engine +* +*/ + + + +#ifndef CAESTILLDECODER_H +#define CAESTILLDECODER_H + +// INCLUDES +#include +#include +#include +#include + + +// CLASS DECLARATION + +/** +* Still decoder observer class. +* User of CCaeStillDecoder class must derive from this interface. +* +* @lib CAESTILLCONVERTER.LIB +* @since 2.1 +*/ +class MCaeStillDecoderObserver + { + public: + /** + * Called back by CCaeStillDecoder when it completes conversion (decoding) to CFbsBitmap image. + * @since 2.1 + * @param aImageData Source image (as JPEG) + * @param aBitmap Converted Symbian OS bitmap image + * @param aError Error code KErrNone to indicate success or a standard Symbian OS error code + * @param aImageSize Decoded image size + * @return void + */ + virtual void McaesdoCFbsBitmapImageReady( + HBufC8* aImageData, + CFbsBitmap* aBitmap, + TInt aError, + TInt aImageSize ) = 0; + }; + + +// CLASS DECLARATION + +/** +* Still Decoder class. +* Implements still image decoding for Camera Application Engine +* using Symbian Image Conversion Library (ICL) +* +* @lib CAESTILLCONVERTER.LIB +* @since 2.1 +*/ +NONSHARABLE_CLASS( CCaeStillDecoder ) : public CCaeStillConverter + { + public: // Constructor and destructor + /** + * Two-phased constructor. + */ + IMPORT_C static CCaeStillDecoder* NewL(); + + /** + * Destructor. + */ + IMPORT_C virtual ~CCaeStillDecoder(); + + public: // From CCaeStillConverter: + + void SetImageCodecL( + TUid aCodecUid ); + + public: // New functions + /** + * Sets Still Decoder observer. + * @since 2.1 + * @param aObserver Still Decoder observer + * @return void + */ + IMPORT_C void SetObserver( + MCaeStillDecoderObserver* aObserver ); + + /** + * Creates the CImageItem object, places it in the internal queue and + * starts the memory image conversion where the memory image (e.g. JPEG) + * is converted to bitmap. + * @param aImageBuffer Memory image to convert. Ownership is given. + * @param aTargetBitmapMode Target/destination bitmap color mode + * @param aTargetBitmapSize Target/destination bitmap size without free scaling decoder + * @param aFullyScaledTargetBitmapSize Target/destination bitmap size with free scaling decoder + * @return void + */ + IMPORT_C void ConvertHBufC8ToCFbsBitmapL( + HBufC8* aImageBuffer, + TDisplayMode aTargetBitmapMode, + const TSize& aTargetBitmapSize, + const TSize& aFullyScaledTargetBitmapSize = TSize( 0, 0 ) ); + + /** + * Destroys all allocations for decoding, as the images from the queue. + * @return void + */ + IMPORT_C void Cleanup(); + + protected: // Constructors + /** + * C++ constructor. + */ + CCaeStillDecoder(); + + /** + * Symbian 2nd phase constructor that can leave. + */ + void ConstructL(); + + private: // From CCaeStillConverter: + + /** + * From CActive, implements cancellation of an outstanding request. + * @return void + */ + void DoCancel(); + + protected: // From CCaeStillConverter + + void ConvertL(); + + void ConversionComplete( + TInt aError ); + + private: // Data + + // Still Decoder observer. + MCaeStillDecoderObserver* iObserver; + + // Pointer to ICL decoder object. + CImageDecoder* iDecoder; + + // Pointer to decoded image. + CFbsBitmap* iDecodedImage; + + // Class wide file server handle for file operations + RFs iFs; + }; + + +#endif // CAESTILLDECODER_H + + +// End of File