activityfw/activitydatabase/hsactivitydbserver/src/activitygraphicfilescaling.cpp
changeset 96 5d243a69bdda
parent 95 c739008478cc
child 97 1e962b12a8db
--- a/activityfw/activitydatabase/hsactivitydbserver/src/activitygraphicfilescaling.cpp	Mon May 24 20:50:46 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 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 :
- *
- */
-#include "activitygraphicfilescaling.h"
-#include <imageconversion.h>
-
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CGraphicsSalingHandler::CGraphicsSalingHandler(MImageReadyCallBack &aNotify,
-                            const TSize &aNewSize,
-                            TKindOfScaling aKindOfScaling
-                            /* = CGraphicsSalingHandler::EIgnoreAspectRatio*/) :
-    CActive(EPriorityNormal),
-    mNotify(aNotify),
-    mNewSize(aNewSize),
-    mKindOfScaling(aKindOfScaling),
-    mCurrentOperation(ENone)
-{
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CGraphicsSalingHandler::~CGraphicsSalingHandler()
-{
-    Cancel();
-    delete mBitmapFromFile;
-    delete mBitmapOutput;
-    delete mImageDecoder;
-    delete mBitmapScaler;
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CGraphicsSalingHandler* CGraphicsSalingHandler::NewL(MImageReadyCallBack &aNotify,
-                                RFs &aFs,
-                                const TDesC &aFileName,
-                                const TDesC8& aMimeType,
-                                const TSize &aNewSize,
-                                TKindOfScaling aKindOfScaling
-                                /* = CGraphicsSalingHandler::EIgnoreAspectRatio*/)
-{
-    CGraphicsSalingHandler *self = CGraphicsSalingHandler::NewLC(aNotify,
-                                                                 aFs,
-                                                                 aFileName,
-                                                                 aMimeType,
-                                                                 aNewSize,
-                                                                 aKindOfScaling);
-    CleanupStack::Pop();
-    return self;
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CGraphicsSalingHandler* CGraphicsSalingHandler::NewLC(MImageReadyCallBack &aNotify,
-                                RFs &aFs,
-                                const TDesC &aFileName,
-                                const TDesC8& aMimeType,
-                                const TSize &aNewSize,
-                                TKindOfScaling aKindOfScaling
-                                /* = CGraphicsSalingHandler::EIgnoreAspectRatio*/)
-{
-    CGraphicsSalingHandler *self = new (ELeave) CGraphicsSalingHandler(aNotify,
-                                                                       aNewSize,
-                                                                       aKindOfScaling);
-
-    
-
-    CleanupStack::PushL(self);
-    self->ConstructL(aFs, aFileName, aMimeType);
-    return self;
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CGraphicsSalingHandler::ConstructL(RFs &aFs, const TDesC &aFileName, const TDesC8& aMimeType)
-{
-    if (aFileName.Length() == 0
-        || aFs.IsValidName(aFileName) == EFalse) {
-        User::Leave(KErrPathNotFound);
-    }
-
-    if (aMimeType.Length() == 0) {
-        User::Leave(KErrBadName);
-    }
-
-    if(0>=mNewSize.iWidth || 0>=mNewSize.iHeight) {
-       User::Leave(KErrCorrupt);
-    }
-
-    CActiveScheduler::Add(this);
-
-    mBitmapScaler = CBitmapScaler::NewL();
-    mBitmapScaler->SetQualityAlgorithm(CBitmapScaler::EMaximumQuality);
-
-    // convert *.png to bitmap
-    mImageDecoder = CImageDecoder::FileNewL(aFs, aFileName, aMimeType);
-    mBitmapFromFile = new(ELeave)CFbsBitmap();
-    const TFrameInfo frameInfo(mImageDecoder->FrameInfo(0));
-    User::LeaveIfError(mBitmapFromFile->Create(frameInfo.iOverallSizeInPixels, 
-                                               frameInfo.iFrameDisplayMode));
-
-    mImageDecoder->Convert(&iStatus, *mBitmapFromFile, 0);
-    mCurrentOperation = EConvertBitmapFromFile;
-    SetActive();
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CGraphicsSalingHandler::DoCancel()
-{
-    switch (mCurrentOperation) {
-    case EConvertBitmapFromFile:
-        mImageDecoder->Cancel();
-        break;
-    case EScale:
-        mBitmapScaler->Cancel();
-        break;
-    }
-    mNotify.ImageReadyCallBack(KErrCancel, 0);
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void CGraphicsSalingHandler::RunL()
-{
-    if(iStatus.Int()){
-        mNotify.ImageReadyCallBack(iStatus.Int(), 0);
-        return;
-    }
-
-    switch (mCurrentOperation) {
-    case EConvertBitmapFromFile: {
-            delete mImageDecoder;
-            mImageDecoder = 0;
-            
-            mBitmapOutput = new (ELeave)CFbsBitmap();
-            User::LeaveIfError(mBitmapOutput->Create(Scaling(), mBitmapFromFile->DisplayMode()));
-            mBitmapScaler->Scale(&iStatus, *mBitmapFromFile, *mBitmapOutput, EFalse);
-            mCurrentOperation = EScale;
-            SetActive();
-            break;
-        }
-    case EScale: {
-            mCurrentOperation = ENone;
-
-            delete mBitmapScaler;
-            mBitmapScaler = 0;
-            
-            delete mBitmapFromFile;
-            mBitmapFromFile = 0;
-
-            if (mKindOfScaling == CGraphicsSalingHandler::EKeepAspectRatioByExpanding) {
-                User::LeaveIfError(mBitmapOutput->Resize(mNewSize));
-            }
-
-            mNotify.ImageReadyCallBack(iStatus.Int(), mBitmapOutput);
-            break;
-        }
-    }
-}
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-TSize CGraphicsSalingHandler::Scaling()
-{
-   TSize originalSize = mBitmapFromFile->SizeInPixels();
-   float widthFactor = mNewSize.iWidth / (float)originalSize.iWidth;
-   float heightFactor = mNewSize.iHeight / (float)originalSize.iHeight;
-
-   TSize retSize(mNewSize);
-
-   if (mKindOfScaling == CGraphicsSalingHandler::EKeepAspectRatio) {
-       retSize = (widthFactor < heightFactor) ?
-                 TSize(mNewSize.iWidth, widthFactor * originalSize.iHeight) :
-                 TSize(heightFactor * originalSize.iWidth, mNewSize.iHeight);
-   } else if (mKindOfScaling == CGraphicsSalingHandler::EKeepAspectRatioByExpanding) {
-      retSize = (widthFactor < heightFactor) ?
-                TSize(heightFactor * originalSize.iWidth, mNewSize.iHeight) :
-                TSize(mNewSize.iWidth, widthFactor * originalSize.iHeight);
-   }
-   return retSize;
-}
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-TInt CGraphicsSalingHandler::RunError(TInt aError)
-{
-    mNotify.ImageReadyCallBack(aError, 0);
-    return KErrNone;
-}