diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/bttypes.h --- a/epoc32/include/bttypes.h Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/bttypes.h Wed Mar 31 12:33:34 2010 +0100 @@ -1,9 +1,9 @@ // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// 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 +// under the terms of "Eclipse Public License v1.0" // which accompanies this distribution, and is available -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// at the URL "http://www.eclipse.org/legal/epl-v10.html". // // Initial Contributors: // Nokia Corporation - initial contribution. @@ -18,6 +18,10 @@ #ifndef _BTTYPES_H #define _BTTYPES_H +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + #include #include @@ -167,6 +171,7 @@ */ static const TInt KSCOvsSyncHVOffset = 5; + /** @publishedAll @released @@ -209,8 +214,8 @@ // This data padding has been added to help prevent future binary compatibility breaks // Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used - TUint32 iPadding1; - TUint32 iPadding2; + TUint32 iPadding1; + TUint32 iPadding2; }; @@ -245,217 +250,6 @@ static const TUint32 KESCOBandwidthDontCare = KMaxTUint32; /** -@internalTechnology - -Bit positions of the individual local and remote features. -@see TBTFeatures -*/ -enum TBTSupportedFeaturesBits - { - ESupportedThreeSlotPacketsBit = 0, /*!< Three slot packets are supported */ - ESupportedFiveSlotPacketsBit = 1, /*!< Five slot packets are supported */ - ESupportedEncryptionBit = 2, /*!< Encryption is supported */ - ESupportedSlotOffsetBit = 3, /*!< Slot offset is supported */ - ESupportedTimingAccuracyBit = 4, /*!< Timing accuracy is supported */ - ESupportedSwitchBit = 5, /*!< Role switch is supported */ - ESupportedHoldModeBit = 6, /*!< Hold mode is supported */ - ESupportedSniffModeBit = 7, /*!< Sniff mode is supported */ - ESupportedParkModeBit = 8, /*!< Park mode is supported */ - ESupportedRSSIBit = 9, /*!< Receive signal strength indication is supported */ - ESupportedChannelQualityDrivenDataRateBit = 10, /*!< Channel quality driven data rate is supported */ - ESupportedSCOLinkBit = 11, /*!< SCO links are supported */ - ESupportedHV2PacketsBit = 12, /*!< HV2 packets are supported */ - ESupportedHV3PacketsBit = 13, /*!< HV3 packets are supported */ - ESupportedu_lawLogBit = 14, /*!< SCO u-law encoding is supported */ - ESupportedA_lawLogBit = 15, /*!< SCO A-law encoding is supported */ - ESupportedCVSDBit = 16, /*!< SCO Continuously variable slope delta modulation is supported */ - ESupportedPagingSchemeBit = 17, /*!< Paging scheme is supported */ - ESupportedPowerControlBit = 18, /*!< Power control is supported */ - ESupportedTransparentSCODataBit = 19, /*!< Transparent SCO data is supported */ - ESupportedFlowControlLagBit0Bit = 20, /*!< Flow control lag bit 0 is supported */ - ESupportedFlowControlLagBit1Bit = 21, /*!< Flow control lag bit 1 is supported */ - ESupportedFlowControlLagBit2Bit = 22, /*!< Flow control lag bit 2 is supported */ - ESupportedBroadcastEncryptionBit = 23, /*!< Broadcast encryption is supported */ - - EEDR_ACL_2MbpsModeBit = 25, /*!< 2Mbps EDR ACL supported */ - EEDR_ACL_3MbpsModeBit = 26, /*!< 3Mbps EDR ACL supported */ - ESupportedEnhancedEnquiryScanBit = 27, /*!< Enhanced enquiry scan is supported */ - ESupportedInterlacedEnquiryScanBit = 28, /*!< Interlaced enquiry scan is supported */ - ESupportedInterlacedPageScanBit = 29, /*!< Interlaced page scan is supported */ - ESupportedRSSIWithInquiryResultsBit = 30, /*!< Read signal strength indication with inquiry is supported */ - ESupportedExtendedSCOLinkBit = 31, /*!< Extended SCO links are supported */ - ESupportedEV4PacketsBit = 32, /*!< EV4 packets are supported */ - ESupportedEV5PacketsBit = 33, /*!< EV5 packets are supported */ - - ESupportedAFHCapableSlaveBit = 35, /*!< Adaptive frequency hopping in slave role is supported */ - ESupportedAFHClassificationSlaveBit = 36, /*!< Adaptive frequency hopping classification in slave role is supported */ - - ESupportedEDRThreeSlotPacketsBit = 39, /*!< Three slot EDR packets are supported */ - ESupportedEDRFiveSlotPacketsBit = 40, /*!< Five slot EDR packets are supported */ - ESupportedSniffSubratingBit = 41, /*!< Sniff subrating is supported */ - ESupportedEncryptionPauseResumeBit = 42, /*!< Encryption Pause and Resume is supported */ - ESupportedAFHCapableMasterBit = 43, /*!< Adaptive frequency hopping in master role is supported */ - ESupportedAFHClassificationMasterBit = 44, /*!< Adaptive frequency hopping classification in master role is supported */ - EEDR_eSCO_2MbpsModeBit = 45, /*!< 2Mbps EDR eSCO supported */ - EEDR_eSCO_3MbpsModeBit = 46, /*!< 3Mbps EDR eSCO supported */ - ESupportedEDReSCOThreeSlotPacketsBit = 47, /*!< Three slot EDR eSCO packets are supported */ - ESupportedExtendedInquiryResponseBit = 48, /*!< Extended Inquiry Response */ - - ESupportedSecureSimplePairingBit = 51, /*!< Secure Simple Pairing */ - ESupportedEncapsulatedPDUBit = 52, /*!< Encapsulated PDU */ - ESupportedErroneousDataReportingBit = 53, /*!< Erroneous Data Reporting */ - ESupportedNonflushablePacketBoundaryFlagBit = 54, /*!< Non-flushable Packet Boundary Flag */ - - ESupportedLinkSupervisionTimeoutChangedEventBit = 56, /*!< Link Supervision Timeout Changed Event */ - ESupportedInquiryResponseTXPowerLevelBit = 57, /*!< Inquiry Response TX Power Level */ - - ESupportedExtendedFeaturesBit = 63, /*!< Additional features are supported */ - }; - -/** -@internalTechnology - -Bit positions of the individual local supported HCI commands. -@see TBluetoothHciCommands -*/ -enum TBluetoothSupportedCommandsBits - { - ESupportedInquiryCommand = 0, /*!< Inquiry command is supported */ - ESupportedInquiryCancelCommand = 1, /*!< Inquiry Cancel command is supported */ - ESupportedPeriodicInquiryModeCommand = 2, /*!< Periodic Inquiry Mode command is supported */ - ESupportedExitPeriodicInquiryModeCommand = 3, /*!< Exit Periodic Inquiry Mode command is supported */ - ESupportedCreateConnectionCommand = 4, /*!< Create Connection command is supported */ - ESupportedDisconnectCommand = 5, /*!< Disconnect command is supported */ - ESupportedAddSCOConnectionCommand = 6, /*!< Add SCO Connection command is supported */ - ESupportedCancelCreateConnectionCommand = 7, /*!< Cancel Create Connection command is supported */ - ESupportedAcceptConnectionRequestCommand = 8, /*!< Accept Connection Request command is supported */ - ESupportedRejectConnectionRequestCommand = 9, /*!< Reject Connection Request command is supported */ - ESupportedLinkKeyRequestReplyCommand = 10, /*!< Link Key Request Reply command is supported */ - ESupportedLinkKeyRequestNegativeReplyCommand = 11, /*!< Link Key Request Negative Reply command is supported */ - ESupportedPINCodeRequestReplyCommand = 12, /*!< PIN Code Request Reply command is supported */ - ESupportedPINCodeRequestNegativeReplyCommand = 13, /*!< PIN Code Request Negative Reply command is supported */ - ESupportedChangeConnectionPacketTypeCommand = 14, /*!< Change Connection Packet Type command is supported */ - ESupportedAuthenticationRequestCommand = 15, /*!< Authentication Request command is supported */ - ESupportedSetConnectionEncryptionCommand = 16, /*!< Set Connection Encryption command is supported */ - ESupportedChangeConnectionLinkKeyCommand = 17, /*!< Change Connection Link Key command is supported */ - ESupportedMasterLinkKeyCommand = 18, /*!< Master Link Key command is supported */ - ESupportedRemoteNameRequestCommand = 19, /*!< Remote Name Request command is supported */ - ESupportedCancelRemoteNameRequestCommand = 20, /*!< Cancel Remote Name Request command is supported */ - ESupportedReadRemoteSupportedFeaturesCommand = 21, /*!< Read Remote Supported Features command is supported */ - ESupportedReadRemoteExtendedFeaturesCommand = 22, /*!< Read Remote Extended Features command is supported */ - ESupportedReadRemoteVersionInformationCommand = 23, /*!< Read Remote Version Information command is supported */ - ESupportedReadClockOffsetCommand = 24, /*!< Read Clock Offset command is supported */ - ESupportedReadLMPHandleCommand = 25, /*!< Read LMP Handle command is supported */ - ESupportedHoldModeCommand = 33, /*!< Hold Mode command is supported */ - ESupportedSniffModeCommand = 34, /*!< Sniff Mode command is supported */ - ESupportedExitSniffModeCommand = 35, /*!< Exit Sniff Mode command is supported */ - ESupportedParkStateCommand = 36, /*!< Park State command is supported */ - ESupportedExitParkStateCommand = 37, /*!< Exit Park State command is supported */ - ESupportedQoSSetupCommand = 38, /*!< QoS Setup command is supported */ - ESupportedRoleDiscoveryCommand = 39, /*!< Role Discovery command is supported */ - ESupportedSwitchRoleCommand = 40, /*!< Switch Role command is supported */ - ESupportedReadLinkPolicySettingsCommand = 41, /*!< Read Link Policy Settings command is supported */ - ESupportedWriteLinkPolicySettingsCommand = 42, /*!< Write Link Policy Settings command is supported */ - ESupportedReadDefaultLinkPolicySettingsCommand = 43, /*!< Read Default Link Policy Settings command is supported */ - ESupportedWriteDefaultLinkPolicySettingsCommand = 44, /*!< Write Default Link Policy Settings command is supported */ - ESupportedFlowSpecificationCommand = 45, /*!< Flow Specification command is supported */ - ESupportedSetEventMarkCommand = 46, /*!< Set Event Mark command is supported */ - ESupportedResetCommand = 47, /*!< Reset command is supported */ - ESupportedSetEventFilterCommand = 48, /*!< Set Event Filter command is supported */ - ESupportedFlushCommand = 49, /*!< Flush command is supported */ - ESupportedReadPINTypeCommand = 50, /*!< Read PIN Type command is supported */ - ESupportedWritePINTypeCommand = 51, /*!< Write PIN Type command is supported */ - ESupportedCreateNewUnitKeyCommand = 52, /*!< Create New Unit Key command is supported */ - ESupportedReadStoredLinkKeyCommand = 53, /*!< Read Stored Link Key command is supported */ - ESupportedWriteStoredLinkKeyCommand = 54, /*!< Write Stored Link Key command is supported */ - ESupportedDeleteStoredLinkKeyCommand = 55, /*!< Delete Stored Link Key command is supported */ - ESupportedWriteLocalNameCommand = 56, /*!< Write Local Name command is supported */ - ESupportedReadLocalNameCommand = 57, /*!< Read Local Name command is supported */ - ESupportedReadConnectionAcceptTimeoutCommand = 58, /*!< Read Connection Accept Timeout command is supported */ - ESupportedWriteConnectionAcceptTimeoutCommand = 59, /*!< Write Connection Accept Timeout command is supported */ - ESupportedReadPageTimeoutCommand = 60, /*!< Read Page Timeout command is supported */ - ESupportedWritePageTimeoutCommand = 61, /*!< Write Page Timeout command is supported */ - ESupportedReadScanEnableCommand = 62, /*!< Read Scan Enable command is supported */ - ESupportedWriteScanEnableCommand = 63, /*!< Write Scan Enable command is supported */ - ESupportedReadPageScanActivityCommand = 64, /*!< Read Page Scan Activity command is supported */ - ESupportedWritePageScanActivityCommand = 65, /*!< Write Page Scan Activity command is supported */ - ESupportedReadInquiryScanActivityCommand = 66, /*!< Read Inquiry Scan Activity command is supported */ - ESupportedWriteInquiryScanActivityCommand = 67, /*!< Write Inquiry Scan Activity command is supported */ - ESupportedReadClassOfDeviceCommand = 72, /*!< Read Class Of Device command is supported */ - ESupportedWriteClassOfDeviceCommand = 73, /*!< Write Class Of Device command is supported */ - ESupportedReadVoiceSettingCommand = 74, /*!< Read Voice Setting command is supported */ - ESupportedWriteVoiceSettingCommand = 75, /*!< Write Voice Setting command is supported */ - ESupportedReadAutomaticFlushTimeoutCommand = 76, /*!< Read Automatic Flush Timeout command is supported */ - ESupportedWriteAutomaticFlushTimeoutCommand = 77, /*!< Write Automatic Flush Timeout command is supported */ - ESupportedReadNumBroadcastRetransmissionsCommand = 78, /*!< Read Num Broadcast Retransmissions command is supported */ - ESupportedWriteNumBroadcastRetransmissionsCommand = 79, /*!< Write Num Broadcast Retransmissions command is supported */ - ESupportedReadHoldModeActivityCommand = 80, /*!< Read Hold Mode Activity command is supported */ - ESupportedWriteHoldModeActivityCommand = 81, /*!< Write Hold Mode Activity command is supported */ - ESupportedReadTransmitPowerLevelCommand = 82, /*!< Read Transmit Power Level command is supported */ - ESupportedReadSynchronousFlowControlEnableCommand = 83, /*!< Read Synchronous Flow Control Enable command is supported */ - ESupportedWriteSynchronousFlowControlEnableCommand = 84, /*!< Write Synchronous Flow Control Enable command is supported */ - ESupportedSetHostControllerToHostFlowControlCommand = 85, /*!< Set Host Controller To Host Flow Control command is supported */ - ESupportedHostBufferSizeCommand = 86, /*!< Host Buffer Size command is supported */ - ESupportedHostNumberOfCompletedPacketsCommand = 87, /*!< Host Number Of Completed Packets command is supported */ - ESupportedReadLinkSupervisionTimeoutCommand = 88, /*!< Read Link Supervision Timeout command is supported */ - ESupportedWriteLinkSupervisionTimeoutCommand = 89, /*!< Write Link Supervision Timeout command is supported */ - ESupportedReadNumberofSupportedIACCommand = 90, /*!< Read Number of Supported IAC command is supported */ - ESupportedReadCurrentIACLAPCommand = 91, /*!< Read Current IAC LAP command is supported */ - ESupportedWriteCurrentIACLAPCommand = 92, /*!< Write Current IAC LAP command is supported */ - ESupportedReadPageScanModeCommand = 95, /*!< Read Page Scan Mode command is supported */ - ESupportedWritePageScanModeCommand = 96, /*!< Write Page Scan Mode command is supported */ - ESupportedSetAFHChannelClassificationCommand = 97, /*!< Set AFH Channel Classification command is supported */ - ESupportedReadInquiryScanTypeCommand = 100, /*!< Read Inquiry Scan Type command is supported */ - ESupportedWriteInquiryScanTypeCommand = 101, /*!< Write Inquiry Scan Type command is supported */ - ESupportedReadInquiryModeCommand = 102, /*!< Read Inquiry Mode command is supported */ - ESupportedWriteInquiryModeCommand = 103, /*!< Write Inquiry Mode command is supported */ - ESupportedReadPageScanTypeCommand = 104, /*!< Read Page Scan Type command is supported */ - ESupportedWritePageScanTypeCommand = 105, /*!< Write Page Scan Type command is supported */ - ESupportedReadAFHChannelAssessmentModeCommand = 106, /*!< Read AFH Channel Assessment Mode command is supported */ - ESupportedWriteAFHChannelAssessmentModeCommand = 107, /*!< Write AFH Channel Assessment Mode command is supported */ - ESupportedReadLocalVersionInformationCommand = 115, /*!< Read Local Version Information command is supported */ - ESupportedReadLocalSupportedFeaturesCommand = 117, /*!< Read Local Supported Features command is supported */ - ESupportedReadLocalExtendedFeaturesCommand = 118, /*!< Read Local Extended Features command is supported */ - ESupportedReadBufferSizeCommand = 119, /*!< Read Buffer Size command is supported */ - ESupportedReadCountryCodeCommand = 120, /*!< Read Country Code [Deprecated] command is supported */ - ESupportedReadBDADDRCommand = 121, /*!< Read BD ADDR command is supported */ - ESupportedReadFailedContactCountCommand = 122, /*!< Read Failed Contact Count command is supported */ - ESupportedResetFailedContactCountCommand = 123, /*!< Reset Failed Contact Count command is supported */ - ESupportedGetLinkQualityCommand = 124, /*!< Get Link Quality command is supported */ - ESupportedReadRSSICommand = 125, /*!< Read RSSI command is supported */ - ESupportedReadAFHChannelMapCommand = 126, /*!< Read AFH Channel Map command is supported */ - ESupportedReadBDClockCommand = 127, /*!< Read BD Clock command is supported */ - ESupportedReadLoopbackModeCommand = 128, /*!< Read Loopback Mode command is supported */ - ESupportedWriteLoopbackModeCommand = 129, /*!< Write Loopback Mode command is supported */ - ESupportedEnableDeviceUnderTestModeCommand = 130, /*!< Enable Device Under Test Mode command is supported */ - ESupportedSetupSynchronousConnectionCommand = 131, /*!< Setup Synchronous Connection command is supported */ - ESupportedAcceptSynchronousConnectionCommand = 132, /*!< Accept Synchronous Connection command is supported */ - ESupportedRejectSynchronousConnectionCommand = 133, /*!< Reject Synchronous Connection command is supported */ - ESupportedReadExtendedInquiryResponseCommand = 136, /*!< Read Extended Inquiry Response command is supported */ - ESupportedWriteExtendedInquiryResponseCommand = 137, /*!< Write Extended Inquiry Response command is supported */ - ESupportedRefreshEncryptionKeyCommand = 138, /*!< Refresh Encryption Key command is supported */ - ESupportedSniffSubratingCommand = 140, /*!< Sniff Subrating command is supported */ - ESupportedReadSimplePairingModeCommand = 141, /*!< Read Simple Pairing Mode command is supported */ - ESupportedWriteSimplePairingModeCommand = 142, /*!< Write Simple Pairing Mode command is supported */ - ESupportedReadLocalOOBDataCommand = 143, /*!< Read Local OOB Data command is supported */ - ESupportedReadInquiryResponseTransmitPowerCommand = 144, /*!< Read Inquiry Response Transmit Power command is supported */ - ESupportedWriteInquiryTransmitPowerLevelCommand = 145, /*!< Write Inquiry Transmit Power Level command is supported */ - ESupportedReadDefaultErroneousDataReportingCommand = 146, /*!< Read Default Erroneous Data Reporting command is supported */ - ESupportedWriteDefaultErroneousDataReportingCommand = 147, /*!< Write Default Erroneous Data Reporting command is supported */ - ESupportedIOCapabilityRequestReplyCommand = 151, /*!< IO Capability Request Reply command is supported */ - ESupportedUserConfirmationRequestReplyCommand = 152, /*!< User Confirmation Request Reply command is supported */ - ESupportedUserConfirmationRequestNegativeReplyCommand = 153, /*!< User Confirmation Request Negative Reply command is supported */ - ESupportedUserPasskeyRequestReplyCommand = 154, /*!< User Passkey Request Reply command is supported */ - ESupportedUserPasskeyRequestNegativeReplyCommand = 155, /*!< User Passkey Request Negative Reply command is supported */ - ESupportedRemoteOOBDataRequestReplyCommand = 156, /*!< Remote OOB Data Request Reply command is supported */ - ESupportedWriteSimplePairingDebugModeCommand = 157, /*!< Write Simple Pairing Debug Mode command is supported */ - ESupportedEnhancedFlushCommand = 158, /*!< Enhanced Flush command is supported */ - ESupportedRemoteOOBDataRequestNegativeReplyCommand = 159, /*!< Remote OOB Data Request Negative Reply command is supported */ - ESupportedSendKeypressNotificationCommand = 162, /*!< Send Keypress Notification command is supported */ - ESupportedIOCapabilitiesResponseNegativeReplyCommand = 163, /*!< IO Capabilities Response Negative Reply command is supported */ - }; - -/** @publishedAll @released @@ -549,21 +343,22 @@ ENotifySynchronousLinkDown = 0x02000000, /*!< Synchronous Link Down */ ENotifySynchronousLinkError = 0x04000000, /*!< Synchronous Link Error */ + /** - @deprecated This has been superseded by ENotifySynchronousLinkUp - @see ENotifySynchronousLinkUp - */ - ENotifySCOLinkUp = ENotifySynchronousLinkUp, - /** - @deprecated This has been superseded by ENotifySynchronousLinkDown - @see ENotifySynchronousLinkDown - */ - ENotifySCOLinkDown = ENotifySynchronousLinkDown, - /** - @deprecated This has been superseded by ENotifySynchronousLinkError - @see ENotifySynchronousLinkError - */ - ENotifySCOLinkError = ENotifySynchronousLinkError + @deprecated This has been superseded by ENotifySynchronousLinkUp + @see ENotifySynchronousLinkUp + */ + ENotifySCOLinkUp = ENotifySynchronousLinkUp, + /** + @deprecated This has been superseded by ENotifySynchronousLinkDown + @see ENotifySynchronousLinkDown + */ + ENotifySCOLinkDown = ENotifySynchronousLinkDown, + /** + @deprecated This has been superseded by ENotifySynchronousLinkError + @see ENotifySynchronousLinkError + */ + ENotifySCOLinkError = ENotifySynchronousLinkError }; @@ -622,13 +417,13 @@ as the addresses would naturally be written down on paper. **/ NONSHARABLE_CLASS(TBTDevAddr) - { + { public: - IMPORT_C TBTDevAddr(); - IMPORT_C TBTDevAddr(const TInt64 &aInt); - IMPORT_C TBTDevAddr(const TDesC8 &aDes); - IMPORT_C TBool operator==(const TBTDevAddr& aAddr) const; - IMPORT_C TBool operator!=(const TBTDevAddr& aAddr) const; + IMPORT_C TBTDevAddr(); + IMPORT_C TBTDevAddr(const TInt64 &aInt); + IMPORT_C TBTDevAddr(const TDesC8 &aDes); + IMPORT_C TBool operator==(const TBTDevAddr& aAddr) const; + IMPORT_C TBool operator!=(const TBTDevAddr& aAddr) const; IMPORT_C const TUint8 &operator[](TInt aIndex) const; IMPORT_C TUint8 &operator[](TInt aIndex); IMPORT_C void Reset(); @@ -637,15 +432,20 @@ IMPORT_C TInt SetReadable(const TDesC& aSource); IMPORT_C void GetReadable(TDes& aDest) const; IMPORT_C void GetReadable(TDes& aDest, const TDesC& aPrepend, const TDesC& aByteSeperator, const TDesC& aAppend) const; - IMPORT_C TBool operator<=(const TBTDevAddr& aAddr) const; + IMPORT_C TBool operator<=(const TBTDevAddr& aAddr) const; private: TFixedArray iAddr; // This data padding has been added to help prevent future binary compatibility breaks // iPadding hasn't been zero'd because it is currently not used - TUint16 iPadding; + TUint16 iPadding; }; +/** Array of device addresses +@see Enumerate method +*/ +typedef RArray RBTDevAddrArray; + /** @publishedAll @released @@ -675,8 +475,8 @@ */ IMPORT_C const TPtrC8 FixedLengthL(TInt aLength) const; IMPORT_C TInt MinimumSize() const; - IMPORT_C TBool operator==(const TUUID& aUUID) const; - IMPORT_C TBool operator!=(const TUUID& aUUID) const; + IMPORT_C TBool operator==(const TUUID& aUUID) const; + IMPORT_C TBool operator!=(const TUUID& aUUID) const; IMPORT_C const TUint8 &operator[](TInt aIndex) const; IMPORT_C TUint8 &operator[](TInt aIndex); IMPORT_C const TPtrC8 SpecifiedLengthL(TInt aLength) const; @@ -774,10 +574,10 @@ Link key structure. */ NONSHARABLE_CLASS(TLinkKeyV10) - { + { public: - TUint8 iLinkKey[KHCILinkKeySize]; /*!< The link key */ - }; + TUint8 iLinkKey[KHCILinkKeySize]; /*!< The link key */ + }; /** @publishedAll @@ -808,14 +608,14 @@ Bluetooth PIN Code structure. */ NONSHARABLE_CLASS(TPINCodeV10) - { + { public: IMPORT_C TBool operator==(const TPINCodeV10& aTPINCodeV10) const; public: - TUint8 iLength; /*!< The length of the pin key */ - TUint8 iPIN[KHCIPINCodeSize]; /*!< The pin code */ - }; + TUint8 iLength; /*!< The length of the pin key */ + TUint8 iPIN[KHCIPINCodeSize]; /*!< The pin code */ + }; /** @publishedAll @@ -825,31 +625,6 @@ */ typedef TPckgBuf TBTPinCode; -/** -The size of a simple pairing hash in bytes. -@publishedPartner -@released -*/ -const TInt KBluetoothSimplePairingHashSize = 16; -/** -A representation of the simple pairing hash. -@publishedPartner -@released -*/ -typedef TBuf8 TBluetoothSimplePairingHash; - -/** -The size of a simple pairing hash in randomizer. -@publishedPartner -@released -*/ -const TInt KBluetoothSimplePairingRandomizerSize = 16; -/** -A representation of the simple pairing randomizer. -@publishedPartner -@released -*/ -typedef TBuf8 TBluetoothSimplePairingRandomizer; /** Extended Inquiry Response Class @@ -969,24 +744,53 @@ */ const TUint KLIAC=0x9e8b00; +/** +L2CAP channel modes +@publishedAll +@released +*/ +enum TL2CapChannelMode + { + EL2CAPBasicMode = 0x00, + EL2CAPRetransmissionMode = 0x01, + EL2CAPFlowControlMode = 0x02, + EL2CAPEnhancedRetransmissionMode = 0x03, + EL2CAPStreamingMode = 0x04, + }; /** @publishedAll @released -API class for setting up an L2Cap configuration +API class for setting up an L2Cap channel configuration. -This class may be used to set all or a subset of the following configuration items: +This class may be used to set all or a subset of the following configuration +items: Channel Reliability (and associated timer) -Maximum Transmission Unit -Maximum Receive Unit +Maximum Transmission Unit (MTU) value preferred during MTU negotiation +Maximum Receive Unit (MRU) value preferred during MRU negotiation +Minimum MTU value acceptable during MTU negotiation +Minimum MRU value acceptable during MRU negotiation Channel Priority -If a configuration item is to be set, then its 'Set' or 'Setup' +If a configuration item is to be set, then its 'Set' or 'Configure' method should be called. -Once a TL2CapConfig object has been set up it should be sent using -RSocket::SetOption or RSocket::Ioctl (or the CBluetoothSocket) equivalents. +Once a TL2CapConfig object has been set up it can be used to configure a socket +using RSocket::SetOption or RSocket::Ioctl (or the CBluetoothSocket equivalents). + +If the preferred Maximum Transmission Unit (MTU) value is specified but its +minimum acceptable value is not specified in the same object, then the minimum +acceptable value will be implicitly taken to be equal to the preferred MTU by +the L2CAP APIs processing the object. This means that only an MTU greater than or +equal to the preferred MTU will be accepted from the peer during negotiation. + +If the Maximum Receive Unit (MRU) value is specified but its minimum acceptable +value is not, then the minimum acceptable value is implicitly taken to be equal +to the protocol minimum (48 bytes) by the L2CAP APIs processing the object. + +Note that even though this API allows setting of Obsolescence timer, outgoing +packet flushing may not be supported on all hardware. @see RSocket @see CBluetoothSocket @@ -1005,12 +809,13 @@ }; /** - Reliability of data tranfer required for L2Cap channel + Reliability of data transfer preferred for L2Cap channel. */ enum TChannelReliability { EReliableChannel, EUnreliableChannel, + EUnreliableDesiredChannel }; /** @@ -1019,16 +824,20 @@ enum TL2CapConfigSpecifiedTimers { /** - This is a time in milliseconds. However 0xffff has been given a special meaning - in this interface. It means "Allow up 256 transmissions of a single packet before - giving up and disconnecting the L2Cap channel.". This is the maximum number of - transmissions effectively allowed by the spec. + This is a time in milliseconds. However 0xffff has been given a special + meaning in this interface. It means "Allow maximum possible number of + transmissions of a single packet before giving up and disconnecting the + L2Cap channel." This is the maximum number of transmissions effectively + allowed by the spec. It only applies to reliable modes and is 255 for + Retransmission Mode and Infinity for Enhanced Retransmission Mode. */ EDefaultRetransmission = 0xffff, /** Minimum data obsolescence timeout required because data packets will not ever be sent if we flush them too quickly. Speed of sending data depends on how many channels are open and channel priority. + Note that flushing of outgoing packets may not be implemented on all Symbian OS + platforms. */ EMinDataObsolescenceTimeout = 0x0a, /** @@ -1047,6 +856,9 @@ EMRUSizeSpecifiedMask = 0x0002, EReliabilitySpecifiedMask = 0x0004, EPrioritySpecifiedMask = 0x0008, + EMinMTUSizeSpecifiedMask = 0x0010, + EMinMRUSizeSpecifiedMask = 0x0020, + ELegacyModesDisallowedSpecifiedMask = 0x0040 }; IMPORT_C TL2CapConfig(); @@ -1055,14 +867,28 @@ IMPORT_C TUint16 MaxTransmitUnitSize(TBool& aIsSpecified) const; IMPORT_C TInt SetMaxReceiveUnitSize(TUint16 aSize = 0xffff); IMPORT_C TUint16 MaxReceiveUnitSize(TBool& aIsSpecified) const; + + IMPORT_C TInt SetMinMTU(TUint16 aSize); + IMPORT_C TUint16 MinMTU(TBool& aIsSpecified) const; + + IMPORT_C TInt SetMinMRU(TUint16 aSize); + IMPORT_C TUint16 MinMRU(TBool& aIsSpecified) const; IMPORT_C TInt ConfigureReliableChannel(TUint16 aRetransmissionTimer); IMPORT_C TInt ConfigureUnreliableChannel(TUint16 aObsolescenceTimer); + IMPORT_C TInt ConfigureUnreliableDesiredChannel(TUint16 aObsolescenceTimer, TUint16 aRetransmissionTimer); + IMPORT_C void SetLegacyModesDisallowed(TBool aDisallowed); + IMPORT_C TBool LegacyModesDisallowed() const; + IMPORT_C TChannelReliability ChannelReliability(TBool& aIsSpecified, TUint16& aAssociatedTimer) const; + + IMPORT_C TChannelReliability ChannelReliability(TBool& aIsSpecified) const; + IMPORT_C TUint16 RetransmissionTimer(TBool& aIsSpecified) const; + IMPORT_C TUint16 ObsolescenceTimer(TBool& aIsSpecified) const; IMPORT_C TInt ConfigureChannelPriority(TChannelPriority aPriority); IMPORT_C TChannelPriority ChannelPriority(TBool& aIsSpecified) const; - + /** @deprecated Use ConfigureReliableChannel(TUint16 aRetransmissionTimer) instead @@ -1078,19 +904,27 @@ Use ConfigureChannelPriority(TChannelPriority aPriority) instead */ IMPORT_C TInt SetChannelPriority(TChannelPriority aPriority = ELow); - + private: - TUint16 iMTUSize; - TUint16 iMRUSize; - TChannelReliability iChannelReliability; - TUint16 iChannelReliabilityTimer; - TChannelPriority iChannelPriority; - TUint16 iSpecifiedMask; + TUint16 iMTUSize; + TUint16 iMRUSize; + TChannelReliability iChannelReliability; + TUint16 iChannelReliabilityTimer; // see note below + TChannelPriority iChannelPriority; + TUint16 iSpecifiedMask; + TUint16 iMinMTUSize; // Minimum acceptable MTU. + TUint16 iMinMRUSize; // Minimum acceptable MRU. + TUint16 iAdditionalChannelReliabilityTimer; // see note below + // This data padding has been added to help prevent future binary compatibility breaks. + TUint16 iPadding; - // This data padding has been added to help prevent future binary compatibility breaks - // Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used - TUint32 iPadding1; - TUint32 iPadding2; + // Note on the timer fields: + // iAdditionalChannelReliabilityTimer has been added when a need to pass two timers within + // one object arose. To maintain BC with existing clients of this class, when a single timer + // is passed, it's always stored in iChannelReliabilityTimer. Changing this to just having + // iRetransmissionTimer & iObsolescenceTimer would break BC. + // When both timers are stored, Flush timeout goes in iChannelReliabilityTimer and + // Retransmission timeout goes in iAdditionalChannelReliabilityTimer. }; /**