--- 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 <e32std.h>
#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<CPersonalityConfigurations::TUsbClasses>& Classes() const;
+ void AppendClassesL(const TUsbClasses& aClasses );
+ ~CPersonalityConfigurations();
+
+private:
+ TInt iPersonalityId; /*Personality Id*/
+ TInt iConfigId; /*Configuration Id*/
+ RArray<TUsbClasses> iClasses; /*Class array*/
+ };
+
NONSHARABLE_CLASS(CPersonality) : public CBase
{
public:
static CPersonality* NewL();
~CPersonality();
- TInt PersonalityId() const;
- const RArray<TUid>& 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<CPersonalityConfigurations::TUsbClasses>& 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<CPersonalityConfigurations>& PersonalityConfigs() const;
+ void AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig );
private:
CPersonality();
void ConstructL();
-
+
private:
- // personality id
- TInt iId;
- // USB class ids
- RArray<TUid> 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<CPersonalityConfigurations> iPersonalityConfigs;
};
+
+
#include "CPersonality.inl"
#endif // __CPERSONALITY_H__