1 /* |
|
2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: Declaration of class CHidRemconBearer. |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #ifndef C_HIDREMCONBEARER_H |
|
20 #define C_HIDREMCONBEARER_H |
|
21 |
|
22 #include <e32base.h> |
|
23 #include <c32comm.h> |
|
24 #include <e32property.h> |
|
25 #include <remcon/remconbearerplugin.h> |
|
26 #include <remcon/remconbearerinterface.h> |
|
27 #include <remcon/messagetype.h> |
|
28 #include <AknCapServerClient.h> |
|
29 |
|
30 #include "hidremconbearerobserver.h" |
|
31 |
|
32 //CONSTANTS |
|
33 const TInt KDataBufferSize = 10; |
|
34 |
|
35 /** |
|
36 * CHidRemconBearer |
|
37 * Implementation of the Rem Con Bearer Plugin |
|
38 * |
|
39 */ |
|
40 class CHidRemconBearer : public CRemConBearerPlugin, |
|
41 public MRemConBearerInterface, |
|
42 public MCallBackReceiver |
|
43 { |
|
44 public: |
|
45 |
|
46 /** |
|
47 * Two-phased constructor. |
|
48 * @param aParams required for the CRemConBearerPlugin |
|
49 * @return hidremconbearer plugin |
|
50 */ |
|
51 static CHidRemconBearer* NewL( TBearerParams& aParams ); |
|
52 |
|
53 /** |
|
54 * Destructor. |
|
55 */ |
|
56 virtual ~CHidRemconBearer(); |
|
57 |
|
58 private: |
|
59 |
|
60 /** |
|
61 * Constructor |
|
62 * @param aParams bearer parameters |
|
63 */ |
|
64 CHidRemconBearer( TBearerParams& aParams ); |
|
65 |
|
66 /** |
|
67 * Two - phase construction. |
|
68 */ |
|
69 void ConstructL(); |
|
70 |
|
71 private: |
|
72 // from CRemConBearerPlugin |
|
73 |
|
74 /** |
|
75 * From class CRemConBearerPlugin |
|
76 * Called by RemCon server to get a pointer to an object which implements |
|
77 * the bearer API with UID aUid. This is a mechanism for allowing future |
|
78 * change to the bearer API without breaking BC in existing (non-updated) |
|
79 * bearer plugins. |
|
80 * |
|
81 * @param aUid Inteface uid |
|
82 * @return Return pointer to interface |
|
83 */ |
|
84 TAny* GetInterface( TUid aUid ); |
|
85 |
|
86 private: |
|
87 // from MRemConBearerInterface |
|
88 |
|
89 /** |
|
90 * From class MRemConBearerInterface |
|
91 * Called by RemCon to retrieve a response on a connection. |
|
92 * |
|
93 * @param aInterfaceUid Inteface uid |
|
94 * @param aTransactionId Transaction id |
|
95 * @param aOperationId operation ID |
|
96 * @param aData API-specific message data. |
|
97 * @param aAddr The connection. |
|
98 * @return Error code |
|
99 */ |
|
100 TInt GetResponse( TUid& aInterfaceUid, TUint& aTransactionId, |
|
101 TUint& aOperationId, RBuf8& aData, TRemConAddress& aAddr ); |
|
102 |
|
103 /** |
|
104 * From class MRemConBearerInterface |
|
105 * Send Remcon command |
|
106 * |
|
107 * @param aInterfaceUid Inteface uid |
|
108 * @param aCommand command id |
|
109 * @param aTransactionId Transaction id |
|
110 * @param aData API-specific message data. |
|
111 * @param aAddr The connection. |
|
112 * @return Error code |
|
113 */ |
|
114 TInt SendCommand( TUid aInterfaceUid, TUint aCommand, |
|
115 TUint aTransactionId, RBuf8& aData, const TRemConAddress& aAddr ); |
|
116 |
|
117 /** |
|
118 * From class MRemConBearerInterface |
|
119 * Get Remcon command |
|
120 * |
|
121 * @param aInterfaceUid Inteface uid |
|
122 * @param aTransactionId Transaction id |
|
123 * @param aCommand command id |
|
124 * @param aData API-specific message data. |
|
125 * @param aAddr The connection. |
|
126 * @return Error code |
|
127 */ |
|
128 TInt GetCommand( TUid& aInterfaceUid, TUint& aTransactionId, |
|
129 TUint& aCommand, RBuf8& aData, TRemConAddress& aAddr ); |
|
130 |
|
131 /** |
|
132 * From class MRemConBearerInterface |
|
133 * Send Response |
|
134 * |
|
135 * @param aInterfaceUid Inteface uid |
|
136 * @param aOperationID operation id |
|
137 * @param aTransactionId Transaction id |
|
138 * @param aData API-specific message data. |
|
139 * @param aAddr The connection. |
|
140 * @return Error code |
|
141 */ |
|
142 TInt SendResponse( TUid aInterfaceUid, TUint aOperationId, |
|
143 TUint aTransactionId, RBuf8& aData, const TRemConAddress& aAddr ); |
|
144 |
|
145 /** |
|
146 * From class MRemConBearerInterface |
|
147 * Connect request |
|
148 * |
|
149 * @param aAddr The connection. |
|
150 */ |
|
151 void ConnectRequest( const TRemConAddress& aAddr ); |
|
152 |
|
153 /** |
|
154 * From class MRemConBearerInterface |
|
155 * Disconnect request |
|
156 * |
|
157 * @param aAddr The connection. |
|
158 */ |
|
159 void DisconnectRequest( const TRemConAddress& aAddr ); |
|
160 |
|
161 /** |
|
162 * From class MRemConBearerInterface |
|
163 * Clientstatus |
|
164 * |
|
165 * @param aControllerPresent Controllerpresent status |
|
166 * @param aTargetPresent Target present status |
|
167 */ |
|
168 void ClientStatus( TBool aControllerPresent, TBool aTargetPresent ); |
|
169 |
|
170 /** |
|
171 * From class MRemConBearerInterface |
|
172 * Return security policy |
|
173 * |
|
174 * @return Security policy |
|
175 */ |
|
176 TSecurityPolicy SecurityPolicy() const; |
|
177 |
|
178 private: |
|
179 // from MCallBackReceiver |
|
180 |
|
181 /** |
|
182 * From class MCallBackReceiver |
|
183 * Return security policy |
|
184 * |
|
185 * @param aScanCode a scancode |
|
186 * @param aKeyType a Keytype |
|
187 */ |
|
188 void ReceivedKeyEvent( TInt aScanCode, TInt aKeyType ); |
|
189 |
|
190 private: |
|
191 /** |
|
192 * From class MCallBackReceiver |
|
193 * Set SVK Operation ID and Data |
|
194 * |
|
195 * @param aEnumValue OperationID and data field |
|
196 */ |
|
197 void SetSVKOperationIdAndData( TInt aEnumValue ); |
|
198 |
|
199 /** |
|
200 * From class MCallBackReceiver |
|
201 * Set Mute Operation ID and Data |
|
202 * |
|
203 * @param aEnumValue OperationID and data field |
|
204 */ |
|
205 void SetMuteKeyOperationIdAndData( TInt aEnumValue ); |
|
206 |
|
207 /** |
|
208 * From class MCallBackReceiver |
|
209 * Set Media key Operation ID and Data |
|
210 * |
|
211 * @param aEnumValue OperationID and data field |
|
212 */ |
|
213 void SetMediaKeyOperationIdAndData( TInt aEnumValue ); |
|
214 |
|
215 /** |
|
216 * From class MCallBackReceiver |
|
217 * Set Media key Operation ID and Data |
|
218 * |
|
219 * @param aEnumValue OperationID and data field |
|
220 */ |
|
221 void SetPhoneKeyOperationIdAndData( TInt aEnumValue ); |
|
222 |
|
223 /** |
|
224 * RestartExpired observer |
|
225 * |
|
226 * @param aKeyType type of key |
|
227 */ |
|
228 void RestartKeyObeserver( TInt aKeyType ); |
|
229 |
|
230 /** |
|
231 * Restart Expired observer |
|
232 * |
|
233 * @param aEnumValue a value of key |
|
234 * @param aKeyType A type of key |
|
235 */ |
|
236 void HandleKeyOperation( TInt aEnumValue, TInt aKeyType ); |
|
237 |
|
238 private: |
|
239 // Data |
|
240 |
|
241 /** |
|
242 * Interface uid of last correct-decoded message |
|
243 */ |
|
244 TUid iInterfaceUid; |
|
245 |
|
246 /** |
|
247 * Operation uid of last correct-decoded message |
|
248 */ |
|
249 TUint iOperationId; |
|
250 |
|
251 /** |
|
252 * Data of last correct-decoded message |
|
253 */ |
|
254 TBuf8<KDataBufferSize> iData; |
|
255 |
|
256 /** |
|
257 * Transactionid uid of last correct-decoded message |
|
258 */ |
|
259 TUint iTransactionId; |
|
260 |
|
261 /** |
|
262 * Media key observer |
|
263 * Own. |
|
264 */ |
|
265 CHidRemconBearerObserver* iMediaKeyObserver; |
|
266 |
|
267 /** |
|
268 * Accessory volume key observer |
|
269 * Own. |
|
270 */ |
|
271 CHidRemconBearerObserver* iAccessoryVolKeyObserver; |
|
272 |
|
273 /** |
|
274 * Mute key observer |
|
275 * Own. |
|
276 */ |
|
277 CHidRemconBearerObserver* iMuteKeyObserver; |
|
278 |
|
279 /** |
|
280 * Phone key observer |
|
281 * Own. |
|
282 */ |
|
283 CHidRemconBearerObserver* iHookKeyObserver; |
|
284 |
|
285 }; |
|
286 |
|
287 #endif // HIDREMCONBEARERIMPLEMENTATION_H |
|