--- a/usbengines/usbremotepersonality/inc/cremotepersonalityhandler.h Fri May 14 16:51:51 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-/*
-* Copyright (c) 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: Handles remote personality - related requests
-*
-*/
-
-
-#ifndef CREMOTEPERSONALITYHANDLER_H
-#define CREMOTEPERSONALITYHANDLER_H
-
-#include <cusbdevicecontrolplugin.h>
-
-class RUsbWatcher;
-class RUsb;
-class RDevUsbcClient;
-class CSetPersonality;
-
-struct TPersonality
- {
-
- TUint8 iId; // Personality id
- TUint8 iIndex; // Index of a string descriptor
-
- };
-
-/**
- * Setup packet interpretation
- *
- *
- * @lib usbdevcon.lib
- * @since S60 v.5.0
- */
- class TSetupPacket
- {
- public:
-
- /**
- * Decodes buffer as a SetupPacket
- *
- * @since S60 v.5.0
- * @param aSetupPacket incoming buffer to be decoded
- */
- void Decode(const RBuf8& aSetupPacket);
-
- public:
-
- TUint8 iType; // control message type
- TInt iRequest; // request; has type TInt because can be negative: CRemotePersonalityHandler::EUnknown;
- TUint16 iValue; // value
- TUint16 iIndex; // index
- TUint16 iLength; // length
- } ;
-
-/**
- * Remote Personality Requests handler
- *
- * @lib usbdevcon.lib
- * @since S60 v.5.0
- */
-
-class CRemotePersonalityHandler : public CUsbCMHandler
- {
-
-public:
-
- /** Last result */
- enum TLastResult
- {
- ESuccess = 0x00,
- EUndefinedError = 0x01,
- EInvalidRequest= 0x02,
- ERequestIsNotSupported= 0x03,
- EFeatureIsNotSupported= 0x04,
- ENonExistingPersonality=0x10,
- EDataTransferInProgress=0x11,
- EEntityIsLocked= 0x12,
- ENonExistingEntity= 0x20,
- EInvalidLockState= 0x21,
- EInvalidPassword= 0x22,
- ENoAttemptsLeft= 0x23
-
- // 0x80 ..0xFE reserved for vendor usage
-
- };
-
- /** Requests */
- enum TRequest
- {
- EUnknown = -1,
- EGetAllPersonalities = 0x82,
- EGetLastResult = 0x84,
- EGetPersonalityDescriptor = 0x86,
- EGetPersonality = 0x88,
- ESetPersonality = 0x89,
- EGetLockState = 0x8A,
- ESetLockState = 0x8B
- };
-
- /**
- * Two-phased constructor.
- *
- * @since S60 v.5.0
- * @return Constructed instance
- */
- static CRemotePersonalityHandler* NewL();
-
- /**
- * Destructor.
- *
- * @since S60 v.5.0
- */
- virtual ~CRemotePersonalityHandler();
-
- /**
- * Called back when SetPersonality request is completed
- * @param aResult Result of the SetPersonality request
- * @since S60 v.5.0
- */
- void SetPersonalityCallBack(TLastResult aResult);
-
- // From MUsbCMHandler
-
- /**
- * Handler's Handle
- *
- * @since S60 v.5.0
- * @param aSetupPacket request to be handled
- * @param aData Either data from host to device, or data from device to host
- * @return Errorcode
- */
- TInt Handle(const RBuf8& aSetupPacket, RBuf8& aData);
-
- /**
- * Initializer
- *
- * @since S60 v.5.0
- * @param aLdd Link to LDD services
- * @param aUsbWatcher Link to USB Watcher services
- * @param aUsbManager Link to USB Manager services
- */
- void Initialize(RDevUsbcClient& aLdd, RUsbWatcher& aUsbWatcher, RUsb& aUsbManager);
-
-private:
-
- /**
- * Default constructor.
- *
- * @since S60 v.5.0
- */
- CRemotePersonalityHandler();
-
- /**
- * Two-phased constructor.
- *
- * @since S60 v.5.0
- */
- void ConstructL();
-
- /**
- * Internal handler - leaves if error
- *
- * @since S60 v.5.0
- * @param aSetupPacket request to be handled
- * @param aData Either data from host to device, or data from device to host
- */
- void DoHandleL(const RBuf8& aSetupPacket, RBuf8& aData);
-
- /**
- * Handles GET_ALL_PERSONALITIES request
- *
- * @since S60 v.5.0
- * @param aData Contains result on exit
- */
- void GetPersonalitiesL(RBuf8& aData);
-
- /**
- * Handles SET_PERSONALITY request
- *
- * @since S60 v.5.0
- */
- void SetPersonalityL();
-
- /**
- * Handles GET_LAST_RESULT request
- * @param aData Last result
- * @since S60 v.5.0
- */
- void GetLastResultL(RBuf8& aData);
-
- /**
- * Read personalities from USB Manager to iPersonalities
- *
- * @since S60 v.5.0
- */
- void ReadPersonalitiesL();
-
- /**
- * Saves personalities descriptions to USB standard strings descriptors
- *
- * @since S60 v.5.0
- */
- void SavePersonalitiesStringsL();
-
- /**
- * Check if mapping of ids is needed
- *
- * @since S60 v.5.0
- */
- TBool IsMappingNeededL();
-
- /**
- * Maps old personality ids (3.2) to new ones (5.0)
- *
- * @since S60 v.5.0
- */
- TInt MapPersonalityIdFromDeviceToHostL(TInt aPersonalityId);
-
- /**
- * Maps old personality ids (3.2) to new ones (5.0)
- *
- * @since S60 v.5.0
- */
- TInt MapPersonalityIdFromHostToDeviceL(TInt aPersonalityId);
-
-private: // data
-
- /**
- * Result of the last operation
- *
- */
- TLastResult iLastResult;
-
- /**
- * USB watcher
- * Not owns.
- */
- RUsbWatcher* iUsbWatcher;
-
- /**
- * USB Manager
- * Not owns.
- */
- RUsb* iUsbManager;
-
- /**
- * USB client
- * Not owns.
- */
- RDevUsbcClient* iLdd;
-
- /**
- * Request, being processed currently
- *
- */
- TSetupPacket iSetupPacket;
-
- /**
- * Supported personalities
- *
- */
- RArray<TPersonality> iPersonalities;
-
- /**
- * SetPersonality request handler
- *
- */
- CSetPersonality* iSetPersonalityHandler;
-
- /**
- * ETrue if mapping is needed from old ids set to new one and vice versa
- *
- */
- TBool iMappingIsNeeded;
-
- };
-
-#endif // CREMOTEPERSONALITYHANDLER_H