|
1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 /** |
|
17 @file |
|
18 @publishedPartner |
|
19 @released |
|
20 */ |
|
21 |
|
22 #ifndef HCITYPES_H |
|
23 #define HCITYPES_H |
|
24 |
|
25 #include <bttypes.h> |
|
26 #include <bttypespartner.h> |
|
27 |
|
28 |
|
29 enum THWHCIVersion |
|
30 /** |
|
31 Controller version information |
|
32 */ |
|
33 { |
|
34 EHWHCIv1_0 = 0, // HCIv1.0B |
|
35 EHWHCIv1_1 = 1, // HCIv1.1 |
|
36 EHWHCIv1_2 = 2, // HCIv1.2 |
|
37 EHWHCIv2_0 = 3, // HCIv2.0 |
|
38 EHWHCIv2_1 = 4, // HCIv2.1 |
|
39 }; |
|
40 |
|
41 enum TBTHardResetState |
|
42 /** |
|
43 Controller 'reset' states |
|
44 */ |
|
45 { |
|
46 //NB In chronologically reverse order |
|
47 EBTResetComplete = 0x00, /*!< The reset process is complete. */ |
|
48 EBTResetStarted = 0x01 /*!< The reset process has started. */ |
|
49 }; |
|
50 |
|
51 enum TBTPowerState |
|
52 /** |
|
53 Controller 'power' states |
|
54 */ |
|
55 { |
|
56 EBTOn = 0x00, /*!< Power on. */ |
|
57 EBTOff = 0x01 /*!< Power off. */ |
|
58 }; |
|
59 |
|
60 enum THCISimplePairingMode |
|
61 /** |
|
62 Simple pairing mode |
|
63 */ |
|
64 { |
|
65 ESimplePairingDisabled = 0x00, |
|
66 ESimplePairingEnabled = 0x01 |
|
67 }; |
|
68 |
|
69 enum THCIIoCapability |
|
70 /** |
|
71 IO capability |
|
72 */ |
|
73 { |
|
74 EIOCapsDisplayOnly = 0x00, |
|
75 EIOCapsDisplayYesNo = 0x01, |
|
76 EIOCapsKeyboardOnly = 0x02, |
|
77 EIOCapsNoInputNoOutput = 0x03 |
|
78 }; |
|
79 |
|
80 enum THCIOobDataPresence |
|
81 /** |
|
82 OOB data presence |
|
83 */ |
|
84 { |
|
85 EOOBDataNotPresent = 0x00, |
|
86 EOOBDataPresent = 0x01 |
|
87 }; |
|
88 |
|
89 enum THCIAuthenticationRequirement |
|
90 /** |
|
91 Authentication requirement |
|
92 */ |
|
93 { |
|
94 EMitmNotReqNoBonding = 0x00, |
|
95 EMitmReqNoBonding = 0x01, |
|
96 EMitmNotReqDedicatedBonding = 0x02, |
|
97 EMitmReqDedicatedBonding = 0x03, |
|
98 EMitmNotReqGeneralBonding = 0x04, |
|
99 EMitmReqGeneralBonding = 0x05 |
|
100 }; |
|
101 |
|
102 const TUint KAuthenticationMitmReqMask = 0x1; |
|
103 |
|
104 enum THCIPasskeyEntryNotificationType |
|
105 /** |
|
106 Passkey entry notification type |
|
107 */ |
|
108 { |
|
109 EPasskeyEntryStarted = 0x00, |
|
110 EPasskeyDigitEntered = 0x01, |
|
111 EPasskeyDigitDeleted = 0x02, |
|
112 EPasskeyCleared = 0x03, |
|
113 EPasskeyEntryCompleted = 0x04 |
|
114 }; |
|
115 |
|
116 enum TLinkType |
|
117 /** |
|
118 Bluetooth link type (ACL / SCO) |
|
119 */ |
|
120 { |
|
121 ESCOLink = 0x00, /*!< Synchronous Connection Oriented link */ |
|
122 EACLLink = 0x01, /*!< Asynchronous ConnectionLess link */ |
|
123 EeSCOLink = 0x02 /*!< eSCO link */ |
|
124 }; |
|
125 |
|
126 enum TEncryptMode |
|
127 /** |
|
128 Bluetooth encryption mode |
|
129 */ |
|
130 { |
|
131 EDisabled = 0x00, /*!< Encryption disabled */ |
|
132 EPointToPoint = 0x01, /*!< Point to point encryption enabled */ |
|
133 EAll = 0x02 /*!< Device wide encryption enabled */ |
|
134 }; |
|
135 |
|
136 enum TAirMode |
|
137 /** |
|
138 Air mode of synchronous connection |
|
139 */ |
|
140 { |
|
141 ECVSD = 0x00, /*!< CVSD */ |
|
142 EuLawLog = 0x01, /*!< u-law log */ |
|
143 EALawLog = 0x02, /*!< A-law log */ |
|
144 ETransparentData = 0x03 /*!< Transparent data */ |
|
145 }; |
|
146 |
|
147 enum THCIDeleteAllKeysFlag |
|
148 /** |
|
149 HCI delete all keys flag |
|
150 */ |
|
151 { |
|
152 EDeleteBdaddrLinkKey = 0x00, /*!< Delete Bluetooth device address link key */ |
|
153 EDeleteAllLinkKeys = 0x01 /*!< Delete all link keys */ |
|
154 }; |
|
155 |
|
156 enum THCITimeoutType |
|
157 /** |
|
158 HCI timeout type |
|
159 */ |
|
160 { |
|
161 EConnectionAcceptTimeout = 0x00, /*!< Connection accept timeout */ |
|
162 EPageTimeout = 0x01, /*!< Page timeout */ |
|
163 }; |
|
164 |
|
165 enum THCIReadAllKeysFlag |
|
166 /** |
|
167 HCI read all keys flag |
|
168 */ |
|
169 { |
|
170 EReadBdaddrLinkKey = 0x00, /*!< Read Bluetooth device address link key */ |
|
171 EReadAllLinkKeys = 0x01, /*!< Read all link keys */ |
|
172 }; |
|
173 |
|
174 enum THCIEncryptModeFlag |
|
175 /** |
|
176 HCI encryption mode flag |
|
177 */ |
|
178 { |
|
179 EEncryptionDisabled = 0x00, /*!< Encryption disabled */ |
|
180 EPointToPointEncryption = 0x01, /*!< Point to point encryption enabled */ |
|
181 EPointToPointAndBroadcastEncryption = 0x02, /*!< Point to point and broadcast encryption enabled */ |
|
182 }; |
|
183 |
|
184 enum THCIScanEnable |
|
185 /** |
|
186 HCI Scan enable mask |
|
187 */ |
|
188 { |
|
189 ENoScansEnabled = 0x00, /*!< No HCI scans enabled */ |
|
190 EInquiryScanOnly = 0x01, /*!< HCI inquiry scan enabled */ |
|
191 EPageScanOnly = 0x02, /*!< HCI page scan enabled */ |
|
192 EInquiryAndPageScan = 0x03 /*!< HCI inquiry and page scan enabled */ |
|
193 }; |
|
194 |
|
195 enum THCIInquiryMode |
|
196 /** |
|
197 HCI Inquiry mode flag |
|
198 */ |
|
199 { |
|
200 EStandardInquiryFormat = 0x00, /*!< Standard Inquiry Result event Format */ |
|
201 EInquiryWithRssi = 0x01, /*!< Inquiry result format with RSSI */ |
|
202 EInquiryWithRssiOrEir = 0x02 /*!< Inquiry result with RSSI format or Extended Inquiry Result format */ |
|
203 }; |
|
204 |
|
205 /** |
|
206 HCI Link-key type |
|
207 */ |
|
208 enum THCILinkKeyType |
|
209 { |
|
210 ECombinationKey = 0x00, /*!< Combination link-key generated by classic Bluetooth pairing */ |
|
211 ELocalUnitKey = 0x01, /*!< Unit link-key for local device */ |
|
212 ERemoteUnitKey = 0x02, /*!< Unit link-key for remote device */ |
|
213 EDebugCombinationKey = 0x03, /*!< Combination link-key generated when simple pairing debug mode is enabled */ |
|
214 EUnauthenticatedCombinationKey = 0x04, /*!< Combination link-key generated with simple pairing with no MITM protection */ |
|
215 EAuthenticatedCombinationKey = 0x05, /*!< Combination link-key generated with simple pairing with MITM protection */ |
|
216 EChangedCombinationKey = 0x06, /*!< An indication that the link-key is of the same type previously provided */ |
|
217 }; |
|
218 |
|
219 enum THCITransmitPowerLevelType |
|
220 { |
|
221 ECurrentTransmitPowerLevel = 0x00, |
|
222 EMaximumTransmitPowerLevel = 0x01, |
|
223 }; |
|
224 |
|
225 /** |
|
226 HCI event mask |
|
227 This can be used to specify the mask used to control which events the controller reports. |
|
228 */ |
|
229 NONSHARABLE_CLASS(THCIEventMask) |
|
230 { |
|
231 public: |
|
232 enum TLoByteMask |
|
233 { |
|
234 EInquiryCompleteEvent = 0x00000001, |
|
235 EInquiryResultEvent = 0x00000002, |
|
236 EConnectionCompleteEvent = 0x00000004, |
|
237 EConnectionRequestEvent = 0x00000008, |
|
238 EDisconnectionCompleteEvent = 0x00000010, |
|
239 EAuthenticationCompleteEvent = 0x00000020, |
|
240 ERemoteNameRequestCompleteEvent = 0x00000040, |
|
241 EEncryptionChangeEvent = 0x00000080, |
|
242 EChangeConnectionLinkKeyCompleteEvent = 0x00000100, |
|
243 EMasterLinkKeyCompleteEvent = 0x00000200, |
|
244 EReadRemoteSupportedFeaturesCompleteEvent = 0x00000400, |
|
245 EReadRemoteVersionInformationCompleteEvent = 0x00000800, |
|
246 EQoSSetupCompleteEvent = 0x00001000, |
|
247 EHardwareErrorEvent = 0x00008000, |
|
248 EFlushOccurredEvent = 0x00010000, |
|
249 ERoleChangeEvent = 0x00020000, |
|
250 EModeChangeEvent = 0x00080000, |
|
251 EReturnLinkKeysEvent = 0x00100000, |
|
252 EPINCodeRequestEvent = 0x00200000, |
|
253 ELinkKeyRequestEvent = 0x00400000, |
|
254 ELinkKeyNotificationEvent = 0x00800000, |
|
255 ELoopbackCommandEvent = 0x01000000, |
|
256 EDataBufferOverflowEvent = 0x02000000, |
|
257 EMaxSlotsChangeEvent = 0x04000000, |
|
258 EReadClockOffsetCompleteEvent = 0x08000000, |
|
259 EConnectionPacketTypeChangedEvent = 0x10000000, |
|
260 EQoSViolationEvent = 0x20000000, |
|
261 EPageScanModeChangeEvent = 0x40000000, |
|
262 EPageScanRepetitionModeChangeEvent = 0x80000000 |
|
263 }; |
|
264 |
|
265 enum THiByteMask |
|
266 { |
|
267 EFlowSpecificationCompleteEvent = 0x00000001, |
|
268 EInquiryResultWithRSSIEvent = 0x00000002, |
|
269 EReadRemoteExtendedFeaturesCompleteEvent = 0x00000004, |
|
270 ESynchronousConnectionCompleteEvent = 0x00000800, |
|
271 ESynchronousConnectionChangedEvent = 0x00001000, |
|
272 ESniffSubratingEvent = 0x00002000, |
|
273 EExtendedInquiryResultEvent = 0x00004000, |
|
274 EEncryptionKeyRefreshCompleteEvent = 0x00008000, |
|
275 EIOCapabilityRequestEvent = 0x00010000, |
|
276 EIOCapabilityRequestReplyEvent = 0x00020000, |
|
277 EUserConfirmationRequestEvent = 0x00040000, |
|
278 EUserPasskeyRequestEvent = 0x00080000, |
|
279 ERemoteOOBDataRequestEvent = 0x00100000, |
|
280 ESimplePairingCompleteEvent = 0x00200000, |
|
281 ELinkSupervisionTimeoutChangedEvent = 0x00800000, |
|
282 EEnhancedFlushCompleteEvent = 0x01000000, |
|
283 EUserPasskeyNotificationEvent = 0x04000000, |
|
284 EKeypressNotificationEvent = 0x08000000, |
|
285 ERemoteHostSupportedFeaturesNotificationEvent = 0x10000000, |
|
286 }; |
|
287 |
|
288 static const TUint32 KDefaultLoBytes = 0xffffffff; |
|
289 static const TUint32 KDefaultHiBytes = 0x00001fff; |
|
290 |
|
291 public: |
|
292 TUint32 iLoBytes; /*!< Least significant bytes (bytes 0 - 3) */ |
|
293 TUint32 iHiBytes; /*!< Most significant bytes (bytes 4 - 7) */ |
|
294 }; |
|
295 |
|
296 enum THCIEventFilterType |
|
297 /** |
|
298 HCI event filter type |
|
299 */ |
|
300 { |
|
301 EClearAllFilters = 0x00, /*!< Clear all filters */ |
|
302 EInquiryResultFilter = 0x01, /*!< Inquiry result filter */ |
|
303 EConnectionSetupFilter = 0x02 /*!< Connection setup filter */ |
|
304 }; |
|
305 |
|
306 NONSHARABLE_CLASS(THCIEventCondition) |
|
307 /** |
|
308 HCI event condition definition. |
|
309 */ |
|
310 { |
|
311 public: |
|
312 THCIEventFilterType iEventFilterType; /*!< Event filter type */ |
|
313 TUint8 iConditionType; /*!< Condition type */ |
|
314 TUint iCoD; /*!< Class of device */ |
|
315 TUint iCoDMask; /*!< Class of device mask */ |
|
316 TBTDevAddr iDevAddr; /*!< Bluetooth device address */ |
|
317 TUint8 iAutoAcceptFlag; /*!< Auto accept flag */ |
|
318 }; |
|
319 |
|
320 /** |
|
321 Provides a representation of a RSSI value returned over the |
|
322 Bluetooth HCI. |
|
323 Intended for use within an RArray type class. |
|
324 */ |
|
325 NONSHARABLE_CLASS(THCIRssi) |
|
326 { |
|
327 public: |
|
328 IMPORT_C THCIRssi(); |
|
329 IMPORT_C THCIRssi(TUint8 aRssi); |
|
330 IMPORT_C THCIRssi& operator=(TUint8 aRssi); |
|
331 |
|
332 IMPORT_C TUint8 Rssi() const; |
|
333 IMPORT_C operator TUint8() const; |
|
334 |
|
335 |
|
336 IMPORT_C THCIRssi(TInt8 aRssi); |
|
337 IMPORT_C THCIRssi& operator=(TInt8 aRssi); |
|
338 |
|
339 IMPORT_C TInt8 RSSI() const; |
|
340 private: |
|
341 TInt8 iRssi; |
|
342 TUint8 iPad1; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
343 TUint16 iPad2; |
|
344 }; |
|
345 |
|
346 |
|
347 const static TUint8 KInqLogEntryStandard = 0; /*!< TInquiryLogEntry */ |
|
348 const static TUint8 KInqLogEntryWithRssi = 1; /*!< TInquiryLogEntryWithRssi */ |
|
349 const static TUint8 KInqLogEntryWithEir = 2; /*!< TInquiryLogEntryWithEir */ |
|
350 |
|
351 NONSHARABLE_CLASS(TInquiryLogEntry) |
|
352 /** |
|
353 Inquiry log entry. Used to pass information from a BT inquiry operation. |
|
354 */ |
|
355 { |
|
356 public: |
|
357 TUint8 iPageScanRepetitionMode; /*!< Page scan repetition mode */ |
|
358 TUint8 iPageScanPeriodMode; /*!< Page scan period mode */ |
|
359 TUint8 iPageScanMode; /*!< Page scan mode */ |
|
360 /** |
|
361 iSpare: Used to identify Inquiry log entry type |
|
362 This is for internal sub-system use only and should be not be used otherwise. |
|
363 @internalComponent |
|
364 */ |
|
365 TUint8 iSpare; |
|
366 |
|
367 TUint16 iClockOffset; /*!< Clock offset */ |
|
368 TBTDevAddr iBdaddr; /*!< Bluetooth device address */ |
|
369 TUint iCoD; /*!< Class of device */ |
|
370 }; |
|
371 |
|
372 NONSHARABLE_CLASS(TInquiryLogEntryWithRssi) : public TInquiryLogEntry |
|
373 /** |
|
374 Inquiry log entry. Used to pass information from a BT inquiry operation. |
|
375 */ |
|
376 { |
|
377 public: |
|
378 THCIRssi iRssi; /*!< RSSI (dBm) */ |
|
379 }; |
|
380 |
|
381 static const TUint8 KHCIExtendedInquiryResponseMaxLength = 240; /*!< Extended Inquiry Response max length. */ |
|
382 NONSHARABLE_CLASS(TInquiryLogEntryWithEir) : public TInquiryLogEntryWithRssi |
|
383 /** |
|
384 Inquiry log entry. Used to pass information from a BT inquiry operation. |
|
385 */ |
|
386 { |
|
387 public: |
|
388 TBuf8<KHCIExtendedInquiryResponseMaxLength> iExtendedInquiryResponse; /*!< Extended Inquiry Response (240 bytes max) */ |
|
389 }; |
|
390 |
|
391 NONSHARABLE_CLASS(TBTConnect) |
|
392 /** |
|
393 Definition of the parameters required to make a HCI connection. |
|
394 */ |
|
395 { |
|
396 public: |
|
397 THCIConnHandle iConnH; /*!< Handle to the HCI connection */ |
|
398 TBTDevAddr iBdaddr; /*!< Bluetooth device address */ |
|
399 TUint iCoD; /*!< Class of device */ |
|
400 TLinkType iLinkType; /*!< Link type (ACL / SCO) */ |
|
401 /** |
|
402 Encryption mode |
|
403 @see TEncryptMode |
|
404 */ |
|
405 TEncryptMode iEncryptMode; |
|
406 }; |
|
407 |
|
408 NONSHARABLE_CLASS(TBTSyncConnectOpts) |
|
409 /** |
|
410 Parameters returned by HCI after a successful Synchronous connection. |
|
411 */ |
|
412 { |
|
413 public: |
|
414 inline TBTSyncConnectOpts(const TUint8 aTransmissionInterval, const TUint8 aRetransmissionWindow, |
|
415 const TUint16 aRxPacketLength, const TUint16 aTxPacketLength, const TAirMode aAirMode) |
|
416 : iTransmissionInterval(aTransmissionInterval), iRetransmissionWindow(aRetransmissionWindow), |
|
417 iRxPacketLength(aRxPacketLength), iTxPacketLength(aTxPacketLength), |
|
418 iAirMode(aAirMode) |
|
419 {} |
|
420 |
|
421 public: |
|
422 TUint8 iTransmissionInterval; |
|
423 TUint8 iRetransmissionWindow; |
|
424 TUint16 iRxPacketLength; |
|
425 TUint16 iTxPacketLength; |
|
426 TAirMode iAirMode; |
|
427 }; |
|
428 |
|
429 NONSHARABLE_CLASS(TBTDevHCIVersion) |
|
430 /** |
|
431 BT HCI version definition. |
|
432 */ |
|
433 { |
|
434 public: |
|
435 TUint8 iHCIVersion; /*!< HCI version */ |
|
436 TUint16 iHCIRevision; /*!< HCI Revision */ |
|
437 }; |
|
438 |
|
439 NONSHARABLE_CLASS(TBTDevLMPVersion) |
|
440 /** |
|
441 BT Link Manager Protocol (LMP) version definition. |
|
442 */ |
|
443 { |
|
444 public: |
|
445 TUint8 iLMPVersion; /*!< LMP version */ |
|
446 TUint16 iManufacturerID; /*!< Manufacturer ID */ |
|
447 TUint16 iLMPSubVersion; /*!< LMP sub version */ |
|
448 }; |
|
449 |
|
450 NONSHARABLE_CLASS(TBTQOS) |
|
451 /** |
|
452 BT quality of service definition. |
|
453 @see BT code specification. |
|
454 */ |
|
455 { |
|
456 public: |
|
457 TUint8 iFlags; /*!< QoS flags */ |
|
458 TUint8 iServiceType; /*!< Service type */ |
|
459 TUint iTokenRate; /*!< Token rate */ |
|
460 TUint iPeakBandwidth; /*!< Peak bandwidth */ |
|
461 TUint iLatency; /*!< Latency */ |
|
462 TUint iDelayVariation; /*!< Delay variation */ |
|
463 }; |
|
464 |
|
465 /** |
|
466 Connection handle class for use in the HCI API. |
|
467 |
|
468 Although THCIConnHandle is a valid type to use for representing |
|
469 a connection handle, as there are commands that require an array |
|
470 of the type to be provided, RArray instances are used as the |
|
471 API. The type contents RArrays use must be at a minimum 4 bytes |
|
472 in size. This class provides a 4 byte encapsulation of a 2 byte |
|
473 connection handle. |
|
474 |
|
475 @see THCIConnHandle. |
|
476 */ |
|
477 NONSHARABLE_CLASS(THCIConnectionHandle) |
|
478 { |
|
479 public: |
|
480 IMPORT_C THCIConnectionHandle(); |
|
481 IMPORT_C THCIConnectionHandle(THCIConnHandle aConnHandle); |
|
482 IMPORT_C THCIConnectionHandle& operator=(THCIConnHandle aConnHandle); |
|
483 |
|
484 IMPORT_C THCIConnHandle ConnHandle() const; |
|
485 IMPORT_C operator THCIConnHandle() const; |
|
486 |
|
487 private: |
|
488 THCIConnHandle iConnHandle; |
|
489 TUint16 iPad; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
490 }; |
|
491 |
|
492 /** |
|
493 Class for reporting the number of completed packets by either the |
|
494 host or the controller over the HCI API. |
|
495 |
|
496 Although a simple TUint16 would be sufficient, as there are commands |
|
497 that require an array of the type to be provided as RArray instances |
|
498 are used as the API. The type contents RArrays use must be at a |
|
499 minimum 4 bytes in size. This class provides a 4 byte encapsulation |
|
500 of a 2 byte value representing the {Host,HC}NumOfCompletedPackets. |
|
501 */ |
|
502 NONSHARABLE_CLASS(THCINumOfCompletedPackets) |
|
503 { |
|
504 public: |
|
505 IMPORT_C THCINumOfCompletedPackets(); |
|
506 IMPORT_C THCINumOfCompletedPackets(TUint16 aNumOfCompletedPackets); |
|
507 IMPORT_C THCINumOfCompletedPackets& operator=(TUint16 aNumOfCompletedPackets); |
|
508 |
|
509 IMPORT_C TUint16 NumOfCompletedPackets() const; |
|
510 IMPORT_C operator TUint16() const; |
|
511 |
|
512 private: |
|
513 TUint16 iNumOfCompletedPackets; |
|
514 TUint16 iPad; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
515 }; |
|
516 |
|
517 /** |
|
518 Provides a representation of a clock offset value returned over the |
|
519 Bluetooth HCI. |
|
520 Intended for use within an RArray type class. |
|
521 */ |
|
522 NONSHARABLE_CLASS(THCIClockOffset) |
|
523 { |
|
524 public: |
|
525 IMPORT_C THCIClockOffset(); |
|
526 IMPORT_C THCIClockOffset(TUint16 aClockOffset); |
|
527 IMPORT_C THCIClockOffset& operator=(TUint16 aClockOffset); |
|
528 |
|
529 IMPORT_C TUint16 ClockOffset() const; |
|
530 IMPORT_C operator TUint16() const; |
|
531 |
|
532 private: |
|
533 TUint16 iClockOffset; |
|
534 TUint16 iPad; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
535 }; |
|
536 |
|
537 /** |
|
538 Provides a representation of the page scan repetition mode value returned |
|
539 over the Bluetooth HCI. |
|
540 Intended for use within an RArray type class. |
|
541 */ |
|
542 NONSHARABLE_CLASS(THCIPageScanRepetitionMode) |
|
543 { |
|
544 public: |
|
545 IMPORT_C THCIPageScanRepetitionMode(); |
|
546 IMPORT_C THCIPageScanRepetitionMode(TUint8 aPageScanRepetitionMode); |
|
547 IMPORT_C THCIPageScanRepetitionMode& operator=(TUint8 aPageScanRepetitionMode); |
|
548 |
|
549 IMPORT_C TUint8 PageScanRepetitionMode() const; |
|
550 IMPORT_C operator TUint8() const; |
|
551 |
|
552 private: |
|
553 TUint8 iPageScanRepetitionMode; |
|
554 TUint8 iPad1; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
555 TUint16 iPad2; |
|
556 }; |
|
557 |
|
558 /** |
|
559 Acts as a suitable place holder for reserved octets that are returned over the |
|
560 Bluetooth HCI. |
|
561 Intended for use within an RArray type class. |
|
562 */ |
|
563 NONSHARABLE_CLASS(THCIReservedOctet) |
|
564 { |
|
565 public: |
|
566 IMPORT_C THCIReservedOctet(); |
|
567 IMPORT_C THCIReservedOctet(TUint8 aReservedOctet); |
|
568 IMPORT_C THCIReservedOctet& operator=(TUint8 aReservedOctet); |
|
569 |
|
570 IMPORT_C TUint8 ReservedOctet() const; |
|
571 IMPORT_C operator TUint8() const; |
|
572 |
|
573 private: |
|
574 TUint8 iReservedOctet; |
|
575 TUint8 iPad1; // To pad the class out making it 4 bytes in total (for use in RArray). |
|
576 TUint16 iPad2; |
|
577 }; |
|
578 |
|
579 typedef TBTDevLMPVersion TBTDevRemoteHwVersion; /*!< Definition of the TBTDevRemoteHwVersion type */ |
|
580 typedef TUint16 THCIOpcode; /*!< Definition of the THCIOpcode type */ |
|
581 typedef TUint16 TBasebandTime; /*!< Definition of the TBasebandTime type */ |
|
582 |
|
583 #endif // HCITYPES_H |