usbclasses/usbmscpersonality/inc/CUsbActiveMscHandlerMdrv.h
changeset 34 7858bc6ead78
parent 31 dfdd8240f7c8
child 35 9d8b04ca6939
--- a/usbclasses/usbmscpersonality/inc/CUsbActiveMscHandlerMdrv.h	Fri May 14 16:51:51 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,431 +0,0 @@
-/*
-* Copyright (c) 2006-2010 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:  Header file for class CUsbActiveMscHandler
-*
-*/
-
-
-#ifndef C_CUSBACTIVEMSCHANDLER_H
-#define C_CUSBACTIVEMSCHANDLER_H
-
-#include <usbmsshared.h>        // for P&S used in following MMC states
-#include <f32file.h> // for file system dismounting and mounting
-#include <usb.h>
-#include <e32property.h>
-#include <usbuinotif.h>
-#include <cusbpersonalitynotifier.h>
-#include <cusbpersonalityplugin.h>
-
-// FORWARD DECLARATIONS
-class CUsbActivePowerManager;
-class CUsbMscPersonalityTimer;
-class CRepository;
-class CDevEncSessionBase;
-
-/**
-* Define system state categories used internally by Msc personality plugin
-*/
-enum TUsbGlobalSystemState
-    {
-    EUsbGSStateUnknown = -1,
-    EUsbGSStateCategoryNormal, //rfOn, rfOff, BTSAP
-    EUsbGSStateCharging
-    };
-
-/**
-* The file system mounted to the drive. 
-*/
-enum TUsbFileSystem
-    {
-    EFsyNone = 0, //no file system mounted
-    EFsyMassStorage,
-    EFsyFat
-    };
-
-/**
-*  Class to handle Mass Storage personality (= MSDC).
-*
-*  @lib euser.lib c32.lib efsrv.lib
-*  @since Series 60 3.0
-*/
-class CUsbActiveMscHandler : public CUsbPersonalityPlugin
-    {
-public:  // Constructors and destructor
-        
-    /**
-     * Two-phased constructor.
-     *
-     * @param aPersonalityParams Reference to container class
-     * @return Pointer to created object.
-     */
-     static CUsbActiveMscHandler* NewL(TUsbPersonalityParams& aPersonalityParams);
-        
-     /**
-      * Destructor.
-      */
-    virtual ~CUsbActiveMscHandler();
-
-public: // From base classes CActive
-
-    /**
-     * From CActive.
-     * Implements state machine for this class.
-     *
-     * @since Series 60 3.0
-     */
-    void RunL();
-
-    /**
-     * From CActive.
-     * Never called in this implementation.
-     *
-     * @since Series 60 3.0
-     * @param aError the error returned
-     * @return error
-     */
-    TInt RunError( TInt /*aError*/ );
-
-    /**
-     * From CActive.
-     * Cancel outstanding request.
-     *
-     * @since Series 60 3.0
-     */
-    void DoCancel();
-
-public: // From base class CUsbPersonality
-
-    /**
-     * From CUsbPersonality
-     * Confirm unload in case of personality change 
-     * if msc state is active.
-     *
-     * @since S60 3.0
-     * @param aStatus Status of the ended operation.
-     */
-    virtual void ConfirmPersonalityUnload(TRequestStatus& aStatus);
-
-    /**
-     * From CUsbPersonality
-     * Called by personality handler when personality start needs to be
-     * prepared.
-     *
-     * @since Series 60 3.0
-     * @param aStatus Status of the ended operation.
-     */
-    virtual void PreparePersonalityStart(TRequestStatus& aStatus);
-
-    /**
-     * From CUsbPersonality
-     * Called by personality handler when personality start needs to be
-     * finished. Calls DoFinishPersonalityStartL() and provides error
-     * handling for it.
-     *
-     * @since Series 60 3.0
-     * @param aStatus Status of the ended operation.
-     */
-    virtual void FinishPersonalityStart(TRequestStatus& aStatus);
-
-    /**
-     * From CUsbPersonality
-     * Called by personality handler when personality stop needs to be 
-     * prepared. For this personality: Remounts FAT File System and 
-     * dismounts Mass Storage File System, Switch back from offline mode.
-     *
-     * @since Series 60 3.0
-     * @param aStatus Status of the ended operation.
-     */
-    virtual void PreparePersonalityStop(TRequestStatus& aStatus);
-
-    /**
-     * From CUsbPersonality
-     * Called by personality handler when personality stop needs to be 
-     * finished. Calls DoFinishPersonalityStopL() and provides error
-     * handling for it.
-     *
-     * @since Series 60 3.0
-     * @param aStatus Status of the ended operation.
-     */
-     virtual void FinishPersonalityStop(TRequestStatus& aStatus);
-        
-    /**
-     * From CUsbPersonality
-     * State change notify
-     *
-     * @since Series 60 3.0
-     * @param aState state of the device
-     */
-    virtual void StateChangeNotify( TUsbDeviceState aState );
-        
-public:
-
-    /**
-     * If dismount timer expires, this callback is called.
-     *
-     * @since Series 60 3.2
-     * @param aPtr Pointer to this class
-     * @return KErrNone is always returned
-     */
-    static TInt DismountFatCallBack(TAny* aPtr);
-                            
-private:
-
-    /**
-     * Does the forced dismount.
-     *
-     * @since Series 60 3.2
-     */
-    void ForciblyDismountFat();
-
-    /**
-     * Complete owner class request if any.
-     *
-     * @since Series 60 3.2
-     */
-    void CompleteRequest(TInt aError);
-                
-    /**
-     * Start dismounting FAT from the drives
-     * Also mounts mass storage file system, when all FATs dismounted.
-     *
-     * @since Series 60 5.0
-     */
-    void StartDismountFat();
-
-    /**
-     * Add mass storage file system.
-     *
-     * @return KErrNone if successful or already added
-     * @since Series 60 3.2
-     */
-    TInt AddMassStorageFileSystem();
-                        
-    /**
-     * Remove mass storage file system.
-     *
-     * @since Series 60 5.0
-     */
-    void RemoveMassStorageFileSystem();
-                        
-    /**
-     * Mount mass storage to all the drives
-     * The mass storage is mounted to all the drives in normal global
-     * system state. If device is not locked, the drives are mounted also in 
-     * charging global system state. 
-     */
-    void MountMassStorage();
-                        
-    /**
-     * Returns drives with available MMC card.
-     * @param aDrivesWithMmcInserted Array to which result should be written
-     */
-    TInt GetDrives();
-
-    /**
-     * Dismounts FAT File System from the drive.
-     * @param aDrive Drive from which dismounting should be done
-     */
-    void DismountFat( TInt aDrive );
-
-    /**
-     * Mounts Mass Storage File System into the drive.
-     * @param aDrive Drive to which mounting should be done
-     * @return error
-     */
-    TInt TryMountMassStorage( TInt aDrive );
-
-    /**
-     * Dismounts Mass Storage File System from the drive.
-     * @param aDrive The drive for the dismount
-     * @return error
-     */
-    TInt TryDismountMassStorage( TInt aDrive );
-
-    /**
-     * Mounts FAT File System to the drive.
-     * @param aDrive The drive for the mount
-     * @return error
-     */
-    TInt TryMountFat( TInt aDrive );
-
-    /**
-     * C++ constructor
-     */
-    CUsbActiveMscHandler(TUsbPersonalityParams& aPersonalityParams);
-
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     */
-    void ConstructL();
-        
-    /**
-     * Get global system state
-     * @return state
-     */     
-    TUsbGlobalSystemState GlobalSystemState();
-    
-    /**
-     * Check if device is (scheduled to be) locked or not
-     * @return ETrue/EFalse
-     */     
-    TBool DeviceLocked();
-    
-    /**
-     * Get Lock Time setting
-     * @return time
-     */     
-    TInt AutoLockTime();
-    
-    /**
-     * Get lock status setting
-     * @return status
-     */     
-    TInt AutoLockStatus();
-
-    /**
-     * Unmount Mass storage
-     * This is the reverse of StartMountMassStorage.
-     *
-     * @since Series 60 5.0
-     */
-    void UnmountMassStorage();
-
-    /**
-     * Get the file system mounted to the drive
-     *
-     * @param aDrive The drive which file system is required.
-     * @return The file system. 
-     * @since Series 60 5.0
-     */
-    TUsbFileSystem GetDriveFileSystem( TInt aDrive );
-
-    /**
-     * Tells whether device encryption is supported on device or not.
-     *
-     * @param None
-     * @return TBool 
-     * @since TimeBox 9.2
-     */
-    TBool IsDeviceEncryptionSupportedL();
-    
-	/**
-     * Tells whether device encryption is supported on device or not.
-     *
-     * @param  aDriveLetter pass in the drive that need to be checked
-     * @return TBool
-     * @since TimeBox 9.2
-     */
-	TBool IsEncProtectionRequired(const TInt& aDriveLetter);
-	
-	/**
-     * Dynamic load devenccommonutils.dll.
-     *
-     * @param  None
-     * @since TimeBox9.2
-     */
-	void LoadDevEncSessionL();
-	
-	/**
-     * Unload devenccommonutils.dll.
-     *
-     * @param  None
-     * @since TimeBox9.2
-     */
-	void UnloadDevEncSession();
-
-	 
-private: // Data
-    /**
-     * define the states of Mass Storage personality
-     */
-    enum TUsbMscState
-        {
-        EUsbMscStateIdle,
-        EUsbMscStateStarting,
-        EUsbMscStateMounting,
-        EUsbMscStateFileTransfer,
-        EUsbMscStateStopping,
-        EUsbMscStateForciblyDismounting
-        };
-
-    /**
-     * state of Mass Storage Class
-     */
-    TUsbMscState iMscState;
-
-    /**
-     * File server session handle
-     */
-    RFs iFs;
-    
-    /** 
-     * Indicates whether MSFS has already been added to file server
-     */
-    TBool iMsfsAdded;
-
-    /**
-     * Request to complete later
-     */
-    TRequestStatus* iRequestStatus;
-
-    /**
-     * removable drives in the system
-     */
-    RArray<TInt> iDrives;
-    
-    /**
-     * Needed for multiple drive support
-     */
-    TInt iDriveIndex;
-    
-    /**
-     * Dismount timer: If expired forced dismount used.
-     */
-    CUsbMscPersonalityTimer* iDismountFatTimer;
-    
-    /**
-     * Packages for queries
-     */
-    TUSBQueriesNotifierParamsPckg iQueryParams;
-    
-    /**
-     * Dummy stores for queries and notes
-     */
-    TBuf8<1> iDummy;
-    
-    /**
-     * Used to get device lock settings
-     */
-    CRepository* iRepository;
-    
-    /**
-     * FAT has been unmounted or MSC mounted.
-     */
-    TBool iMountChanged;
-
-    /**
-     * If query note shown by us
-     */
-    TBool iIsQueryNoteShown;
-    
-    /**
-     * Used to load devenccommonutils.dll and check the device encryption status
-     */
-    RLibrary iLibrary;
-    CDevEncSessionBase* iDevEncSession;
-    };
-
-#endif   // USBACTIVEMSCHANDLER_H
-
-// End of File