diff -r 491b3ed49290 -r 65326cf895ed filemanager/Engine/inc/TFileManagerDriveInfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filemanager/Engine/inc/TFileManagerDriveInfo.h Wed Sep 01 12:31:07 2010 +0100 @@ -0,0 +1,109 @@ +/* +* Copyright (c) 2002-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: Drive info storage +* +*/ + + +#ifndef TFILEMANAGERDRIVEINFO_H +#define TFILEMANAGERDRIVEINFO_H + + +// INCLUDES +#include + + +// CONSTANTS +const TInt KMaxVolumeName = 11; // Limited by FAT +// Remove these when there is API available for checking +const TInt KFmgrSystemDrive = EDriveC; +const TInt KFmgrMemoryCardDrive = EDriveE; +const TInt KFmgrRomDrive = EDriveZ; +const TInt KFmgrRamDrive = EDriveD; + + +// FORWARD DECLARATIONS +class RFs; +class CFileManagerEngine; + + +// CLASS DECLARATION +/** +* TFileManagerDriveInfo is used for storing drive info +* +* @lib FileManagerEngine.lib +* @since 2.0 +*/ +class TFileManagerDriveInfo + { + public: + /** + * C++ default constructor. + */ + IMPORT_C TFileManagerDriveInfo(); + + /** + * Resets contents + */ + IMPORT_C void Reset(); + + TBuf< KMaxVolumeName > iName; + TInt64 iCapacity; + TInt64 iSpaceFree; + TUint iUid; + TInt iDrive; // EDriveA...EDriveZ + // Drive state bits + enum TDriveState + { + EDrivePresent = 0x1, + EDriveLocked = 0x2, + EDriveCorrupted = 0x4, + EDriveWriteProtected = 0x8, + EDriveRemovable = 0x10, + EDriveRemote = 0x20, + EDriveFormattable = 0x40, + EDriveFormatted = 0x80, + EDriveLockable = 0x100, + EDrivePasswordProtected = 0x200, + EDriveBackupped = 0x400, + EDriveConnected = 0x800, + EDriveEjectable = 0x1000, + EDriveInUse = 0x2000, + EDriveMassStorage = 0x4000, + EDriveUsbMemory = 0x8000 + }; + TUint32 iState; + + public: + /** + * Gets drive info + * @since 3.1 + * @param aEngine Reference to engine + * @param aDrive Drive that info is required + */ + void GetInfoL( const CFileManagerEngine& aEngine, const TInt aDrive ); + + private: + void CheckMountL( RFs& aFs, const TInt aDrive ) const; + + TInt FillStateFromDriveInfo( + RFs& aFs, const TInt aDrive, const TDriveInfo& aDrvInfo ); + + TInt FillStateFromVolumeInfo( RFs& aFs, const TInt aDrive ); + + }; + +#endif // TFILEMANAGERDRIVEINFO_H + +// End of File