--- a/phoneclientserver/phoneserver/Src/ImageHandler/cphsrvimagesaver.cpp Mon Aug 23 15:50:31 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +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: Image saver implementation
-*
-*/
-
-
-#include "cphsrvimagesaver.h"
-#include "mphsrvimagesaverobserver.h"
-#include <imageconversion.h>
-#include <f32file.h>
-#include <bitmaptransforms.h>
-
-// primary file name for VT image
-_LIT( KPhSrvPrimaryVtImageFileName, "vtstillimage1" );
-
-// file name used if primary file is in use while save occurs
-_LIT( KPhSrvAlternateVtImageFileName, "vtstillimage2" );
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// 1st constructor
-// ---------------------------------------------------------------------------
-//
-CPhSrvImageSaver* CPhSrvImageSaver::NewL(
- RFs& aFs,
- const TFileName& aPrivatePath,
- MPhSrvImageSaverObserver& aObserver )
- {
- CPhSrvImageSaver* saver = new ( ELeave ) CPhSrvImageSaver(
- aFs, aPrivatePath, aObserver );
- CleanupStack::PushL( saver );
- saver->ConstructL();
- CleanupStack::Pop();
- return saver;
- }
-
-// ---------------------------------------------------------------------------
-// destructor
-// ---------------------------------------------------------------------------
-//
-CPhSrvImageSaver::~CPhSrvImageSaver()
- {
- delete iImageDecoder;
- delete iFileManager;
- delete iScaler;
- }
-
-// ---------------------------------------------------------------------------
-// Saves image
-// 1) decode from file
-// 2a) scale (for single frame images) and save to phone server private dir, or
-// 2b) multiframe image - copy file as is to phone server private directory
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::SaveImageL( const TDesC& aFileName )
- {
- if ( IsActive() )
- {
- User::Leave( KErrInUse );
- }
- iImageDecoder = CImageDecoder::FileNewL( iFs, aFileName );
- const TInt frameCount = iImageDecoder->FrameCount();
- if ( frameCount > 1 )
- {
- // decoder not needed because image is copied as is
- delete iImageDecoder;
- iImageDecoder = NULL;
- CopyImageL( aFileName );
- }
- else if ( frameCount == 1 )
- {
- ScaleImageL();
- }
- else
- {
- // invalid image?
- User::Leave( KErrCorrupt );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Copies the file
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::CopyImageL( const TDesC& aFileName )
- {
- TName targetFileName;
- ConstructVtFileSaveName( aFileName, targetFileName );
- iFileManager = CFileMan::NewL( iFs );
- iFileManager->Copy( aFileName, targetFileName,
- CFileMan::EOverWrite, iStatus );
- }
-
-// ---------------------------------------------------------------------------
-// ScaleImageL
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::ScaleImageL()
- {
- }
-
-// ---------------------------------------------------------------------------
-// Checks if primary file is in use.
-// ---------------------------------------------------------------------------
-//
-TInt CPhSrvImageSaver::IsPrimaryFileInUse( TBool& aIsInUse )
- {
- CDir* entries = NULL;
- TInt res = iFs.GetDir( iPath, KEntryAttNormal, EDirsLast, entries );
- if ( res == KErrNone && entries )
- {
- const TInt entryCount( entries->Count() );
- for ( TInt index = 0; index < entryCount; index++ )
- {
- const TEntry& entry = ( *entries )[index];
- if ( entry.iName.Compare( KPhSrvPrimaryVtImageFileName() ) >= 0 )
- {
- // primary file name matches with directory entry (extension
- // depends on file format)
- res = iFs.IsFileOpen( entry.iName, aIsInUse );
- index = entryCount; // break loop
- }
- }
- }
- delete entries;
- return res;
- }
-
-// ---------------------------------------------------------------------------
-// Constructs target file name for VT still image. Alternate name is used if
-// file with primary name is open.
-// ---------------------------------------------------------------------------
-//
-TInt CPhSrvImageSaver::ConstructVtFileSaveName(
- const TDesC& aSourceFileName,
- TName& aTargetFileName )
- {
- TBool inUse( EFalse );
- TInt res( IsPrimaryFileInUse( inUse ) );
- if ( res == KErrNone )
- {
- TParse sourceName;
- sourceName.Set( aSourceFileName, NULL, NULL );
- aTargetFileName = iPath;
- if ( inUse )
- {
- // primary file in use (open), use alternalte name
- aTargetFileName.Append( KPhSrvAlternateVtImageFileName() );
- }
- else
- {
- aTargetFileName.Append( KPhSrvPrimaryVtImageFileName() );
- }
- aTargetFileName.Append( sourceName.Ext() );
- }
- return res;
- }
-
-// ---------------------------------------------------------------------------
-// CPhSrvImageSaver::RunL
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::RunL()
- {
- iObserver.ImageSaved( iStatus.Int() );
- }
-
-// ---------------------------------------------------------------------------
-// CPhSrvImageSaver::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::DoCancel()
- {
- iObserver.ImageSaved( KErrCancel );
- }
-
-// ---------------------------------------------------------------------------
-// CPhSrvImageSaver::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CPhSrvImageSaver::ConstructL()
- {
- User::Leave( KErrNotSupported );
- }
-
-// ---------------------------------------------------------------------------
-// c++ constructor
-// ---------------------------------------------------------------------------
-//
-CPhSrvImageSaver::CPhSrvImageSaver( RFs& aFs, const TFileName& aPrivatePath,
- MPhSrvImageSaverObserver& aObserver)
- : CActive( CActive::EPriorityStandard ),
- iFs( aFs ),
- iPath( aPrivatePath ),
- iObserver( aObserver )
- {
- }