sl@0: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Class declaration for CMassStorageFileSystem. sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @internalTechnology sl@0: */ sl@0: sl@0: #ifndef __CMASSSTORAGEFILESYSTEM_H__ sl@0: #define __CMASSSTORAGEFILESYSTEM_H__ sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include "cusbmassstoragecontroller.h" sl@0: sl@0: sl@0: /** sl@0: Mass Storage Filesystem class. sl@0: Only supports creating a new mount. Calling NewFileL, NewDirL and NewFormatL sl@0: results in the functions leaving with KErrNotReady. sl@0: When this file system is installed a new thread is created to load the sl@0: Usb Mass Storage controller. sl@0: @internalTechnology sl@0: */ sl@0: class CMassStorageFileSystem : public CFileSystem sl@0: { sl@0: public: sl@0: static CMassStorageFileSystem* NewL(); sl@0: ~CMassStorageFileSystem(); sl@0: sl@0: //CFileSystem sl@0: TBool IsExtensionSupported() const; sl@0: TInt Remove(); sl@0: TInt Install(); sl@0: CMountCB* NewMountL() const; sl@0: CFileCB* NewFileL() const; sl@0: CDirCB* NewDirL() const; sl@0: CFormatCB* NewFormatL() const; sl@0: void DriveInfo(TDriveInfo& anInfo,TInt aDriveNumber) const; sl@0: TInt DefaultPath(TDes& aPath) const; sl@0: TInt DriveList(TDriveList& aList) const; sl@0: sl@0: CUsbMassStorageController& Controller(); sl@0: TInt InitThread(); sl@0: TInt InitThreadL(); sl@0: sl@0: private: sl@0: CMassStorageFileSystem(); sl@0: TInt EnumerateMsDrivesL(); sl@0: void ConstructL(); sl@0: sl@0: public: sl@0: // Public so the mount can see it sl@0: RArray iLocalDriveForMediaFlag; sl@0: CArrayFixFlat *iMediaChanged; sl@0: TRequestStatus iThreadStat; sl@0: TBool iInstalled; sl@0: sl@0: private: sl@0: CUsbMassStorageController* iMassStorageController; sl@0: TBool iRunning; sl@0: RArray iMsDrives; sl@0: sl@0: sl@0: }; sl@0: sl@0: #endif // __CMASSSTORAGEFILESYSTEM_H__ sl@0: