epoc32/include/bttypes.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100 (2010-03-31)
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// BT protocol wide types
williamr@2
    15
// 
williamr@2
    16
//
williamr@2
    17
williamr@2
    18
#ifndef _BTTYPES_H
williamr@2
    19
#define _BTTYPES_H
williamr@2
    20
williamr@2
    21
#include <e32std.h>
williamr@2
    22
#include <bluetooth/eirdatacodec.h>
williamr@2
    23
williamr@2
    24
/**
williamr@2
    25
@publishedAll
williamr@2
    26
@released
williamr@2
    27
williamr@2
    28
Minimum eSCO connection latency in milliseconds.  Attempts to specify less than this will be silently
williamr@2
    29
increased to this level.
williamr@2
    30
*/
williamr@2
    31
static const TInt KMinESCOLatency = 4;
williamr@2
    32
williamr@2
    33
/**
williamr@2
    34
@publishedAll
williamr@2
    35
@released
williamr@2
    36
williamr@2
    37
Typedef to represent a HCI connection handle.
williamr@2
    38
*/
williamr@2
    39
typedef TUint16 THCIConnHandle;
williamr@2
    40
williamr@2
    41
/**
williamr@2
    42
@publishedAll
williamr@2
    43
@released
williamr@2
    44
williamr@2
    45
Bluetooth SIG specified values for specification of (piconet) role.
williamr@2
    46
*/
williamr@2
    47
enum TBTBasebandRole
williamr@2
    48
	{
williamr@2
    49
	EMaster			= 0x00, /*!< Master role */
williamr@2
    50
	ESlave			= 0x01, /*!< Slave role */
williamr@2
    51
	ERoleUnknown,			/*!< Unknown role */
williamr@2
    52
	};
williamr@2
    53
williamr@2
    54
/**
williamr@2
    55
@publishedAll
williamr@2
    56
@released
williamr@2
    57
williamr@2
    58
Bluetooth SIG specified values for indicating link modes.
williamr@2
    59
*/
williamr@2
    60
enum TBTLinkMode
williamr@2
    61
    {
williamr@2
    62
    EActiveMode		= 0x00, /*!< Active mode */
williamr@2
    63
    EHoldMode		= 0x01, /*!< Hold mode */
williamr@2
    64
    ESniffMode		= 0x02, /*!< Sniff mode */
williamr@2
    65
    EParkMode		= 0x04, /*!< Park mode */
williamr@2
    66
	EScatterMode	= 0x08, /*!< Scatter mode */
williamr@2
    67
    };
williamr@2
    68
williamr@2
    69
/**
williamr@2
    70
@publishedAll
williamr@2
    71
@released
williamr@2
    72
williamr@2
    73
Typedef to represent a union of TBTLinkMode values.
williamr@2
    74
*/
williamr@2
    75
typedef TUint32 TBTLinkModeSet;
williamr@2
    76
williamr@2
    77
/**
williamr@2
    78
@publishedAll
williamr@2
    79
@released
williamr@2
    80
williamr@2
    81
Bitmask values to help request combinations of link modes.
williamr@2
    82
@see TBTLinkMode
williamr@2
    83
*/
williamr@2
    84
enum TBTLinkModeCombinations
williamr@2
    85
	{
williamr@2
    86
	EAnyLowPowerMode = (EHoldMode | ESniffMode | EParkMode | EScatterMode) /*!< Any low power mode */
williamr@2
    87
	};
williamr@2
    88
williamr@2
    89
/**
williamr@2
    90
@publishedAll
williamr@2
    91
@released
williamr@2
    92
williamr@2
    93
Bluetooth SIG specified values for indicating packet types.
williamr@2
    94
williamr@2
    95
DM1, DH1, DM3, DH3, DM5, DH5 are ACL packet types
williamr@2
    96
HV1, HV2, HV3 are SCO (synchronous link) packet types
williamr@2
    97
*/
williamr@2
    98
enum TBTPacketType
williamr@2
    99
	{
williamr@2
   100
	EPacketsDM1			= 0x0008, /*!< DM1 ACL packet type */
williamr@2
   101
	EPacketsDH1			= 0x0010, /*!< DH1 ACL packet type */
williamr@2
   102
	EPacketsDM3			= 0x0400, /*!< DM3 ACL packet type */
williamr@2
   103
	EPacketsDH3			= 0x0800, /*!< DH3 ACL packet type */
williamr@2
   104
	EPacketsDM5			= 0x4000, /*!< DM5 ACL packet type */
williamr@2
   105
	EPacketsDH5			= 0x8000, /*!< DH5 ACL packet type */
williamr@2
   106
	
williamr@2
   107
	EPackets2_DH1		= 0x0002, /*!< 2-DH1 ACL packet type */
williamr@2
   108
	EPackets3_DH1		= 0x0004, /*!< 3-DH1 ACL packet type */
williamr@2
   109
	EPackets2_DH3		= 0x0100, /*!< 2-DH3 ACL packet type */
williamr@2
   110
	EPackets3_DH3		= 0x0200, /*!< 3-DH3 ACL packet type */
williamr@2
   111
	EPackets2_DH5		= 0x1000, /*!< 2-DH5 ACL packet type */
williamr@2
   112
	EPackets3_DH5		= 0x2000, /*!< 3-DH5 ACL packet type */
williamr@2
   113
williamr@2
   114
	EPacketsHV1			= 0x0020, /*!< HV1 SCO packet type */
williamr@2
   115
	EPacketsHV2			= 0x0040, /*!< HV2 SCO packet type */
williamr@2
   116
	EPacketsHV3			= 0x0080, /*!< HV3 SCO packet type */
williamr@2
   117
	};
williamr@2
   118
williamr@2
   119
/**
williamr@2
   120
@publishedAll
williamr@2
   121
@released
williamr@2
   122
williamr@2
   123
Typedef to represent a set of SCO packet types.
williamr@2
   124
*/
williamr@2
   125
typedef TUint16 TBTSCOPackets;
williamr@2
   126
williamr@2
   127
/**
williamr@2
   128
@publishedAll
williamr@2
   129
@released
williamr@2
   130
williamr@2
   131
Typedef to represent a set of ACL packet types.
williamr@2
   132
*/
williamr@2
   133
typedef TUint16 TBTACLPackets;
williamr@2
   134
williamr@2
   135
/**
williamr@2
   136
@publishedAll
williamr@2
   137
@released
williamr@2
   138
williamr@2
   139
Bitmask values to help request combinations of packets.
williamr@2
   140
@see TBTPacketType
williamr@2
   141
*/
williamr@2
   142
enum TBTPacketTypeCombinations
williamr@2
   143
	{
williamr@2
   144
	EAnyACLPacket	 = EPacketsDM1 | EPacketsDM3 | EPacketsDM5 | EPacketsDH1 | EPacketsDH3 | EPacketsDH5, /*!< Any ACL packet */
williamr@2
   145
	EAnyNonEdrACLPacket = EAnyACLPacket | EPackets2_DH1 | EPackets3_DH1 | EPackets2_DH3 | EPackets3_DH3 | EPackets2_DH5 | EPackets3_DH5, /*!< Any Non-EDR ACL packet */
williamr@2
   146
	EAnySCOPacket	 = EPacketsHV1 | EPacketsHV2 | EPacketsHV3, /*!< Any SCO packet */
williamr@2
   147
	EAnyPacket		= EAnyACLPacket | EAnySCOPacket  /*!< Any packet */
williamr@2
   148
	};
williamr@2
   149
williamr@2
   150
williamr@2
   151
/**
williamr@2
   152
@publishedAll
williamr@2
   153
@released
williamr@2
   154
williamr@2
   155
Typedef to represent a set of synchronous packet types (SCO and eSCO on v1.2).
williamr@2
   156
@see TBTSyncPackets::TSyncPackets
williamr@2
   157
*/
williamr@2
   158
typedef TUint32 TBTSyncPacketTypes;
williamr@2
   159
williamr@2
   160
/**
williamr@2
   161
@publishedAll
williamr@2
   162
@deprecated
williamr@2
   163
williamr@2
   164
This constant is no longer needed to translate the SCO mapping of HV packet types to Synchronous
williamr@2
   165
because CBluetoothSynchronousLink::SetupConnection(const TBTDevAddr& aBDAddr, const TUint16 aPacketTypes)
williamr@2
   166
adjusts aPacketTypes internally on behalf of clients.
williamr@2
   167
*/
williamr@2
   168
static const TInt KSCOvsSyncHVOffset = 5;
williamr@2
   169
williamr@2
   170
/**
williamr@2
   171
@publishedAll
williamr@2
   172
@released
williamr@2
   173
williamr@2
   174
Class to represent a set of synchronous packet types (SCO and eSCO on v1.2).
williamr@2
   175
This differs from TBTSyncPacketTypes as it is the interface used by CBluetoothSynchronousLink
williamr@2
   176
in order to detect the difference between a pre and post eSCO caller.  This is necessary
williamr@2
   177
as HV1 packets in the SCO numbering clash with EV5 packets in the sync numbering.
williamr@2
   178
*/
williamr@2
   179
NONSHARABLE_CLASS(TBTSyncPackets)
williamr@2
   180
	{
williamr@2
   181
	public:
williamr@2
   182
		/**
williamr@2
   183
		@publishedAll
williamr@2
   184
		@released
williamr@2
   185
		
williamr@2
   186
		Individual synchronous packet types.
williamr@2
   187
		@see TBTSyncPacketTypes
williamr@2
   188
		*/
williamr@2
   189
		enum TSyncPackets
williamr@2
   190
			{
williamr@2
   191
			ESyncPacketsHV1		= 0x10001,
williamr@2
   192
			ESyncPacketsHV2		= 0x10002,
williamr@2
   193
			ESyncPacketsHV3		= 0x10004,
williamr@2
   194
williamr@2
   195
			ESyncPacketsEV3		= 0x20008,
williamr@2
   196
			ESyncPacketsEV4		= 0x20010,
williamr@2
   197
			ESyncPacketsEV5		= 0x20020,
williamr@2
   198
			
williamr@2
   199
			ESyncAnySCOPacket	= ESyncPacketsHV1 | ESyncPacketsHV2 | ESyncPacketsHV3,
williamr@2
   200
			ESyncAnyESCOPacket	= ESyncPacketsEV3 | ESyncPacketsEV4 | ESyncPacketsEV5
williamr@2
   201
			};
williamr@2
   202
	
williamr@2
   203
	public:
williamr@2
   204
		IMPORT_C explicit TBTSyncPackets(TBTSyncPacketTypes aPackets);
williamr@2
   205
		IMPORT_C TBTSyncPacketTypes operator()() const;
williamr@2
   206
		
williamr@2
   207
	private:
williamr@2
   208
		TUint32 iPacketTypes;
williamr@2
   209
williamr@2
   210
		// This data padding has been added to help prevent future binary compatibility breaks	
williamr@2
   211
		// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
williamr@2
   212
		TUint32     iPadding1; 
williamr@2
   213
		TUint32     iPadding2; 		
williamr@2
   214
	};
williamr@2
   215
williamr@2
   216
williamr@2
   217
/**
williamr@2
   218
@publishedAll
williamr@2
   219
@released
williamr@2
   220
williamr@2
   221
eSCO links can have different retransmission options, optimised for link usage,
williamr@2
   222
power or reliability.
williamr@2
   223
williamr@2
   224
@see CBluetoothSynchronousLink::SetRetransmissionEffort
williamr@2
   225
*/
williamr@2
   226
enum TBTeSCORetransmissionTypes
williamr@2
   227
	{
williamr@2
   228
	EeSCORetransmitNone			= 0,
williamr@2
   229
	EeSCORetransmitPower		= 1,
williamr@2
   230
	EeSCORetransmitReliability	= 2,
williamr@2
   231
	EeSCORetransmitDontCare		= 0xff
williamr@2
   232
	};
williamr@2
   233
williamr@2
   234
/**
williamr@2
   235
@publishedAll
williamr@2
   236
@released
williamr@2
   237
williamr@2
   238
eSCO unspecified bandwidth.  This value can only be used by the accepting side
williamr@2
   239
of an eSCO link, to allow any bandwidth to be specified by the initiator.
williamr@2
   240
Otherwise both sides of the link must agree on the same bandwidth.
williamr@2
   241
williamr@2
   242
@see CBluetoothSynchronousLink::SetBandwidth
williamr@2
   243
@see CBluetoothSynchronousLink::AcceptConnection
williamr@2
   244
*/
williamr@2
   245
static const TUint32 KESCOBandwidthDontCare = KMaxTUint32;
williamr@2
   246
williamr@2
   247
/**
williamr@2
   248
@internalTechnology
williamr@2
   249
williamr@2
   250
Bit positions of the individual local and remote features.
williamr@2
   251
@see TBTFeatures
williamr@2
   252
*/
williamr@2
   253
enum TBTSupportedFeaturesBits
williamr@2
   254
	{
williamr@2
   255
	ESupportedThreeSlotPacketsBit				= 0,  /*!< Three slot packets are supported */
williamr@2
   256
	ESupportedFiveSlotPacketsBit				= 1,  /*!< Five slot packets are supported */
williamr@2
   257
	ESupportedEncryptionBit						= 2,  /*!< Encryption is supported */
williamr@2
   258
	ESupportedSlotOffsetBit						= 3,  /*!< Slot offset is supported */
williamr@2
   259
	ESupportedTimingAccuracyBit					= 4,  /*!< Timing accuracy is supported */
williamr@2
   260
	ESupportedSwitchBit							= 5,  /*!< Role switch is supported */
williamr@2
   261
	ESupportedHoldModeBit						= 6,  /*!< Hold mode is supported */
williamr@2
   262
	ESupportedSniffModeBit						= 7,  /*!< Sniff mode is supported */
williamr@2
   263
	ESupportedParkModeBit						= 8,  /*!< Park mode is supported */
williamr@2
   264
	ESupportedRSSIBit							= 9,  /*!< Receive signal strength indication is supported */
williamr@2
   265
	ESupportedChannelQualityDrivenDataRateBit	= 10, /*!< Channel quality driven data rate is supported */
williamr@2
   266
	ESupportedSCOLinkBit						= 11, /*!< SCO links are supported */
williamr@2
   267
	ESupportedHV2PacketsBit						= 12, /*!< HV2 packets are supported */
williamr@2
   268
	ESupportedHV3PacketsBit						= 13, /*!< HV3 packets are supported */
williamr@2
   269
	ESupportedu_lawLogBit						= 14, /*!< SCO u-law encoding is supported */
williamr@2
   270
	ESupportedA_lawLogBit						= 15, /*!< SCO A-law encoding is supported */
williamr@2
   271
	ESupportedCVSDBit							= 16, /*!< SCO Continuously variable slope delta modulation is supported */
williamr@2
   272
	ESupportedPagingSchemeBit					= 17, /*!< Paging scheme is supported */
williamr@2
   273
	ESupportedPowerControlBit					= 18, /*!< Power control is supported */
williamr@2
   274
	ESupportedTransparentSCODataBit				= 19, /*!< Transparent SCO data is supported */
williamr@2
   275
	ESupportedFlowControlLagBit0Bit				= 20, /*!< Flow control lag bit 0 is supported */
williamr@2
   276
	ESupportedFlowControlLagBit1Bit				= 21, /*!< Flow control lag bit 1 is supported */
williamr@2
   277
	ESupportedFlowControlLagBit2Bit				= 22, /*!< Flow control lag bit 2 is supported */
williamr@2
   278
	ESupportedBroadcastEncryptionBit			= 23, /*!< Broadcast encryption is supported */
williamr@2
   279
	
williamr@2
   280
	EEDR_ACL_2MbpsModeBit						= 25, /*!< 2Mbps EDR ACL supported */
williamr@2
   281
	EEDR_ACL_3MbpsModeBit						= 26, /*!< 3Mbps EDR ACL supported */
williamr@2
   282
	ESupportedEnhancedEnquiryScanBit			= 27, /*!< Enhanced enquiry scan is supported */
williamr@2
   283
	ESupportedInterlacedEnquiryScanBit			= 28, /*!< Interlaced enquiry scan is supported */
williamr@2
   284
	ESupportedInterlacedPageScanBit				= 29, /*!< Interlaced page scan is supported */
williamr@2
   285
	ESupportedRSSIWithInquiryResultsBit			= 30, /*!< Read signal strength indication with inquiry is supported */
williamr@2
   286
	ESupportedExtendedSCOLinkBit				= 31, /*!< Extended SCO links are supported */
williamr@2
   287
	ESupportedEV4PacketsBit						= 32, /*!< EV4 packets are supported */
williamr@2
   288
	ESupportedEV5PacketsBit						= 33, /*!< EV5 packets are supported */
williamr@2
   289
	
williamr@2
   290
	ESupportedAFHCapableSlaveBit				= 35, /*!< Adaptive frequency hopping in slave role is supported */
williamr@2
   291
	ESupportedAFHClassificationSlaveBit			= 36, /*!< Adaptive frequency hopping classification in slave role is supported */
williamr@2
   292
williamr@2
   293
	ESupportedEDRThreeSlotPacketsBit			= 39, /*!< Three slot EDR packets are supported */
williamr@2
   294
	ESupportedEDRFiveSlotPacketsBit				= 40, /*!< Five slot EDR packets are supported */
williamr@2
   295
	ESupportedSniffSubratingBit					= 41, /*!< Sniff subrating is supported */
williamr@2
   296
	ESupportedEncryptionPauseResumeBit			= 42, /*!< Encryption Pause and Resume is supported */
williamr@2
   297
	ESupportedAFHCapableMasterBit				= 43, /*!< Adaptive frequency hopping in master role is supported */
williamr@2
   298
	ESupportedAFHClassificationMasterBit		= 44, /*!< Adaptive frequency hopping classification in master role is supported */
williamr@2
   299
	EEDR_eSCO_2MbpsModeBit						= 45, /*!< 2Mbps EDR eSCO supported */
williamr@2
   300
	EEDR_eSCO_3MbpsModeBit						= 46, /*!< 3Mbps EDR eSCO supported */
williamr@2
   301
	ESupportedEDReSCOThreeSlotPacketsBit		= 47, /*!< Three slot EDR eSCO packets are supported */
williamr@2
   302
	ESupportedExtendedInquiryResponseBit		= 48, /*!< Extended Inquiry Response */
williamr@2
   303
	
williamr@2
   304
	ESupportedSecureSimplePairingBit			= 51, /*!< Secure Simple Pairing */
williamr@2
   305
	ESupportedEncapsulatedPDUBit				= 52, /*!< Encapsulated PDU */
williamr@2
   306
	ESupportedErroneousDataReportingBit			= 53, /*!< Erroneous Data Reporting */
williamr@2
   307
	ESupportedNonflushablePacketBoundaryFlagBit	= 54, /*!< Non-flushable Packet Boundary Flag */
williamr@2
   308
	
williamr@2
   309
	ESupportedLinkSupervisionTimeoutChangedEventBit	= 56, /*!< Link Supervision Timeout Changed Event */
williamr@2
   310
	ESupportedInquiryResponseTXPowerLevelBit	= 57, /*!< Inquiry Response TX Power Level */
williamr@2
   311
	
williamr@2
   312
	ESupportedExtendedFeaturesBit				= 63, /*!< Additional features are supported */
williamr@2
   313
	};
williamr@2
   314
williamr@2
   315
/**
williamr@2
   316
@internalTechnology
williamr@2
   317
williamr@2
   318
Bit positions of the individual local supported HCI commands.
williamr@2
   319
@see TBluetoothHciCommands
williamr@2
   320
*/
williamr@2
   321
enum TBluetoothSupportedCommandsBits
williamr@2
   322
	{
williamr@2
   323
	ESupportedInquiryCommand								= 0, /*!< Inquiry command is supported */
williamr@2
   324
	ESupportedInquiryCancelCommand							= 1, /*!< Inquiry Cancel command is supported */
williamr@2
   325
	ESupportedPeriodicInquiryModeCommand					= 2, /*!< Periodic Inquiry Mode command is supported */
williamr@2
   326
	ESupportedExitPeriodicInquiryModeCommand				= 3, /*!< Exit Periodic Inquiry Mode command is supported */
williamr@2
   327
	ESupportedCreateConnectionCommand						= 4, /*!< Create Connection command is supported */
williamr@2
   328
	ESupportedDisconnectCommand								= 5, /*!< Disconnect command is supported */
williamr@2
   329
	ESupportedAddSCOConnectionCommand						= 6, /*!< Add SCO Connection command is supported */
williamr@2
   330
	ESupportedCancelCreateConnectionCommand					= 7, /*!< Cancel Create Connection command is supported */
williamr@2
   331
	ESupportedAcceptConnectionRequestCommand				= 8, /*!< Accept Connection Request command is supported */
williamr@2
   332
	ESupportedRejectConnectionRequestCommand				= 9, /*!< Reject Connection Request command is supported */
williamr@2
   333
	ESupportedLinkKeyRequestReplyCommand					= 10, /*!< Link Key Request Reply command is supported */
williamr@2
   334
	ESupportedLinkKeyRequestNegativeReplyCommand			= 11, /*!< Link Key Request Negative Reply command is supported */
williamr@2
   335
	ESupportedPINCodeRequestReplyCommand					= 12, /*!< PIN Code Request Reply command is supported */
williamr@2
   336
	ESupportedPINCodeRequestNegativeReplyCommand			= 13, /*!< PIN Code Request Negative Reply command is supported */
williamr@2
   337
	ESupportedChangeConnectionPacketTypeCommand				= 14, /*!< Change Connection Packet Type command is supported */
williamr@2
   338
	ESupportedAuthenticationRequestCommand					= 15, /*!< Authentication Request command is supported */
williamr@2
   339
	ESupportedSetConnectionEncryptionCommand				= 16, /*!< Set Connection Encryption command is supported */
williamr@2
   340
	ESupportedChangeConnectionLinkKeyCommand				= 17, /*!< Change Connection Link Key command is supported */
williamr@2
   341
	ESupportedMasterLinkKeyCommand							= 18, /*!< Master Link Key command is supported */
williamr@2
   342
	ESupportedRemoteNameRequestCommand						= 19, /*!< Remote Name Request command is supported */
williamr@2
   343
	ESupportedCancelRemoteNameRequestCommand				= 20, /*!< Cancel Remote Name Request command is supported */
williamr@2
   344
	ESupportedReadRemoteSupportedFeaturesCommand			= 21, /*!< Read Remote Supported Features command is supported */
williamr@2
   345
	ESupportedReadRemoteExtendedFeaturesCommand				= 22, /*!< Read Remote Extended Features command is supported */
williamr@2
   346
	ESupportedReadRemoteVersionInformationCommand			= 23, /*!< Read Remote Version Information command is supported */
williamr@2
   347
	ESupportedReadClockOffsetCommand						= 24, /*!< Read Clock Offset command is supported */
williamr@2
   348
	ESupportedReadLMPHandleCommand							= 25, /*!< Read LMP Handle command is supported */
williamr@2
   349
	ESupportedHoldModeCommand								= 33, /*!< Hold Mode command is supported */
williamr@2
   350
	ESupportedSniffModeCommand								= 34, /*!< Sniff Mode command is supported */
williamr@2
   351
	ESupportedExitSniffModeCommand							= 35, /*!< Exit Sniff Mode command is supported */
williamr@2
   352
	ESupportedParkStateCommand								= 36, /*!< Park State command is supported */
williamr@2
   353
	ESupportedExitParkStateCommand							= 37, /*!< Exit Park State command is supported */
williamr@2
   354
	ESupportedQoSSetupCommand								= 38, /*!< QoS Setup command is supported */
williamr@2
   355
	ESupportedRoleDiscoveryCommand							= 39, /*!< Role Discovery command is supported */
williamr@2
   356
	ESupportedSwitchRoleCommand								= 40, /*!< Switch Role command is supported */
williamr@2
   357
	ESupportedReadLinkPolicySettingsCommand					= 41, /*!< Read Link Policy Settings command is supported */
williamr@2
   358
	ESupportedWriteLinkPolicySettingsCommand				= 42, /*!< Write Link Policy Settings command is supported */
williamr@2
   359
	ESupportedReadDefaultLinkPolicySettingsCommand			= 43, /*!< Read Default Link Policy Settings command is supported */
williamr@2
   360
	ESupportedWriteDefaultLinkPolicySettingsCommand			= 44, /*!< Write Default Link Policy Settings command is supported */
williamr@2
   361
	ESupportedFlowSpecificationCommand						= 45, /*!< Flow Specification command is supported */
williamr@2
   362
	ESupportedSetEventMarkCommand							= 46, /*!< Set Event Mark command is supported */
williamr@2
   363
	ESupportedResetCommand									= 47, /*!< Reset command is supported */
williamr@2
   364
	ESupportedSetEventFilterCommand							= 48, /*!< Set Event Filter command is supported */
williamr@2
   365
	ESupportedFlushCommand									= 49, /*!< Flush command is supported */
williamr@2
   366
	ESupportedReadPINTypeCommand							= 50, /*!< Read PIN Type command is supported */
williamr@2
   367
	ESupportedWritePINTypeCommand							= 51, /*!< Write PIN Type command is supported */
williamr@2
   368
	ESupportedCreateNewUnitKeyCommand						= 52, /*!< Create New Unit Key command is supported */
williamr@2
   369
	ESupportedReadStoredLinkKeyCommand						= 53, /*!< Read Stored Link Key command is supported */
williamr@2
   370
	ESupportedWriteStoredLinkKeyCommand						= 54, /*!< Write Stored Link Key command is supported */
williamr@2
   371
	ESupportedDeleteStoredLinkKeyCommand					= 55, /*!< Delete Stored Link Key command is supported */
williamr@2
   372
	ESupportedWriteLocalNameCommand							= 56, /*!< Write Local Name command is supported */
williamr@2
   373
	ESupportedReadLocalNameCommand							= 57, /*!< Read Local Name command is supported */
williamr@2
   374
	ESupportedReadConnectionAcceptTimeoutCommand			= 58, /*!< Read Connection Accept Timeout command is supported */
williamr@2
   375
	ESupportedWriteConnectionAcceptTimeoutCommand			= 59, /*!< Write Connection Accept Timeout command is supported */
williamr@2
   376
	ESupportedReadPageTimeoutCommand						= 60, /*!< Read Page Timeout command is supported */
williamr@2
   377
	ESupportedWritePageTimeoutCommand						= 61, /*!< Write Page Timeout command is supported */
williamr@2
   378
	ESupportedReadScanEnableCommand							= 62, /*!< Read Scan Enable command is supported */
williamr@2
   379
	ESupportedWriteScanEnableCommand						= 63, /*!< Write Scan Enable command is supported */
williamr@2
   380
	ESupportedReadPageScanActivityCommand					= 64, /*!< Read Page Scan Activity command is supported */
williamr@2
   381
	ESupportedWritePageScanActivityCommand					= 65, /*!< Write Page Scan Activity command is supported */
williamr@2
   382
	ESupportedReadInquiryScanActivityCommand				= 66, /*!< Read Inquiry Scan Activity command is supported */
williamr@2
   383
	ESupportedWriteInquiryScanActivityCommand				= 67, /*!< Write Inquiry Scan Activity command is supported */
williamr@2
   384
	ESupportedReadClassOfDeviceCommand						= 72, /*!< Read Class Of Device command is supported */
williamr@2
   385
	ESupportedWriteClassOfDeviceCommand						= 73, /*!< Write Class Of Device command is supported */
williamr@2
   386
	ESupportedReadVoiceSettingCommand						= 74, /*!< Read Voice Setting command is supported */
williamr@2
   387
	ESupportedWriteVoiceSettingCommand						= 75, /*!< Write Voice Setting command is supported */
williamr@2
   388
	ESupportedReadAutomaticFlushTimeoutCommand				= 76, /*!< Read Automatic Flush Timeout command is supported */
williamr@2
   389
	ESupportedWriteAutomaticFlushTimeoutCommand				= 77, /*!< Write Automatic Flush Timeout command is supported */
williamr@2
   390
	ESupportedReadNumBroadcastRetransmissionsCommand		= 78, /*!< Read Num Broadcast Retransmissions command is supported */
williamr@2
   391
	ESupportedWriteNumBroadcastRetransmissionsCommand		= 79, /*!< Write Num Broadcast Retransmissions command is supported */
williamr@2
   392
	ESupportedReadHoldModeActivityCommand					= 80, /*!< Read Hold Mode Activity command is supported */
williamr@2
   393
	ESupportedWriteHoldModeActivityCommand					= 81, /*!< Write Hold Mode Activity command is supported */
williamr@2
   394
	ESupportedReadTransmitPowerLevelCommand					= 82, /*!< Read Transmit Power Level command is supported */
williamr@2
   395
	ESupportedReadSynchronousFlowControlEnableCommand		= 83, /*!< Read Synchronous Flow Control Enable command is supported */
williamr@2
   396
	ESupportedWriteSynchronousFlowControlEnableCommand		= 84, /*!< Write Synchronous Flow Control Enable command is supported */
williamr@2
   397
	ESupportedSetHostControllerToHostFlowControlCommand		= 85, /*!< Set Host Controller To Host Flow Control command is supported */
williamr@2
   398
	ESupportedHostBufferSizeCommand							= 86, /*!< Host Buffer Size command is supported */
williamr@2
   399
	ESupportedHostNumberOfCompletedPacketsCommand			= 87, /*!< Host Number Of Completed Packets command is supported */
williamr@2
   400
	ESupportedReadLinkSupervisionTimeoutCommand				= 88, /*!< Read Link Supervision Timeout command is supported */
williamr@2
   401
	ESupportedWriteLinkSupervisionTimeoutCommand			= 89, /*!< Write Link Supervision Timeout command is supported */
williamr@2
   402
	ESupportedReadNumberofSupportedIACCommand				= 90, /*!< Read Number of Supported IAC command is supported */
williamr@2
   403
	ESupportedReadCurrentIACLAPCommand						= 91, /*!< Read Current IAC LAP command is supported */
williamr@2
   404
	ESupportedWriteCurrentIACLAPCommand						= 92, /*!< Write Current IAC LAP command is supported */
williamr@2
   405
	ESupportedReadPageScanModeCommand						= 95, /*!< Read Page Scan Mode command is supported */
williamr@2
   406
	ESupportedWritePageScanModeCommand						= 96, /*!< Write Page Scan Mode command is supported */
williamr@2
   407
	ESupportedSetAFHChannelClassificationCommand			= 97, /*!< Set AFH Channel Classification command is supported */
williamr@2
   408
	ESupportedReadInquiryScanTypeCommand					= 100, /*!< Read Inquiry Scan Type command is supported */
williamr@2
   409
	ESupportedWriteInquiryScanTypeCommand					= 101, /*!< Write Inquiry Scan Type command is supported */
williamr@2
   410
	ESupportedReadInquiryModeCommand						= 102, /*!< Read Inquiry Mode command is supported */
williamr@2
   411
	ESupportedWriteInquiryModeCommand						= 103, /*!< Write Inquiry Mode command is supported */
williamr@2
   412
	ESupportedReadPageScanTypeCommand						= 104, /*!< Read Page Scan Type command is supported */
williamr@2
   413
	ESupportedWritePageScanTypeCommand						= 105, /*!< Write Page Scan Type command is supported */
williamr@2
   414
	ESupportedReadAFHChannelAssessmentModeCommand			= 106, /*!< Read AFH Channel Assessment Mode command is supported */
williamr@2
   415
	ESupportedWriteAFHChannelAssessmentModeCommand			= 107, /*!< Write AFH Channel Assessment Mode command is supported */
williamr@2
   416
	ESupportedReadLocalVersionInformationCommand			= 115, /*!< Read Local Version Information command is supported */
williamr@2
   417
	ESupportedReadLocalSupportedFeaturesCommand				= 117, /*!< Read Local Supported Features command is supported */
williamr@2
   418
	ESupportedReadLocalExtendedFeaturesCommand				= 118, /*!< Read Local Extended Features command is supported */
williamr@2
   419
	ESupportedReadBufferSizeCommand							= 119, /*!< Read Buffer Size command is supported */
williamr@2
   420
	ESupportedReadCountryCodeCommand						= 120, /*!< Read Country Code [Deprecated] command is supported */
williamr@2
   421
	ESupportedReadBDADDRCommand								= 121, /*!< Read BD ADDR command is supported */
williamr@2
   422
	ESupportedReadFailedContactCountCommand					= 122, /*!< Read Failed Contact Count command is supported */
williamr@2
   423
	ESupportedResetFailedContactCountCommand				= 123, /*!< Reset Failed Contact Count command is supported */
williamr@2
   424
	ESupportedGetLinkQualityCommand							= 124, /*!< Get Link Quality command is supported */
williamr@2
   425
	ESupportedReadRSSICommand								= 125, /*!< Read RSSI command is supported */
williamr@2
   426
	ESupportedReadAFHChannelMapCommand						= 126, /*!< Read AFH Channel Map command is supported */
williamr@2
   427
	ESupportedReadBDClockCommand							= 127, /*!< Read BD Clock command is supported */
williamr@2
   428
	ESupportedReadLoopbackModeCommand						= 128, /*!< Read Loopback Mode command is supported */
williamr@2
   429
	ESupportedWriteLoopbackModeCommand						= 129, /*!< Write Loopback Mode command is supported */
williamr@2
   430
	ESupportedEnableDeviceUnderTestModeCommand				= 130, /*!< Enable Device Under Test Mode command is supported */
williamr@2
   431
	ESupportedSetupSynchronousConnectionCommand				= 131, /*!< Setup Synchronous Connection command is supported */
williamr@2
   432
	ESupportedAcceptSynchronousConnectionCommand			= 132, /*!< Accept Synchronous Connection command is supported */
williamr@2
   433
	ESupportedRejectSynchronousConnectionCommand			= 133, /*!< Reject Synchronous Connection command is supported */
williamr@2
   434
	ESupportedReadExtendedInquiryResponseCommand			= 136, /*!< Read Extended Inquiry Response command is supported */
williamr@2
   435
	ESupportedWriteExtendedInquiryResponseCommand			= 137, /*!< Write Extended Inquiry Response command is supported */
williamr@2
   436
	ESupportedRefreshEncryptionKeyCommand					= 138, /*!< Refresh Encryption Key command is supported */
williamr@2
   437
	ESupportedSniffSubratingCommand							= 140, /*!< Sniff Subrating command is supported */
williamr@2
   438
	ESupportedReadSimplePairingModeCommand					= 141, /*!< Read Simple Pairing Mode command is supported */
williamr@2
   439
	ESupportedWriteSimplePairingModeCommand					= 142, /*!< Write Simple Pairing Mode command is supported */
williamr@2
   440
	ESupportedReadLocalOOBDataCommand						= 143, /*!< Read Local OOB Data command is supported */
williamr@2
   441
	ESupportedReadInquiryResponseTransmitPowerCommand		= 144, /*!< Read Inquiry Response Transmit Power command is supported */
williamr@2
   442
	ESupportedWriteInquiryTransmitPowerLevelCommand			= 145, /*!< Write Inquiry Transmit Power Level command is supported */
williamr@2
   443
	ESupportedReadDefaultErroneousDataReportingCommand		= 146, /*!< Read Default Erroneous Data Reporting command is supported */
williamr@2
   444
	ESupportedWriteDefaultErroneousDataReportingCommand		= 147, /*!< Write Default Erroneous Data Reporting command is supported */
williamr@2
   445
	ESupportedIOCapabilityRequestReplyCommand				= 151, /*!< IO Capability Request Reply command is supported */
williamr@2
   446
	ESupportedUserConfirmationRequestReplyCommand			= 152, /*!< User Confirmation Request Reply command is supported */
williamr@2
   447
	ESupportedUserConfirmationRequestNegativeReplyCommand	= 153, /*!< User Confirmation Request Negative Reply command is supported */
williamr@2
   448
	ESupportedUserPasskeyRequestReplyCommand				= 154, /*!< User Passkey Request Reply command is supported */
williamr@2
   449
	ESupportedUserPasskeyRequestNegativeReplyCommand		= 155, /*!< User Passkey Request Negative Reply command is supported */
williamr@2
   450
	ESupportedRemoteOOBDataRequestReplyCommand				= 156, /*!< Remote OOB Data Request Reply command is supported */
williamr@2
   451
	ESupportedWriteSimplePairingDebugModeCommand			= 157, /*!< Write Simple Pairing Debug Mode command is supported */
williamr@2
   452
	ESupportedEnhancedFlushCommand							= 158, /*!< Enhanced Flush command is supported */
williamr@2
   453
	ESupportedRemoteOOBDataRequestNegativeReplyCommand		= 159, /*!< Remote OOB Data Request Negative Reply command is supported */
williamr@2
   454
	ESupportedSendKeypressNotificationCommand				= 162, /*!< Send Keypress Notification command is supported */
williamr@2
   455
	ESupportedIOCapabilitiesResponseNegativeReplyCommand	= 163, /*!< IO Capabilities Response Negative Reply command is supported */
williamr@2
   456
	};
williamr@2
   457
williamr@2
   458
/**
williamr@2
   459
@publishedAll
williamr@2
   460
@released
williamr@2
   461
williamr@2
   462
Bluetooth SIG specified values indicating whether a device
williamr@2
   463
is physically able to support a baseband (or link manager protocol) feature
williamr@2
   464
*/
williamr@2
   465
enum TBTSupportedFeatures
williamr@2
   466
	{
williamr@2
   467
	ESupportedThreeSlotPackets				= 1<<0,  /*!< Three slot packets are supported */
williamr@2
   468
	ESupportedFiveSlotPackets				= 1<<1,  /*!< Five slot packets are supported */
williamr@2
   469
	ESupportedEncryption					= 1<<2,  /*!< Encryption is supported */
williamr@2
   470
	ESupportedSlotOffset					= 1<<3,  /*!< Slot offset is supported */
williamr@2
   471
	ESupportedTimingAccuracy				= 1<<4,  /*!< Timing accuracy is supported */
williamr@2
   472
	ESupportedSwitch						= 1<<5,  /*!< Role switch is supported */
williamr@2
   473
	ESupportedHoldMode						= 1<<6,  /*!< Hold mode is supported */
williamr@2
   474
	ESupportedSniffMode						= 1<<7,  /*!< Sniff mode is supported */
williamr@2
   475
	ESupportedParkMode						= 1<<8,  /*!< Park mode is supported */
williamr@2
   476
	ESupportedRSSI							= 1<<9,  /*!< Receive signal strength indication is supported */
williamr@2
   477
	ESupportedChannelQualityDrivenDataRate	= 1<<10, /*!< Channel quality driven data rate is supported */
williamr@2
   478
	ESupportedSCOLink						= 1<<11, /*!< SCO links are supported */
williamr@2
   479
	ESupportedHV2Packets					= 1<<12, /*!< HV2 packets are supported */
williamr@2
   480
	ESupportedHV3Packets					= 1<<13, /*!< HV3 packets are supported */
williamr@2
   481
	ESupportedu_lawLog						= 1<<14, /*!< SCO u-law encoding is supported */
williamr@2
   482
	ESupportedA_lawLog						= 1<<15, /*!< SCO A-law encoding is supported */
williamr@2
   483
	ESupportedCVSD							= 1<<16, /*!< SCO Continuously variable slope delta modulation is supported */
williamr@2
   484
	ESupportedPagingScheme					= 1<<17, /*!< Paging scheme is supported */
williamr@2
   485
	ESupportedPowerControl					= 1<<18, /*!< Power control is supported */
williamr@2
   486
	ESupportedTransparentSCOData			= 1<<19, /*!< Transparent SCO data is supported */
williamr@2
   487
	ESupportedFlowControlLagBit0			= 1<<20, /*!< Flow control lag bit 0 is supported */
williamr@2
   488
	ESupportedFlowControlLagBit1			= 1<<21, /*!< Flow control lag bit 1 is supported */
williamr@2
   489
	ESupportedFlowControlLagBit2			= 1<<22, /*!< Flow control lag bit 2 is supported */
williamr@2
   490
	};
williamr@2
   491
williamr@2
   492
/**
williamr@2
   493
@publishedAll
williamr@2
   494
@released
williamr@2
   495
williamr@2
   496
Bitmask values for notifying/requesting notification of the state of a physical link.
williamr@2
   497
williamr@2
   498
These values have a two fold purpose:
williamr@2
   499
1) They can be used along with TBTPhysicalLinkStateNotifierCombinations to specify
williamr@2
   500
a set of baseband change events for which notification is desired.
williamr@2
   501
2) They can be used to notify the state of a physical link or a subset of that state.
williamr@2
   502
For example if only mode change events are being monitored, then at each mode change event
williamr@2
   503
only the bit reperesenting the new mode will be returned, however if the whole link state
williamr@2
   504
is required, then a combination of bit values indicating that state will be returned.
williamr@2
   505
williamr@2
   506
THESE BIT VALUES MUST ONLY BE USED WHEN REQUESTING NOTIFICATION, OR WHEN PARSING THE
williamr@2
   507
RESULTS OF A NOTIFICATION. All other baseband state activities should use one of the 
williamr@2
   508
appropriate Bluetooth SIG specified enums
williamr@2
   509
@see TBTBasebandRole
williamr@2
   510
@see TBTLinkMode
williamr@2
   511
@see TBTLinkModeCombinations
williamr@2
   512
@see TBTPacketType
williamr@2
   513
@see TBTPacketTypeCombinations
williamr@2
   514
*/
williamr@2
   515
enum TBTPhysicalLinkStateNotifier
williamr@2
   516
	{
williamr@2
   517
	ENotifyMaster					= 0x00000001, /*!< Master */
williamr@2
   518
	ENotifySlave					= 0x00000002, /*!< Slave */
williamr@2
   519
williamr@2
   520
	ENotifyActiveMode				= 0x00000004, /*!< Active mode */
williamr@2
   521
	ENotifySniffMode				= 0x00000008, /*!< Sniff mode */
williamr@2
   522
	ENotifyParkMode					= 0x00000010, /*!< Park mode */
williamr@2
   523
	ENotifyHoldMode					= 0x00000020, /*!< Hold mode */
williamr@2
   524
williamr@2
   525
	ENotifyMaxSlots1				= 0x00000040, /*!< Max slots 1 */
williamr@2
   526
	ENotifyMaxSlots3				= 0x00000080, /*!< Max slots 3 */
williamr@2
   527
	ENotifyMaxSlots5				= 0x00000100, /*!< Max slots 5 */
williamr@2
   528
williamr@2
   529
	ENotifyPacketsDM1				= 0x00000200, /*!< Packets DM1 */
williamr@2
   530
	ENotifyPacketsDH1				= 0x00000400, /*!< Packets DH1 */
williamr@2
   531
	ENotifyPacketsDM3				= 0x00000800, /*!< Packets DM3 */
williamr@2
   532
	ENotifyPacketsDH3				= 0x00001000, /*!< Packets DH3 */
williamr@2
   533
	ENotifyPacketsDM5				= 0x00002000, /*!< Packets DM5 */
williamr@2
   534
	ENotifyPacketsDH5				= 0x00004000, /*!< Packets DH5 */
williamr@2
   535
williamr@2
   536
	ENotifyPacketsHV1				= 0x00008000, /*!< HV1 */
williamr@2
   537
	ENotifyPacketsHV2				= 0x00010000, /*!< HV2 */
williamr@2
   538
	ENotifyPacketsHV3				= 0x00020000, /*!< HV3 */
williamr@2
   539
williamr@2
   540
	ENotifyAuthenticationComplete	= 0x00040000, /*!< Authentication Complete */
williamr@2
   541
	ENotifyEncryptionChangeOn		= 0x00080000, /*!< Encryption Change On */
williamr@2
   542
	ENotifyEncryptionChangeOff		= 0x00100000, /*!< Encryption Change Off */
williamr@2
   543
williamr@2
   544
	ENotifyPhysicalLinkUp			= 0x00200000, /*!< Physical Link Up */
williamr@2
   545
	ENotifyPhysicalLinkDown			= 0x00400000, /*!< Physical Link Down */
williamr@2
   546
	ENotifyPhysicalLinkError		= 0x00800000, /*!< Physical Link Error */
williamr@2
   547
williamr@2
   548
	ENotifySynchronousLinkUp		= 0x01000000, /*!< Synchronous Link Up */
williamr@2
   549
	ENotifySynchronousLinkDown		= 0x02000000, /*!< Synchronous Link Down */
williamr@2
   550
	ENotifySynchronousLinkError		= 0x04000000, /*!< Synchronous Link Error */
williamr@2
   551
williamr@2
   552
	/**
williamr@2
   553
 	@deprecated This has been superseded by ENotifySynchronousLinkUp
williamr@2
   554
 	@see ENotifySynchronousLinkUp 
williamr@2
   555
 	*/
williamr@2
   556
 	ENotifySCOLinkUp				= ENotifySynchronousLinkUp,
williamr@2
   557
 	/**
williamr@2
   558
 	@deprecated This has been superseded by ENotifySynchronousLinkDown
williamr@2
   559
 	@see ENotifySynchronousLinkDown 
williamr@2
   560
 	*/
williamr@2
   561
 	ENotifySCOLinkDown				= ENotifySynchronousLinkDown, 
williamr@2
   562
 	/**
williamr@2
   563
 	@deprecated This has been superseded by ENotifySynchronousLinkError
williamr@2
   564
 	@see ENotifySynchronousLinkError 
williamr@2
   565
 	*/
williamr@2
   566
 	ENotifySCOLinkError				= ENotifySynchronousLinkError 
williamr@2
   567
williamr@2
   568
	};
williamr@2
   569
williamr@2
   570
/**
williamr@2
   571
@publishedAll
williamr@2
   572
@released
williamr@2
   573
williamr@2
   574
Bitmask values to help request notification of the state of a physical link.
williamr@2
   575
@see TBTPhysicalLinkStateNotifier
williamr@2
   576
*/
williamr@2
   577
enum TBTPhysicalLinkStateNotifierCombinations
williamr@2
   578
	{
williamr@2
   579
	ENotifyAnyRole					= ENotifyMaster | ENotifySlave,
williamr@2
   580
	ENotifyAnyLowPowerMode			= ENotifySniffMode | ENotifyParkMode | ENotifyHoldMode,
williamr@2
   581
	ENotifyAnyPowerMode				= ENotifyActiveMode | ENotifyAnyLowPowerMode,
williamr@2
   582
	ENotifyAnyMaxSlots				= ENotifyMaxSlots1 | ENotifyMaxSlots3 | ENotifyMaxSlots5,
williamr@2
   583
	ENotifyAnyACLPacketType			= ENotifyPacketsDM1 | ENotifyPacketsDH1 | ENotifyPacketsDM3 | EPacketsDH3 | EPacketsDM5 | EPacketsDH5,
williamr@2
   584
	ENotifyAnySCOPacketType			= ENotifyPacketsHV1 | ENotifyPacketsHV2 | ENotifyPacketsHV3,
williamr@2
   585
	ENotifyAnyPacketType			= ENotifyAnyACLPacketType | ENotifyAnySCOPacketType,
williamr@2
   586
	ENotifyAnyPhysicalLinkState		= 0xffffffff,
williamr@2
   587
	};
williamr@2
   588
williamr@2
   589
/**
williamr@2
   590
@publishedAll
williamr@2
   591
@released
williamr@2
   592
williamr@2
   593
The maximum length of an SDP UUID.
williamr@2
   594
*/
williamr@2
   595
static const TInt KSdpUUIDMaxLength			= 16;
williamr@2
   596
williamr@2
   597
/**
williamr@2
   598
@publishedAll
williamr@2
   599
@released
williamr@2
   600
williamr@2
   601
The size of a bluetooth device address in bytes.
williamr@2
   602
*/
williamr@2
   603
const TInt KBTDevAddrSize=0x06;
williamr@2
   604
williamr@2
   605
/**
williamr@2
   606
@publishedAll
williamr@2
   607
@released
williamr@2
   608
williamr@2
   609
The size of a bluetooth device address in bytes.
williamr@2
   610
*/
williamr@2
   611
const TInt KBTMaxDevAddrSize = KBTDevAddrSize;
williamr@2
   612
williamr@2
   613
/**
williamr@2
   614
@publishedAll
williamr@2
   615
@released
williamr@2
   616
williamr@2
   617
48-bit bluetooth device address.
williamr@2
   618
Each bluetooth device has a unique address built into the hardware, which
williamr@2
   619
is represented by this class. Used for identifying remote addresses.
williamr@2
   620
The interface operates in a big-endian manner -- e.g. addr[0] refers
williamr@2
   621
to the most significant byte of the address. This is the same ordering
williamr@2
   622
as the addresses would naturally be written down on paper.
williamr@2
   623
**/
williamr@2
   624
NONSHARABLE_CLASS(TBTDevAddr)
williamr@2
   625
    {
williamr@2
   626
public:
williamr@2
   627
    IMPORT_C TBTDevAddr();
williamr@2
   628
    IMPORT_C TBTDevAddr(const TInt64 &aInt);
williamr@2
   629
    IMPORT_C TBTDevAddr(const TDesC8 &aDes);
williamr@2
   630
    IMPORT_C TBool operator==(const TBTDevAddr& aAddr) const;
williamr@2
   631
    IMPORT_C TBool operator!=(const TBTDevAddr& aAddr) const;
williamr@2
   632
	IMPORT_C const TUint8 &operator[](TInt aIndex) const;
williamr@2
   633
	IMPORT_C TUint8 &operator[](TInt aIndex);
williamr@2
   634
	IMPORT_C void Reset();
williamr@2
   635
	IMPORT_C TPtr8 Des();
williamr@2
   636
	IMPORT_C const TPtrC8 Des() const;
williamr@2
   637
	IMPORT_C TInt SetReadable(const TDesC& aSource);
williamr@2
   638
	IMPORT_C void GetReadable(TDes& aDest) const;
williamr@2
   639
	IMPORT_C void GetReadable(TDes& aDest, const TDesC& aPrepend, const TDesC& aByteSeperator, const TDesC& aAppend) const;
williamr@2
   640
    IMPORT_C TBool operator<=(const TBTDevAddr& aAddr) const;
williamr@2
   641
private:
williamr@2
   642
	TFixedArray<TUint8, KBTDevAddrSize> iAddr;
williamr@2
   643
williamr@2
   644
	// This data padding has been added to help prevent future binary compatibility breaks	
williamr@2
   645
	// iPadding hasn't been zero'd because it is currently not used
williamr@2
   646
	TUint16     iPadding; 			
williamr@2
   647
    };
williamr@2
   648
williamr@2
   649
/**
williamr@2
   650
@publishedAll
williamr@2
   651
@released
williamr@2
   652
williamr@2
   653
A Bluetooth Universally Unique Identifier.
williamr@2
   654
williamr@2
   655
This is a 128-bit quantity that can be created without a central registry 
williamr@2
   656
while still being globally unique.
williamr@2
   657
UUIDs are always held in full 128 bit format, however they can be set from 
williamr@2
   658
BT SIG short form (16 or 32 bit) addresses, and returned as down to their 
williamr@2
   659
shortest form using ShortestForm().
williamr@2
   660
**/
williamr@2
   661
NONSHARABLE_CLASS(TUUID)
williamr@2
   662
	{
williamr@2
   663
public:
williamr@2
   664
	IMPORT_C TUUID();
williamr@2
   665
	IMPORT_C TUUID(TUint32 aLong);
williamr@2
   666
	IMPORT_C TUUID(TUint32 aHH, TUint32 aHL, TUint32 aLH, TUint32 aLL);
williamr@2
   667
	IMPORT_C TUUID(const TUid& aUid);
williamr@2
   668
	IMPORT_C void SetL(const TDesC8& aDes);
williamr@2
   669
	IMPORT_C const TPtrC8 LongForm() const;
williamr@2
   670
	IMPORT_C const TPtrC8 ShortestForm() const;
williamr@2
   671
	IMPORT_C const TPtrC8 Des() const;
williamr@2
   672
	/**
williamr@2
   673
	@deprecated
williamr@2
   674
	Use SpecifiedLengthL(TInt aLength) instead
williamr@2
   675
	*/
williamr@2
   676
	IMPORT_C const TPtrC8 FixedLengthL(TInt aLength) const;
williamr@2
   677
	IMPORT_C TInt MinimumSize() const;
williamr@2
   678
    IMPORT_C TBool operator==(const TUUID& aUUID) const;
williamr@2
   679
    IMPORT_C TBool operator!=(const TUUID& aUUID) const;
williamr@2
   680
	IMPORT_C const TUint8 &operator[](TInt aIndex) const;
williamr@2
   681
	IMPORT_C TUint8 &operator[](TInt aIndex);
williamr@2
   682
	IMPORT_C const TPtrC8 SpecifiedLengthL(TInt aLength) const;
williamr@2
   683
	IMPORT_C void SetFromLittleEndianL(const TDesC8& aDes);
williamr@2
   684
private:
williamr@2
   685
	TFixedArray<TUint8, KSdpUUIDMaxLength> iUUID;	
williamr@2
   686
williamr@2
   687
	// This data padding has been added to help prevent future binary compatibility breaks	
williamr@2
   688
	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
williamr@2
   689
	TUint32		iPadding1;
williamr@2
   690
	TUint32		iPadding2;
williamr@2
   691
	};
williamr@2
   692
williamr@2
   693
williamr@2
   694
/**
williamr@2
   695
@publishedAll
williamr@2
   696
@released
williamr@2
   697
williamr@2
   698
A UUID container class
williamr@2
   699
*/
williamr@2
   700
NONSHARABLE_CLASS(RUUIDContainer)
williamr@2
   701
	{
williamr@2
   702
public:
williamr@2
   703
	IMPORT_C void Close();
williamr@2
   704
	IMPORT_C void Reset();
williamr@2
   705
	IMPORT_C TInt Count() const;
williamr@2
   706
	IMPORT_C TUUID& operator[](TInt aIndex);
williamr@2
   707
	IMPORT_C const TUUID& operator[](TInt aIndex) const;
williamr@2
   708
	IMPORT_C const TUUID& At(TInt aIndex) const;
williamr@2
   709
	IMPORT_C TBool IsPresent(const TUUID& aUuid) const;
williamr@2
   710
	IMPORT_C TInt Add(const TUUID& aUuid);
williamr@2
   711
williamr@2
   712
private:
williamr@2
   713
	RArray<TUUID> iUUIDs;
williamr@2
   714
	
williamr@2
   715
	// This data padding has been added to help prevent future binary compatibility breaks
williamr@2
   716
	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
williamr@2
   717
	TUint32		iPadding1;
williamr@2
   718
	TUint32		iPadding2;
williamr@2
   719
	};
williamr@2
   720
williamr@2
   721
williamr@2
   722
/**
williamr@2
   723
@publishedAll
williamr@2
   724
@released
williamr@2
   725
williamr@2
   726
An EIR UUID container class. Contains UUIDs and indications of data completeness
williamr@2
   727
*/
williamr@2
   728
NONSHARABLE_CLASS(RExtendedInquiryResponseUUIDContainer)
williamr@2
   729
	{
williamr@2
   730
public:
williamr@2
   731
	enum TUUIDType
williamr@2
   732
		{
williamr@2
   733
		EUUID16  = 0x1,
williamr@2
   734
		EUUID32  = 0x2,
williamr@2
   735
		EUUID128 = 0x4,
williamr@2
   736
		};
williamr@2
   737
	
williamr@2
   738
public:
williamr@2
   739
	IMPORT_C void Close();
williamr@2
   740
	IMPORT_C RUUIDContainer& UUIDs();
williamr@2
   741
	IMPORT_C void SetCompleteness(TUUIDType aType, TBool aIsComplete);
williamr@2
   742
	IMPORT_C TBool GetCompleteness(TUUIDType aType) const;
williamr@2
   743
williamr@2
   744
private:
williamr@2
   745
	RUUIDContainer iUUIDs;
williamr@2
   746
	TInt iCompleteness;
williamr@2
   747
	
williamr@2
   748
	// This data padding has been added to help prevent future binary compatibility breaks
williamr@2
   749
	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
williamr@2
   750
	TUint32     iPadding1;
williamr@2
   751
	TUint32     iPadding2;
williamr@2
   752
	};
williamr@2
   753
williamr@2
   754
/**
williamr@2
   755
@publishedAll
williamr@2
   756
@released
williamr@2
   757
williamr@2
   758
The size of a link key, in bytes.
williamr@2
   759
*/
williamr@2
   760
const TUint8 KHCILinkKeySize=16;
williamr@2
   761
williamr@2
   762
/**
williamr@2
   763
@publishedAll
williamr@2
   764
@released
williamr@2
   765
williamr@2
   766
The size of a pin code, in bytes.
williamr@2
   767
*/
williamr@2
   768
const TUint8 KHCIPINCodeSize=16;
williamr@2
   769
williamr@2
   770
/**
williamr@2
   771
@publishedAll
williamr@2
   772
@released
williamr@2
   773
williamr@2
   774
Link key structure.
williamr@2
   775
*/
williamr@2
   776
NONSHARABLE_CLASS(TLinkKeyV10)
williamr@2
   777
    {
williamr@2
   778
public:
williamr@2
   779
    TUint8 iLinkKey[KHCILinkKeySize]; /*!< The link key */
williamr@2
   780
    };
williamr@2
   781
williamr@2
   782
/**
williamr@2
   783
@publishedAll
williamr@2
   784
@released
williamr@2
   785
williamr@2
   786
Typedef'ed TPckgBuf of the class TLinkKeyV10.
williamr@2
   787
*/
williamr@2
   788
typedef TPckgBuf<TLinkKeyV10> TBTLinkKey;
williamr@2
   789
williamr@2
   790
/**
williamr@2
   791
The type of a link key with a remote device
williamr@2
   792
@publishedAll
williamr@2
   793
@released
williamr@2
   794
*/
williamr@2
   795
enum TBTLinkKeyType
williamr@2
   796
	{
williamr@2
   797
	ELinkKeyCombination,					/*!< this key has been generated with pairing with pre-v2.1 Bluetooth devices. */
williamr@2
   798
	ELinkKeyUnauthenticatedUpgradable,		/*!< this key hasn't yet been tried with MITM protection */
williamr@2
   799
	ELinkKeyUnauthenticatedNonUpgradable,	/*!< this key tried MITM protection; remote device incapable */
williamr@2
   800
	ELinkKeyAuthenticated,					/*!< this key authenticated with MITM protection */
williamr@2
   801
	ELinkKeyDebug							/*!< this key has been generated when in simple pairing debug mode */
williamr@2
   802
	};
williamr@2
   803
williamr@2
   804
/**
williamr@2
   805
@publishedAll
williamr@2
   806
@released
williamr@2
   807
williamr@2
   808
Bluetooth PIN Code structure.
williamr@2
   809
*/
williamr@2
   810
NONSHARABLE_CLASS(TPINCodeV10)
williamr@2
   811
    {
williamr@2
   812
public:
williamr@2
   813
	IMPORT_C TBool operator==(const TPINCodeV10& aTPINCodeV10) const;
williamr@2
   814
	
williamr@2
   815
public:
williamr@2
   816
    TUint8 iLength; /*!< The length of the pin key */
williamr@2
   817
    TUint8 iPIN[KHCIPINCodeSize]; /*!< The pin code */
williamr@2
   818
    };
williamr@2
   819
williamr@2
   820
/**
williamr@2
   821
@publishedAll
williamr@2
   822
@released
williamr@2
   823
williamr@2
   824
Typedef'ed TPckgBuf of the class TPINCodeV10.
williamr@2
   825
*/
williamr@2
   826
typedef TPckgBuf<TPINCodeV10> TBTPinCode;
williamr@2
   827
williamr@2
   828
/**
williamr@2
   829
The size of a simple pairing hash in bytes.
williamr@2
   830
@publishedPartner
williamr@2
   831
@released
williamr@2
   832
*/
williamr@2
   833
const TInt KBluetoothSimplePairingHashSize = 16;
williamr@2
   834
/**
williamr@2
   835
A representation of the simple pairing hash.
williamr@2
   836
@publishedPartner
williamr@2
   837
@released
williamr@2
   838
*/
williamr@2
   839
typedef TBuf8<KBluetoothSimplePairingHashSize> TBluetoothSimplePairingHash;
williamr@2
   840
williamr@2
   841
/**
williamr@2
   842
The size of a simple pairing hash in randomizer.
williamr@2
   843
@publishedPartner
williamr@2
   844
@released
williamr@2
   845
*/
williamr@2
   846
const TInt KBluetoothSimplePairingRandomizerSize = 16;
williamr@2
   847
/**
williamr@2
   848
A representation of the simple pairing randomizer.
williamr@2
   849
@publishedPartner
williamr@2
   850
@released
williamr@2
   851
*/
williamr@2
   852
typedef TBuf8<KBluetoothSimplePairingRandomizerSize> TBluetoothSimplePairingRandomizer;
williamr@2
   853
williamr@2
   854
/**
williamr@2
   855
Extended Inquiry Response Class
williamr@2
   856
This class takes a reference from inquiry result, which could hold both local name and Extended Inquiry Response. 
williamr@2
   857
It provides API to parse and return the local name and data for any Extended Inquiry Response tag.
williamr@2
   858
To get Device Name, Manufacturer Specific Data or Flags, firstly getting length of the data, 
williamr@2
   859
and then allocating a suitable buffer, which is where the data will be placed. 
williamr@2
   860
*/
williamr@2
   861
NONSHARABLE_CLASS(TBluetoothNameRecordWrapper)
williamr@2
   862
{
williamr@2
   863
public:
williamr@2
   864
	IMPORT_C explicit TBluetoothNameRecordWrapper(const TNameRecord& aNameRecord);
williamr@2
   865
	IMPORT_C TInt GetDeviceName(TDes16& aName, TBool& aIsComplete) const;
williamr@2
   866
	IMPORT_C TInt GetServiceClassUuids(RExtendedInquiryResponseUUIDContainer& aEIRContainer) const;
williamr@2
   867
	IMPORT_C TInt GetVendorSpecificData(TDes8& aDes) const;
williamr@2
   868
	IMPORT_C TInt GetTxPowerLevel(TInt8& aTxPowerLevel) const;
williamr@2
   869
	IMPORT_C TInt GetFlags(TDes8& aDes) const;
williamr@2
   870
	IMPORT_C TInt GetDeviceNameLength() const;
williamr@2
   871
	IMPORT_C TInt GetVendorSpecificDataLength() const;
williamr@2
   872
	IMPORT_C TInt GetFlagsLength() const;
williamr@2
   873
williamr@2
   874
private:
williamr@2
   875
	TInt AddUuids16(RExtendedInquiryResponseUUIDContainer& aEIRContainer, TPtrC8& aUuids) const;
williamr@2
   876
	TInt AddUuids128(RExtendedInquiryResponseUUIDContainer& aEIRContainer, TPtrC8& aUuids) const;
williamr@2
   877
private:
williamr@2
   878
	TExtendedInquiryResponseDataCodec iEirCodec;
williamr@2
   879
	
williamr@2
   880
	// This data padding has been added to help prevent future binary compatibility breaks	
williamr@2
   881
	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
williamr@2
   882
	TUint32		iPadding1;
williamr@2
   883
	TUint32		iPadding2;
williamr@2
   884
};
williamr@2
   885
williamr@2
   886
/**
williamr@2
   887
@publishedAll
williamr@2
   888
@released
williamr@2
   889
williamr@2
   890
Contains information resulting from a baseband notification.
williamr@2
   891
*/
williamr@2
   892
NONSHARABLE_CLASS(TBTBasebandEventNotification)
williamr@2
   893
	{
williamr@2
   894
public:
williamr@2
   895
	/** 
williamr@2
   896
	Constructor.
williamr@2
   897
	@param aEventType The type of event.
williamr@2
   898
	@param aErrorCode The error code.
williamr@2
   899
	*/
williamr@2
   900
	TBTBasebandEventNotification(TUint32 aEventType, TInt aErrorCode = KErrNone) : iEventType(aEventType), iErrorCode(aErrorCode) {};
williamr@2
   901
williamr@2
   902
	/**
williamr@2
   903
	Default constructor.
williamr@2
   904
	*/
williamr@2
   905
	TBTBasebandEventNotification() : iEventType(0), iErrorCode(KErrNone) {};
williamr@2
   906
williamr@2
   907
	/**
williamr@2
   908
	Copy constructor.
williamr@2
   909
	@param aEvent The event to copy.
williamr@2
   910
	*/
williamr@2
   911
	TBTBasebandEventNotification(const TBTBasebandEventNotification& aEvent) : iEventType(aEvent.iEventType), iErrorCode(aEvent.iErrorCode) {};
williamr@2
   912
williamr@2
   913
	/**
williamr@2
   914
	The event type.
williamr@2
   915
	@return The event type.
williamr@2
   916
	*/
williamr@2
   917
	TUint32 EventType() const	{ return iEventType; };
williamr@2
   918
williamr@2
   919
	/**
williamr@2
   920
	The Bluetooth SIG error code associated with the event.
williamr@2
   921
	@return The SIG error code.
williamr@2
   922
	*/
williamr@2
   923
	TInt ErrorCode() const		{ return iErrorCode; };
williamr@2
   924
williamr@2
   925
	/**
williamr@2
   926
	The Symbian HCI error code associated with the event.
williamr@2
   927
	@return The Symbian error code.
williamr@2
   928
	*/
williamr@2
   929
	IMPORT_C TInt SymbianErrorCode() const;
williamr@2
   930
williamr@2
   931
	/**
williamr@2
   932
	Set the event type.
williamr@2
   933
	@param aEventType The event type.
williamr@2
   934
	*/
williamr@2
   935
	void SetEventType(TUint32 aEventType)	{ iEventType = aEventType; };
williamr@2
   936
williamr@2
   937
	/**
williamr@2
   938
	Set the error code.
williamr@2
   939
	@param aErrorCode The Bluetooth SIG error code.
williamr@2
   940
	*/
williamr@2
   941
	void SetErrorCode(TInt aErrorCode)		{ iErrorCode = aErrorCode; };
williamr@2
   942
williamr@2
   943
private:
williamr@2
   944
	TUint32 iEventType;
williamr@2
   945
	TInt iErrorCode;
williamr@2
   946
	};
williamr@2
   947
williamr@2
   948
/**
williamr@2
   949
@publishedAll
williamr@2
   950
@released
williamr@2
   951
williamr@2
   952
Typedef'ed pckgbuf of the class TBTBasebandEventNotification.
williamr@2
   953
*/
williamr@2
   954
typedef TPckgBuf<TBTBasebandEventNotification> TBTBasebandEvent;
williamr@2
   955
williamr@2
   956
/**
williamr@2
   957
@publishedAll
williamr@2
   958
@released
williamr@2
   959
williamr@2
   960
General Unlimited Inquiry Access Code
williamr@2
   961
*/
williamr@2
   962
const TUint KGIAC=0x9e8b33;
williamr@2
   963
williamr@2
   964
/**
williamr@2
   965
@publishedAll
williamr@2
   966
@released
williamr@2
   967
williamr@2
   968
Limited Inquiry Access Code
williamr@2
   969
*/
williamr@2
   970
const TUint KLIAC=0x9e8b00;
williamr@2
   971
williamr@2
   972
williamr@2
   973
/**
williamr@2
   974
@publishedAll
williamr@2
   975
@released
williamr@2
   976
williamr@2
   977
API class for setting up an L2Cap configuration
williamr@2
   978
williamr@2
   979
This class may be used to set all or a subset of the following configuration items:
williamr@2
   980
Channel Reliability (and associated timer)
williamr@2
   981
Maximum Transmission Unit
williamr@2
   982
Maximum Receive Unit
williamr@2
   983
Channel Priority
williamr@2
   984
williamr@2
   985
If a configuration item is to be set, then its 'Set' or 'Setup'
williamr@2
   986
method should be called.
williamr@2
   987
williamr@2
   988
Once a TL2CapConfig object has been set up it should be sent using
williamr@2
   989
RSocket::SetOption or RSocket::Ioctl (or the CBluetoothSocket) equivalents.
williamr@2
   990
williamr@2
   991
@see RSocket
williamr@2
   992
@see CBluetoothSocket
williamr@2
   993
*/
williamr@2
   994
NONSHARABLE_CLASS(TL2CapConfig)
williamr@2
   995
	{
williamr@2
   996
public:
williamr@2
   997
	/**	
williamr@2
   998
	Priority required for data on L2Cap channel
williamr@2
   999
	*/
williamr@2
  1000
	enum TChannelPriority
williamr@2
  1001
		{
williamr@2
  1002
		EHigh		= 2,
williamr@2
  1003
		EMedium		= 1,
williamr@2
  1004
		ELow		= 0,
williamr@2
  1005
		};
williamr@2
  1006
williamr@2
  1007
	/**	
williamr@2
  1008
	Reliability of data tranfer required for L2Cap channel
williamr@2
  1009
	*/
williamr@2
  1010
	enum TChannelReliability
williamr@2
  1011
		{
williamr@2
  1012
		EReliableChannel,
williamr@2
  1013
		EUnreliableChannel,
williamr@2
  1014
		};	
williamr@2
  1015
williamr@2
  1016
	/**	
williamr@2
  1017
	Timer values in milliseconds for reliable and unreliable channels
williamr@2
  1018
	*/
williamr@2
  1019
	enum TL2CapConfigSpecifiedTimers
williamr@2
  1020
		{
williamr@2
  1021
		/**
williamr@2
  1022
		This is a time in milliseconds. However 0xffff has been given a special meaning 
williamr@2
  1023
		in this interface. It means	"Allow up 256 transmissions of a single packet before 
williamr@2
  1024
		giving up and disconnecting the L2Cap channel.". This is the maximum number of
williamr@2
  1025
		transmissions effectively allowed by the spec.
williamr@2
  1026
		*/
williamr@2
  1027
		EDefaultRetransmission = 0xffff,
williamr@2
  1028
		/**
williamr@2
  1029
		Minimum data obsolescence timeout required because data packets 
williamr@2
  1030
		will not ever be sent if we flush them too quickly.
williamr@2
  1031
		Speed of sending data depends on how many channels are open and channel priority.
williamr@2
  1032
		*/
williamr@2
  1033
		EMinDataObsolescenceTimeout = 0x0a,
williamr@2
  1034
		/**
williamr@2
  1035
		This is translated to mean never flush (as per spec).
williamr@2
  1036
		*/
williamr@2
  1037
		EDefaultDataObsolescenceTimeout = 0xffff, 
williamr@2
  1038
		};	
williamr@2
  1039
williamr@2
  1040
	/**	
williamr@2
  1041
	Used to indicate which config options have been specified by the user
williamr@2
  1042
	*/
williamr@2
  1043
	enum TL2CapConfigSpecifiedMask
williamr@2
  1044
		{
williamr@2
  1045
		ENoConfigElementsSpecified			= 0x0000,
williamr@2
  1046
		EMTUSizeSpecifiedMask				= 0x0001,
williamr@2
  1047
		EMRUSizeSpecifiedMask				= 0x0002,
williamr@2
  1048
		EReliabilitySpecifiedMask			= 0x0004,
williamr@2
  1049
		EPrioritySpecifiedMask				= 0x0008,
williamr@2
  1050
		};
williamr@2
  1051
		
williamr@2
  1052
	IMPORT_C TL2CapConfig();
williamr@2
  1053
williamr@2
  1054
	IMPORT_C TInt SetMaxTransmitUnitSize(TUint16 aSize = 0xffff);
williamr@2
  1055
	IMPORT_C TUint16 MaxTransmitUnitSize(TBool& aIsSpecified) const;
williamr@2
  1056
	IMPORT_C TInt SetMaxReceiveUnitSize(TUint16 aSize = 0xffff);
williamr@2
  1057
	IMPORT_C TUint16 MaxReceiveUnitSize(TBool& aIsSpecified) const;
williamr@2
  1058
williamr@2
  1059
	IMPORT_C TInt ConfigureReliableChannel(TUint16 aRetransmissionTimer);
williamr@2
  1060
	IMPORT_C TInt ConfigureUnreliableChannel(TUint16 aObsolescenceTimer);
williamr@2
  1061
	IMPORT_C TChannelReliability ChannelReliability(TBool& aIsSpecified, TUint16& aAssociatedTimer) const;
williamr@2
  1062
	
williamr@2
  1063
	IMPORT_C TInt ConfigureChannelPriority(TChannelPriority aPriority);
williamr@2
  1064
	IMPORT_C TChannelPriority ChannelPriority(TBool& aIsSpecified) const;
williamr@2
  1065
	
williamr@2
  1066
	/**
williamr@2
  1067
	@deprecated
williamr@2
  1068
	Use ConfigureReliableChannel(TUint16 aRetransmissionTimer) instead
williamr@2
  1069
	*/
williamr@2
  1070
	IMPORT_C TInt SetupReliableChannel(TUint16 aRetransmissionTimer = EDefaultRetransmission);
williamr@2
  1071
	/**
williamr@2
  1072
	@deprecated
williamr@2
  1073
	Use ConfigureUnreliableChannel(TUint16 aObsolescenceTimer) instead
williamr@2
  1074
	*/
williamr@2
  1075
	IMPORT_C TInt SetupUnreliableChannel(TUint16 aObsolescenceTimer = EDefaultDataObsolescenceTimeout);
williamr@2
  1076
	/**
williamr@2
  1077
	@deprecated
williamr@2
  1078
	Use ConfigureChannelPriority(TChannelPriority aPriority) instead
williamr@2
  1079
	*/
williamr@2
  1080
	IMPORT_C TInt SetChannelPriority(TChannelPriority aPriority = ELow);
williamr@2
  1081
		
williamr@2
  1082
private:
williamr@2
  1083
	TUint16 iMTUSize;
williamr@2
  1084
	TUint16 iMRUSize;
williamr@2
  1085
	TChannelReliability iChannelReliability;
williamr@2
  1086
	TUint16	iChannelReliabilityTimer;
williamr@2
  1087
	TChannelPriority iChannelPriority;
williamr@2
  1088
	TUint16 iSpecifiedMask;
williamr@2
  1089
williamr@2
  1090
	// This data padding has been added to help prevent future binary compatibility breaks
williamr@2
  1091
	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used	
williamr@2
  1092
	TUint32     iPadding1; 
williamr@2
  1093
	TUint32     iPadding2; 
williamr@2
  1094
	};
williamr@2
  1095
williamr@2
  1096
/**
williamr@2
  1097
@publishedAll
williamr@2
  1098
@released
williamr@2
  1099
williamr@2
  1100
Typedef to represent a L2CAP Config object.
williamr@2
  1101
*/
williamr@2
  1102
typedef TPckgBuf<TL2CapConfig> TL2CapConfigPkg;
williamr@2
  1103
williamr@2
  1104
williamr@2
  1105
enum TEirWrapperPanics
williamr@2
  1106
	{
williamr@2
  1107
	EEirBadUuid16List = 0,
williamr@2
  1108
	EEirBadUuid128List = 1,
williamr@2
  1109
	};
williamr@2
  1110
_LIT(KEirWrapperPanicName, "ExtendedInquiryResponseWrapper");
williamr@2
  1111
williamr@2
  1112
#endif	//_BTTYPES_H