diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/inc/cameracontroller/camimagedecoder.h --- a/camerauis/cameraapp/generic/inc/cameracontroller/camimagedecoder.h Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 2007 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: Image Decoder class and observer interface. -* -*/ - - -#ifndef CAM_IMAGEDECODER_H -#define CAM_IMAGEDECODER_H - -// =========================================================================== -// Included headers -#include -#include - -// =========================================================================== -// Forward declarations -class CFbsBitmap; -class CImageDecoder; -class MCameraBuffer; -class CCamBufferShare; - - -// =========================================================================== -// Classes - -/** -* Interface for Image Decoder Observers -*/ -class MCamImageDecoderObserver - { - public: - - /** - * Notify observer that the image decoding has finished. - * @param aStatus Status code describing the success of the operation. - * KErrNone if all went as planned. - * @param aBitmap Decoded bitmap. NULL if errors in decoding. - */ - virtual void ImageDecoded( TInt aStatus, const CFbsBitmap* aBitmap ) = 0; - - }; - - -/** -* Image Decoder class -*/ -class CCamImageDecoder : public CActive - { - // ======================================================= - public: - - /** - * 2-phase constructor. - */ - static CCamImageDecoder* NewL( MCamImageDecoderObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CCamImageDecoder(); - - // ------------------------------------------------------- - // From CActive - protected: - - /** - * Called when Cancel is requested and this AO is active. - * @see CActive - */ - virtual void DoCancel(); - - /** - * We get notified of the decoding success by a call to RunL - * when decoding finishes. - * @see CActive - */ - virtual void RunL(); - - /** - * If a leave occurs in RunL, RunError gets called by the - * Active Scheduler. - * @param aError Leave code from RunL. - * @see CActive - */ - virtual TInt RunError( TInt aError ); - - // ------------------------------------------------------- - public: - - void StartConversionL( CCamBufferShare* aBuffer ); - - private: - - /** - * Store the buffer and release any previous buffer. - * Can be called with NULL to release current buffer. - */ - void SetImageData( CCamBufferShare* aBuffer ); - - /** - * Get the image data in descriptor form. - * No new memory is allocated to the returned buffer, - * so ownership not transferred. - * @return Pointer to image data that is to be used for image conversion. - * If EXIF thumbnail is available, it is used, otherwise the - * full image data is used instead. If the image data cannot be - * read from the buffer, or the buffer has not been set, - * leave will occur. - * @leave KErrNotFound, if image buffer is not set or contains no image data. - * Any other system error, e.g. KErrNoMemory. - */ - TDesC8* GetImageDataL(); - - /** - * Read the EXIF thumbnail and return it in descriptor. - * If any errors, return NULL. - * @param aExifData The full image data containing EXIF part. - * @return The EXIF thumbnail in a heap descriptor. NULL if - * error occurs in reading (OOM, no data given, - * no EXIF thumbnail found..). - */ - HBufC8* ReadExifThumbNail( const TDesC8& aExifData ); - - private: - - /** - * 2nd phase constructor. - */ - void ConstructL(); - - /** - * 1st phase constructor. - * Cannot leave. - */ - CCamImageDecoder( MCamImageDecoderObserver& aObserver ); - - // ======================================================= - // Data - private: - - RFs iFs; - MCamImageDecoderObserver& iObserver; - - - CCamBufferShare* iSharedImageData; - HBufC8* iThumbnailData; - - CFbsBitmap* iDecodedBitmap; - CImageDecoder* iDecoder; - - TInt iRetryCounter; - - // ======================================================= - }; - -// =========================================================================== -#endif - -// end of file