27 #define __CPERSONALITY_H__ |
27 #define __CPERSONALITY_H__ |
28 |
28 |
29 #include <e32std.h> |
29 #include <e32std.h> |
30 #include "CUsbDevice.h" |
30 #include "CUsbDevice.h" |
31 |
31 |
32 |
|
33 /** |
|
34 * The CPersonalityConfigurations class keep all information of the table |
|
35 * "Configuration" of USB cenrep |
|
36 */ |
|
37 |
|
38 NONSHARABLE_CLASS(CPersonalityConfigurations) : public CBase |
|
39 { |
|
40 public: |
|
41 /*USB Classes*/ |
|
42 class TUsbClasses |
|
43 { |
|
44 public: |
|
45 TUid iClassUid; |
|
46 TInt iFeatureId; // Indicates the class is configurable or not. |
|
47 }; |
|
48 public: |
|
49 void SetPersonalityId(TInt aPersonalityId); |
|
50 void SetConfigId(TInt aConfigId); |
|
51 inline const RArray<CPersonalityConfigurations::TUsbClasses>& Classes() const; |
|
52 void AppendClassesL(const TUsbClasses& aClasses ); |
|
53 ~CPersonalityConfigurations(); |
|
54 |
|
55 private: |
|
56 TInt iPersonalityId; /*Personality Id*/ |
|
57 TInt iConfigId; /*Configuration Id*/ |
|
58 RArray<TUsbClasses> iClasses; /*Class array*/ |
|
59 }; |
|
60 |
|
61 NONSHARABLE_CLASS(CPersonality) : public CBase |
32 NONSHARABLE_CLASS(CPersonality) : public CBase |
62 { |
33 { |
63 public: |
34 public: |
64 static CPersonality* NewL(); |
35 static CPersonality* NewL(); |
65 ~CPersonality(); |
36 ~CPersonality(); |
66 |
37 |
67 const RArray<CPersonalityConfigurations::TUsbClasses>& SupportedClasses() const; |
38 TInt PersonalityId() const; |
68 TBool ClassSupported(TUid aClassId) const; |
39 const RArray<TUid>& SupportedClasses() const; |
|
40 TInt ClassSupported(TUid aClassId) const; |
|
41 const CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor() const; |
|
42 CUsbDevice::TUsbDeviceDescriptor& DeviceDescriptor(); |
|
43 const TDesC* Manufacturer() const; |
|
44 const TDesC* Product() const; |
|
45 const TDesC* Description() const; |
|
46 TInt AddSupportedClasses(TUid aClassId); |
|
47 void SetId(TInt aId); |
|
48 void SetManufacturer(const TDesC* aManufacturer); |
|
49 void SetProduct(const TDesC* aProduct); |
|
50 void SetDescription(const TDesC* aDescription); |
69 static TInt Compare(const TUid& aFirst, const TUid& aSecond); |
51 static TInt Compare(const TUid& aFirst, const TUid& aSecond); |
70 |
52 |
71 inline TInt Version() const; |
53 const TDesC* DetailedDescription() const; |
|
54 void SetDetailedDescription(const TDesC* aDetailedDescription); |
|
55 |
|
56 TUint32 Property() const; |
|
57 void SetProperty(TUint32 aProperty); |
|
58 |
|
59 TInt Version() const; |
72 void SetVersion(TInt version); |
60 void SetVersion(TInt version); |
73 |
|
74 inline TUint32 Property() const; |
|
75 void SetProperty(TUint32 aProperty); |
|
76 |
|
77 inline TUint8 DeviceClass() const; |
|
78 void SetDeviceClass(TUint8 aDeviceClass); |
|
79 |
|
80 inline TUint8 DeviceSubClass() const; |
|
81 void SetDeviceSubClass(TUint8 aDeviceSubClass); |
|
82 |
|
83 inline TUint8 DeviceProtocol() const; |
|
84 void SetDeviceProtocol(TUint8 aDeviceProtocol); |
|
85 |
|
86 inline TUint8 NumConfigurations() const; |
|
87 void SetNumConfigurations(TUint8 aNumConfigurations); |
|
88 |
|
89 inline TUint16 ProductId() const; |
|
90 void SetProductId(TUint16 aProductId); |
|
91 |
|
92 inline TInt FeatureId() const; |
|
93 void SetFeatureId(TInt aFeatureId); |
|
94 |
|
95 inline TUint16 BcdDevice() const; |
|
96 void SetBcdDevice(TUint16 aBcdDevice); |
|
97 |
|
98 inline TInt PersonalityId() const; |
|
99 void SetPersonalityId(TInt aPersonalityId); |
|
100 |
|
101 inline const TDesC* Description() const; |
|
102 void SetDescription(const TDesC* aDescription); |
|
103 |
|
104 inline const RPointerArray<CPersonalityConfigurations>& PersonalityConfigs() const; |
|
105 void AppendPersonalityConfigsL(const CPersonalityConfigurations *aPersonalityConfig ); |
|
106 |
61 |
107 private: |
62 private: |
108 CPersonality(); |
63 CPersonality(); |
109 void ConstructL(); |
64 void ConstructL(); |
110 |
65 |
111 private: |
66 private: |
112 TInt iVersion; |
67 // personality id |
113 TUint32 iProperty; |
68 TInt iId; |
114 TUint8 iDeviceClass; |
69 // USB class ids |
115 TUint8 iDeviceSubClass; |
70 RArray<TUid> iClassUids; |
116 TUint8 iDeviceProtocol; |
71 // textual description of manufacturer |
117 TUint8 iNumConfigurations; |
72 HBufC* iManufacturer; |
118 TUint16 iProductId; |
73 // textual description of product |
119 TInt iFeatureId; |
74 HBufC* iProduct; |
120 TUint16 iBcdDevice; |
75 // textual description of personality |
121 TInt iPersonalityId; // personality id |
76 HBufC* iDescription; |
122 HBufC* iDescription; // Own this Personality's description |
77 // USB device descriptor struct |
123 RPointerArray<CPersonalityConfigurations> iPersonalityConfigs; |
78 CUsbDevice::TUsbDeviceDescriptor iDeviceDescriptor; |
|
79 // detailed textual description of personality |
|
80 HBufC* iDetailedDescription; |
|
81 |
|
82 TInt iVersion; |
|
83 TUint32 iProperty; |
124 }; |
84 }; |
125 |
|
126 |
|
127 |
85 |
128 #include "CPersonality.inl" |
86 #include "CPersonality.inl" |
129 |
87 |
130 #endif // __CPERSONALITY_H__ |
88 #endif // __CPERSONALITY_H__ |
131 |
89 |