diff -r 2b7283837edb -r 3104fc151679 servicewidget/servicewidgetdatapublisher/src/cservicewidgetimagedecoder.cpp --- a/servicewidget/servicewidgetdatapublisher/src/cservicewidgetimagedecoder.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,165 +0,0 @@ -/* -* Copyright (c) 2008 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: presene avatar decoder handler - * - * -*/ - - -#include "cservicewidgetimagedecoder.h" -#include "servicewidgetcpglobals.h" -#include -#include - -const TInt KMimeLength = 16; -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::NewL -// Two-phase construction -// --------------------------------------------------------------------------- -// -CServiceWidgetImageDecoder* CServiceWidgetImageDecoder::NewL(MServiceWidgetImagerDecodeObserver& aObserver ) - { - CServiceWidgetImageDecoder* self = new (ELeave) CServiceWidgetImageDecoder(aObserver); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::CServiceWidgetImageDecoder -// First phase (C++) constructor -// --------------------------------------------------------------------------- -// -CServiceWidgetImageDecoder::CServiceWidgetImageDecoder(MServiceWidgetImagerDecodeObserver& aObserver ) - : - CActive( CActive::EPriorityStandard ), - iObserver(aObserver) - { - CActiveScheduler::Add(this); - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::ConstructL -// ConstructL, second phase constructor -// --------------------------------------------------------------------------- -// -void CServiceWidgetImageDecoder::ConstructL() - { - User::LeaveIfError( iFs.Connect() ); - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::~CServiceWidgetImageDecoder -// --------------------------------------------------------------------------- -// -CServiceWidgetImageDecoder::~CServiceWidgetImageDecoder() - { - DoCancel(); - if (iImgDecoder) - { - delete iImgDecoder; - iImgDecoder = NULL; - } - if (iBitmap) - { - delete iBitmap; - iBitmap = NULL; - } - if (iBitmapData) - { - delete iBitmapData; - iBitmapData = NULL; - } - iFs.Close(); - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::StartDecodingL -// Starts the decoding process -// --------------------------------------------------------------------------- -// -void CServiceWidgetImageDecoder::StartDecodingL(const TDesC8& aBitmapData ) - { - iBitmapData = aBitmapData.AllocL(); - - iMimeType = HBufC8::NewL( KMimeLength); - TPtr8 mimePtr = iMimeType->Des(); - CImageDecoder::GetMimeTypeDataL( *iBitmapData , mimePtr ); - - iImgDecoder = CImageDecoder::DataNewL( iFs, *iBitmapData ); - TFrameInfo info = iImgDecoder->FrameInfo(); - iBitmap = new ( ELeave ) CFbsBitmap; - User::LeaveIfError( iBitmap->Create( info.iOverallSizeInPixels, info.iFrameDisplayMode )); - - iNextOperationId = EOpEncodeBitmap; - iStatus = KRequestPending; - iImgDecoder->Convert( &iStatus, *iBitmap ); - SetActive(); - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::RunL -// Called by the active object framework when the decoding (request) is -// completed. -// --------------------------------------------------------------------------- -// -void CServiceWidgetImageDecoder::RunL() - { - User::LeaveIfError( iStatus.Int() ); - - switch( iNextOperationId ) - { - case EOpEncodeBitmap: - { - StartEncodingL(); - break; - } - case EOpComplete: - { - iObserver.HandlerDecodeCompleteL(); - break; - } - } - } - -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::DoCancel -// Called when the decoding (request) is cancelled for some reason. -// --------------------------------------------------------------------------- -// -void CServiceWidgetImageDecoder::DoCancel() - { - iImgDecoder->Cancel(); - } -// --------------------------------------------------------------------------- -// CServiceWidgetImageDecoder::StartEncodingL -// Called when the decoding (request) is cancelled for some reason. -// --------------------------------------------------------------------------- -// -void CServiceWidgetImageDecoder::StartEncodingL() - { - iImageEncoder = CImageEncoder::FileNewL(iFs, - KSeTAvatarPath, - *iMimeType, - CImageEncoder::EOptionExtUseWithSetThumbnail ); - iImageEncoder->SetThumbnail(ETrue); - - iNextOperationId = EOpComplete; - iStatus = KRequestPending; - iImageEncoder->Convert( &iStatus, *iBitmap ); - SetActive(); - } - -// end of file