diff -r 2e2a89493e2b -r 48dd0f169f0d imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailscaletask.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/inc/thumbnailscaletask.h Fri Sep 03 10:29:37 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,286 +0,0 @@ -/* -* Copyright (c) 2006-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: Task for scaling thumbnails - * -*/ - - -#ifndef THUMBNAILSCALETASK_H -#define THUMBNAILSCALETASK_H - -#include "thumbnailtask.h" -#include "thumbnailprovider.h" -#include "thumbnailstore.h" // TThumbnailPersistentSize - -class CThumbnailServer; - -/** - * Task for scaling thumbnails. - * - * @since S60 v5.0 - */ -class CThumbnailScaleTask: public CThumbnailTask - { -public: - - /** - * Two-phased constructor - * - * @since S60 v5.0 - * @param aProcessor Processor object for running tasks. - * @param aServer Server to use. - * @param aFilename Filename of file from which the thumbnail is to be - * created. - * @param aBitmap Bitmap image. Scale task assumes ownership. - * @param aOriginalSize Original size of the image. - * @param aTargetSize Target size of thumbnail image. - * @param aCrop Enable or disable cropping. - * @param aDisplayMode Display mode. - * @param aPriority Priority of the request. - * @param aThumbnailSize Prededined size of thumbnail. - * @return New CThumbnailScaleTask object. - * @param aEXIF is origin EXIF. - * @param aRequestId Request ID. - */ - static CThumbnailScaleTask* NewL( CThumbnailTaskProcessor& aProcessor, - CThumbnailServer& aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, - const TSize& aOriginalSize, const TSize& aTargetSize, TBool aCrop, - TDisplayMode aDisplayMode, TInt aPriority, const TDesC& aTargetUri, - const TThumbnailSize aThumbnailSize, const TInt64 aModified, - const TBool aBitmapToPool, const TBool aEXIF, - const TThumbnailServerRequestId aRequestId, const TBool aImportVirtual); - - /** - * Destructor - * - * @since S60 v5.0 - */ - virtual ~CThumbnailScaleTask(); - - /** - * StartL - * - * @since S60 v5.0 - */ - void StartL(); - - /** - * Handles an active object's request completion event. - * - * @since S60 v5.0 - */ - void RunL(); - - /** - * Implements cancellation of an outstanding request. - * - * @since S60 v5.0 - */ - void DoCancel(); - - /** - * Changes priority of the task. - * - * @since S60 v5.0 - */ - void ChangeTaskPriority( TInt aNewPriority ); - - /** - * Set whether the scaled image is to be stored or not. - * - * @since S60 v5.0 - * @param aDoStore Boolean value stating should the image be stored. - */ - void SetDoStore( TBool aDoStore ); - -private: - - /** - * C++ default constructor - * - * @since S60 v5.0 - * @param aProcessor Processor object for running tasks. - * @param aServer Server to use. - * @param aFilename Filename of file from which the thumbnail is to be - * created. - * @param aBitmap Bitmap image. Scale task assumes ownership. - * @param aOriginalSize Original size of the image. - * @param aTargetSize Target size of thumbnail image. - * @param aCrop Enable or disable cropping. - * @param aDisplayMode Display mode. - * @param aPriority Priority of the request. - * @param aThumbnailSize Prededined size of thumbnail. - * @return New CThumbnailScaleTask object. - * @param aEXIF is origin EXIF. - * @param aRequestId Request ID. - */ - CThumbnailScaleTask( CThumbnailTaskProcessor& aProcessor, CThumbnailServer& - aServer, const TDesC& aFilename, CFbsBitmap* aBitmap, const TSize& - aOriginalSize, const TSize& aTargetSize, TBool aCrop, TDisplayMode - aDisplayMode, TInt aPriority, const TDesC& aTargetUri, - const TThumbnailSize aThumbnailSize, const TInt64 aModified, - const TBool aBitmapToPool, const TBool aEXIF, - const TThumbnailServerRequestId aRequestId, const TBool aImportVirtual); - - /** - * Symbian 2nd phase constructor can leave. - * - * @since S60 v5.0 - */ - void ConstructL(); - - /** - * Calculates target size to be used for the thumbnail when cropping is - * disabled. The target size may be smaller than requested if aspect - * ratios do not match. Updates iTargetSize. - * - * @since S60 v5.0 - */ - void CalculateTargetSize(); - - /** - * Calculates cropping rectangle to be used for the thumbnail when - * cropping is enabled. Target size will always be the same as requested - * size and the cropping rectangle defines which area of the image will - * be visible. Updates iCropRectangle. - * - * @since S60 v5.0 - */ - void CalculateCropRectangle(); - - /** - * StoreAndCompleteL - * - * @since S60 v5.0 - */ - void StoreAndCompleteL(); - -private: - // Data - - /** - * Server. - */ - CThumbnailServer& iServer; - - /** - * Resides in bitmap pool. - * Not own. But we do are responsible for decreasing the reference count - * if iBitmapInPool is set. - */ - CFbsBitmap* iBitmap; - - /** - * Temporary place to store the original bitmap. This is set to NULL - * after the bitmap has been successfully added to the bitmap pool. - * Own. - */ - CFbsBitmap* iOwnBitmap; - - /** - * Bitmap pool. - */ - TBool iBitmapInPool; - - /** - * Original size of media object. - */ - TSize iOriginalSize; - - /** - * Target size of scaled thubnail (not real of preview) - */ - TSize iTargetSize; - - /** - * Target size of the thumbnail. - */ - TSize iTargetSizeTN; - - /** - * Incidates if cropping is enabled. - */ - TBool iCrop; - - /** - * Defines the visible area of iBitmap which is to be included - * in the thumbnail if cropping is enabled. Not used if cropping - * is disabled. - */ - TRect iCropRectangle; - - /** - * Display mode. - */ - TDisplayMode iDisplayMode; - - /** - * Filename of the image to be used. - */ - TFileName iFilename; - - /** - * Uri of the target object - */ - TFileName iTargetUri; - - /** - * Scaled image. - */ - CFbsBitmap* iScaledBitmap; // own - - /** - * If set, scaled bitmap must be released from pool. - */ - TInt iScaledBitmapHandle; - - /** - * If set, thumbnail will be stored for later use. - */ - TBool iDoStore; - - /** - * Temporary buffer for client/server parameters - */ - TThumbnailRequestParamsPckgBuf iParamsBuf; - - /** - * Size of requested Thumbnail - */ - TThumbnailSize iThumbnailSize; - - /** - * timestamp - */ - TInt64 iModified; - - /** - * Add bitmap to server's pool. - */ - TBool iBitmapToPool; - -#ifdef _DEBUG - TTime aStart, aStop; -#endif - - /** - * Is origin EXIF. - */ - TBool iEXIF; - - // virtual uri - TBool iVirtualUri; -}; - -#endif // THUMBNAILSCALETASK_H