diff -r d3e8e7d462dd -r f92a4f87e424 usbmgmt/usbmgr/usbman/server/INC/CPersonality.h --- a/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h Thu Jul 15 20:42:20 2010 +0300 +++ b/usbmgmt/usbmgr/usbman/server/INC/CPersonality.h Tue Aug 31 17:01:47 2010 +0300 @@ -1,5 +1,5 @@ /** -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-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" @@ -29,60 +29,102 @@ #include #include "CUsbDevice.h" + +/** + * The CPersonalityConfigurations class keep all information of the table + * "Configuration" of USB cenrep + */ + +NONSHARABLE_CLASS(CPersonalityConfigurations) : public CBase + { +public: + /*USB Classes*/ + class TUsbClasses + { + public: + TUid iClassUid; + TInt iFeatureId; // Indicates the class is configurable or not. + }; +public: + void SetPersonalityId(TInt aPersonalityId); + void SetConfigId(TInt aConfigId); + inline const RArray& Classes() const; + void AppendClassesL(const TUsbClasses& aClasses ); + ~CPersonalityConfigurations(); + +private: + TInt iPersonalityId; /*Personality Id*/ + TInt iConfigId; /*Configuration Id*/ + RArray iClasses; /*Class array*/ + }; + NONSHARABLE_CLASS(CPersonality) : public CBase { public: static CPersonality* NewL(); ~CPersonality(); - TInt PersonalityId() const; - const RArray& SupportedClasses() const; - TInt ClassSupported(TUid aClassId) const; - const CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor() const; - CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor(); - const TDesC* Manufacturer() const; - const TDesC* Product() const; - const TDesC* Description() const; - TInt AddSupportedClasses(TUid aClassId); - void SetId(TInt aId); - void SetManufacturer(const TDesC* aManufacturer); - void SetProduct(const TDesC* aProduct); - void SetDescription(const TDesC* aDescription); + const RArray& SupportedClasses() const; + TBool ClassSupported(TUid aClassId) const; static TInt Compare(const TUid& aFirst, const TUid& aSecond); - const TDesC* DetailedDescription() const; - void SetDetailedDescription(const TDesC* aDetailedDescription); + inline TInt Version() const; + void SetVersion(TInt version); + + inline TUint32 Property() const; + void SetProperty(TUint32 aProperty); + + inline TUint8 DeviceClass() const; + void SetDeviceClass(TUint8 aDeviceClass); + + inline TUint8 DeviceSubClass() const; + void SetDeviceSubClass(TUint8 aDeviceSubClass); - TUint32 Property() const; - void SetProperty(TUint32 aProperty); - - TInt Version() const; - void SetVersion(TInt version); + inline TUint8 DeviceProtocol() const; + void SetDeviceProtocol(TUint8 aDeviceProtocol); + + inline TUint8 NumConfigurations() const; + void SetNumConfigurations(TUint8 aNumConfigurations); + + inline TUint16 ProductId() const; + void SetProductId(TUint16 aProductId); + + inline TInt FeatureId() const; + void SetFeatureId(TInt aFeatureId); + + inline TUint16 BcdDevice() const; + void SetBcdDevice(TUint16 aBcdDevice); + + inline TInt PersonalityId() const; + void SetPersonalityId(TInt aPersonalityId); + + inline const TDesC* Description() const; + void SetDescription(const TDesC* aDescription); + + inline const RPointerArray& PersonalityConfigs() const; + void AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig ); private: CPersonality(); void ConstructL(); - + private: - // personality id - TInt iId; - // USB class ids - RArray iClassUids; - // textual description of manufacturer - HBufC* iManufacturer; - // textual description of product - HBufC* iProduct; - // textual description of personality - HBufC* iDescription; - // USB device descriptor struct - CUsbDevice::TUsbDeviceDescriptor iDeviceDescriptor; - // detailed textual description of personality - HBufC* iDetailedDescription; - - TInt iVersion; - TUint32 iProperty; + TInt iVersion; + TUint32 iProperty; + TUint8 iDeviceClass; + TUint8 iDeviceSubClass; + TUint8 iDeviceProtocol; + TUint8 iNumConfigurations; + TUint16 iProductId; + TInt iFeatureId; + TUint16 iBcdDevice; + TInt iPersonalityId; // personality id + HBufC* iDescription; // Own this Personality's description + RPointerArray iPersonalityConfigs; }; + + #include "CPersonality.inl" #endif // __CPERSONALITY_H__