filemanager/Engine/src/TFileManagerDriveInfo.cpp
branchRCL_3
changeset 38 491b3ed49290
parent 36 95243422089a
child 39 65326cf895ed
--- a/filemanager/Engine/src/TFileManagerDriveInfo.cpp	Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-/*
-* Copyright (c) 2002-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:  Drive info storage
-*
-*/
-
-
-// INCLUDE FILES
-#include <coreapplicationuisdomainpskeys.h>
-#include "TFileManagerDriveInfo.h"
-#include "CFileManagerEngine.h"
-#include "FileManagerDebug.h"
-#include "CFileManagerCommonDefinitions.h"
-#include "CFileManagerFeatureManager.h"
-#ifdef RD_MULTIPLE_DRIVE
-#include <driveinfo.h>
-#endif // RD_MULTIPLE_DRIVE
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::TFileManagerDriveInfo
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TFileManagerDriveInfo::TFileManagerDriveInfo()
-    {
-    Reset();
-    }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::TFileManagerDriveInfo
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TFileManagerDriveInfo::Reset()
-    {
-    iName.Zero();
-    iCapacity = 0;
-    iSpaceFree = 0;
-    iUid = 0;
-    iDrive = 0;
-    iState = 0;
-    }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::GetInfoL
-// -----------------------------------------------------------------------------
-//
-void TFileManagerDriveInfo::GetInfoL(
-        const CFileManagerEngine& aEngine, const TInt aDrive )
-    {
-    FUNC_LOG
-
-    INFO_LOG1( "TFileManagerDriveInfo::GetInfoL - aDrive %d", aDrive )
-
-    Reset();
-    iDrive = aDrive;
-
-    RFs& fs( aEngine.Fs() );
-    CheckMountL( fs, aDrive );
-    TInt err( FillStateFromVolumeInfo( fs, aDrive ) );
-    if ( err == KErrInUse )
-        {
-        iState |= EDriveInUse;
-        }
-    else if ( err == KErrCorrupt )
-        {
-        iState |= EDrivePresent | EDriveCorrupted;
-        }
-    else if ( err == KErrLocked )
-        {
-        iState |= EDrivePresent | EDriveLocked | EDriveFormatted |
-            EDrivePasswordProtected | EDriveLockable;
-        }
-    else if ( err == KErrNone )
-        {
-        if ( iState & EDriveRemote )
-            {
-            if ( aEngine.IsRemoteDriveConnected( aDrive ) )
-                {
-                iState |= EDriveConnected;
-                }
-            }
-
-#ifndef RD_FILE_MANAGER_BACKUP
-        if ( iState & EDriveRemovable )
-            {
-            if ( aEngine.BackupFileExistsL( aDrive ) )
-                {
-                iState |= EDriveBackupped;
-                }
-            }
-#endif // RD_FILE_MANAGER_BACKUP
-
-        }
-
-    INFO_LOG3( "TFileManagerDriveInfo::GetInfoL - aDrive %d, err %d, iState 0x%x",
-        aDrive, err, iState )
-
-    if ( aEngine.FeatureManager().IsEmbedded() )
-        {
-        // Disable format in embedded mode, because it messes up 
-        // operations since embedded apps are closed.
-        iState &= ~EDriveFormattable;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::CheckMountL()
-// -----------------------------------------------------------------------------
-// 
-void TFileManagerDriveInfo::CheckMountL(
-        RFs& aFs, const TInt aDrive ) const
-    {
-    FUNC_LOG
-
-    HBufC* fullname = HBufC::NewLC( KMaxFullName );
-    TPtr name( fullname->Des() );
-    TInt err( aFs.FileSystemName( name, aDrive ) );
-    if ( err == KErrNone && !name.Length() )
-        {
-        // Drive isn't mounted at present, so try it now....
-        // Returns KErrLocked, if locked and the password
-        // is not in store
-        err = aFs.MountFileSystem( KFmgrFatFSName, aDrive );
-        }
-    CleanupStack::PopAndDestroy( fullname );
-
-    LOG_IF_ERROR1( err, "TFileManagerDriveInfo::CheckMountL-err=%d", err )
-    }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::FillStateFromDriveInfo()
-// -----------------------------------------------------------------------------
-// 
-TInt TFileManagerDriveInfo::FillStateFromDriveInfo(
-#ifdef RD_MULTIPLE_DRIVE
-        RFs& aFs,
-#else // RD_MULTIPLE_DRIVE
-        RFs& /*aFs*/,
-#endif // RD_MULTIPLE_DRIVE
-        const TInt aDrive,
-        const TDriveInfo& aDrvInfo )
-    {
-    FUNC_LOG
-
-    TInt ret( KErrNone );
-
-#ifdef RD_MULTIPLE_DRIVE
-    TUint drvStatus( 0 );
-    TInt err( DriveInfo::GetDriveStatus( aFs, aDrive, drvStatus ) );
-    if ( err != KErrNone )
-        {
-        ERROR_LOG2( "TFileManagerDriveInfo::FillStateFromDriveInfo - aDrive %d, Status err %d",
-            aDrive, err )
-        }
-    INFO_LOG2( "TFileManagerDriveInfo::FillStateFromDriveInfo - Media type %d, drvStatus 0x%x",
-        aDrvInfo.iType, drvStatus )
-    if ( aDrvInfo.iType != EMediaNotPresent && ( drvStatus & DriveInfo::EDriveInUse ) )
-        {
-        ret = KErrInUse; // Drive is reserved for exclusive usage like file transfer
-        }
-    if ( ( drvStatus & DriveInfo::EDriveInternal ) &&
-        ( drvStatus & DriveInfo::EDriveExternallyMountable ) )
-        {
-        // Handle mass storage bits here
-        iState |= EDriveMassStorage | EDriveRemovable;
-        if ( aDrvInfo.iMediaAtt & KMediaAttFormattable )
-            {
-            iState |= EDriveFormattable;
-            }
-        if ( aDrvInfo.iMediaAtt & KMediaAttLocked )
-            {
-            // Locking internal drives is not supported
-            iState |= EDriveCorrupted;
-            ret = KErrCorrupt;
-            }
-        return ret;
-        }
-    if ( drvStatus & DriveInfo::EDriveUsbMemory )
-        {
-        iState |= EDriveUsbMemory;
-        }
-#endif // RD_MULTIPLE_DRIVE
-
-    // Setup flags from drive info
-    if ( aDrvInfo.iMediaAtt & KMediaAttWriteProtected )
-        {
-        iState |= EDriveWriteProtected;
-        }
-    if ( aDrvInfo.iMediaAtt & KMediaAttLocked )
-        {
-        iState |= EDriveLocked;
-        ret = KErrLocked;
-        }
-    if ( aDrvInfo.iMediaAtt & KMediaAttFormattable )
-        {
-        iState |= EDriveFormattable;
-        }
-    if ( aDrvInfo.iMediaAtt & KMediaAttLockable )
-        {
-        iState |= EDriveLockable;
-        }
-    if ( aDrvInfo.iMediaAtt & KMediaAttHasPassword )
-        {
-        iState |= EDrivePasswordProtected;
-        }
-    if ( ( aDrvInfo.iDriveAtt & KDriveAttRemovable ) ||
-        aDrive == KFmgrMemoryCardDrive )
-        {
-        iState |= EDriveRemovable;
-#ifdef RD_MULTIPLE_DRIVE
-        if ( drvStatus & DriveInfo::EDriveSwEjectable )
-            {
-            iState |= EDriveEjectable;
-            }
-#else // RD_MULTIPLE_DRIVE
-        // Eject is possible for external memory cards
-        if ( !( aDrvInfo.iDriveAtt & KDriveAttInternal ) ||
-            aDrive == KFmgrMemoryCardDrive )
-            {
-            iState |= EDriveEjectable;
-            }
-#endif // RD_MULTIPLE_DRIVE
-        }
-    if ( aDrvInfo.iDriveAtt & KDriveAttRemote )
-        {
-        iState |= EDriveRemote;
-        }
-
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// TFileManagerDriveInfo::FillStateFromVolumeInfo()
-// -----------------------------------------------------------------------------
-// 
-TInt TFileManagerDriveInfo::FillStateFromVolumeInfo(
-        RFs& aFs, const TInt aDrive )
-    {
-    FUNC_LOG
-
-    TVolumeInfo volInfo;
-    TInt ret( aFs.Volume( volInfo, aDrive ) );
-    LOG_IF_ERROR1( ret,
-        "TFileManagerDriveInfo::FillStateFromVolumeInfo - Volume err %d", ret );
-    if ( ret == KErrNone )
-        {
-        // Get all information from volume info
-        TInt maxLen( Min( volInfo.iName.Length(), KMaxVolumeName ) );
-
-        iName = volInfo.iName.Left( maxLen );
-        iUid = volInfo.iUniqueID;
-        iCapacity = volInfo.iSize;
-        iSpaceFree = volInfo.iFree;
-
-        iState |= EDrivePresent;
-
-        if ( volInfo.iSize )
-            {
-            iState |= EDriveFormatted;
-            }
-
-        ret = FillStateFromDriveInfo( aFs, aDrive, volInfo.iDrive );
-        }
-    else
-        {
-        // Get all information from drive info
-        TDriveInfo& drvInfo( volInfo.iDrive );
-        TInt err( aFs.Drive( drvInfo, aDrive ) );
-        LOG_IF_ERROR1( err,
-            "TFileManagerDriveInfo::FillStateFromVolumeInfo - Drive err %d", err );
-        if ( err == KErrNone )
-            {
-            err = FillStateFromDriveInfo( aFs, aDrive, drvInfo );
-
-            // If memory card is not ready but type is present,
-            // then check if it is reserved.
-            if( err == KErrNone &&
-               ret == KErrNotReady &&
-               drvInfo.iType != EMediaNotPresent )
-                {
-                // Check USB file transfer state
-                TInt prop( ECoreAppUIsUSBFileTransferUninitialized );
-                RProperty::Get(
-                    KPSUidCoreApplicationUIs,
-                    KCoreAppUIsUSBFileTransfer, prop );
-                if ( prop == ECoreAppUIsUSBFileTransferActive )
-                    {
-                    ret = KErrInUse; // Reserved for file transfer
-                    }
-                INFO_LOG2( "TFileManagerDriveInfo::FillStateFromVolumeInfo-prop=%d,ret=%d",
-                    prop, ret )
-                }
-            }
-        if ( err != KErrNone )
-            {
-            ret = err;
-            }
-        }
-
-    LOG_IF_ERROR2( ret,
-        "TFileManagerDriveInfo::FillStateFromVolumeInfo - aDrive %d, Ret %d",
-        aDrive, ret )
-
-    return ret;
-    }
-
-//  End of File