{******************************************************************************} { } { BlueTooth API interface Unit for Object Pascal } { } { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } { Corporation. All Rights Reserved. } { } { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } { Marcel van Brakel. All Rights Reserved. } { } { Contributors: John Penman } { } { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } { } { You may retrieve the latest version of this file at the Project JEDI } { APILIB home page, located at http://jedi-apilib.sourceforge.net } { } { The contents of this file are used with permission, subject to the Mozilla } { Public License Version 1.1 (the "License"); you may not use this file except } { in compliance with the License. You may obtain a copy of the License at } { http://www.mozilla.org/MPL/MPL-1.1.html } { } { Software distributed under the License is distributed on an "AS IS" basis, } { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } { the specific language governing rights and limitations under the License. } { } { Alternatively, the contents of this file may be used under the terms of the } { GNU Lesser General Public License (the "LGPL License"), in which case the } { provisions of the LGPL License are applicable instead of those above. } { If you wish to allow use of your version of this file only under the terms } { of the LGPL License and not to allow others to use your version of this file } { under the MPL, indicate your decision by deleting the provisions above and } { replace them with the notice and other provisions required by the LGPL } { License. If you do not delete the provisions above, a recipient may use } { your version of this file under either the MPL or the LGPL License. } { } { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } { } {******************************************************************************} // $Id: JwaBtHDef.pas,v 1.13 2007/09/06 14:57:11 marquardt Exp $ {$IFNDEF JWA_OMIT_SECTIONS} unit JwaBtHDef; {$WEAKPACKAGEUNIT} {$ENDIF JWA_OMIT_SECTIONS} {$HPPEMIT ''} {$HPPEMIT '#include "bthdef.h"'} {$HPPEMIT ''} {$IFNDEF JWA_OMIT_SECTIONS} {$I jediapilib.inc} interface uses JwaWinType, JwaBthSdpDef; {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_IMPLEMENTATIONSECTION} const GUID_BTHPORT_DEVICE_INTERFACE: TGUID = '{0850302A-B344-4FDA-9BE9-90576B8D46F0}'; {$EXTERNALSYM GUID_BTHPORT_DEVICE_INTERFACE} GUID_BLUETOOTH_RADIO_IN_RANGE: TGUID = '{EA3B5B82-26EE-450E-B0D8-D26FE30A3869}'; {$EXTERNALSYM GUID_BLUETOOTH_RADIO_IN_RANGE} GUID_BLUETOOTH_RADIO_OUT_OF_RANGE: TGUID = '{E28867C9-C2AA-4CED-B969-4570866037C4}'; {$EXTERNALSYM GUID_BLUETOOTH_RADIO_OUT_OF_RANGE} GUID_BLUETOOTH_PIN_REQUEST: TGUID = '{BD198B7C-24AB-4B9A-8C0D-A8EA8349AA16}'; {$EXTERNALSYM GUID_BLUETOOTH_PIN_REQUEST} GUID_BLUETOOTH_L2CAP_EVENT: TGUID = '{7EAE4030-B709-4AA8-AC55-E953829C9DAA}'; {$EXTERNALSYM GUID_BLUETOOTH_L2CAP_EVENT} GUID_BLUETOOTH_HCI_EVENT: TGUID = '{FC240062-1541-49BE-B463-84C4DCD7BF7F}'; {$EXTERNALSYM GUID_BLUETOOTH_HCI_EVENT} // // Bluetooth base UUID for service discovery // BLUETOOTH_BASE_UUID = '{00000000-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM BLUETOOTH_BASE_UUID} // // UUID for the root of the browse group list // SDP_PROTOCOL_UUID: TGUID = '{00000001-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM SDP_PROTOCOL_UUID} UDP_PROTOCOL_UUID: TGUID = '{00000002-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM UDP_PROTOCOL_UUID} RFCOMM_PROTOCOL_UUID: TGUID = '{00000003-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM RFCOMM_PROTOCOL_UUID} TCP_PROTOCOL_UUID: TGUID = '{00000004-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM TCP_PROTOCOL_UUID} TCSBIN_PROTOCOL_UUID: TGUID = '{00000005-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM TCSBIN_PROTOCOL_UUID} TCSAT_PROTOCOL_UUID: TGUID = '{00000006-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM TCSAT_PROTOCOL_UUID} OBEX_PROTOCOL_UUID: TGUID = '{00000008-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM OBEX_PROTOCOL_UUID} IP_PROTOCOL_UUID: TGUID = '{00000009-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM IP_PROTOCOL_UUID} FTP_PROTOCOL_UUID: TGUID = '{0000000A-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM FTP_PROTOCOL_UUID} HTTP_PROTOCOL_UUID: TGUID = '{0000000C-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM HTTP_PROTOCOL_UUID} WSP_PROTOCOL_UUID: TGUID = '{0000000E-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM WSP_PROTOCOL_UUID} BNEP_PROTOCOL_UUID: TGUID = '{0000000F-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM BNEP_PROTOCOL_UUID} UPNP_PROTOCOL_UUID: TGUID = '{00000010-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM UPNP_PROTOCOL_UUID} HID_PROTOCOL_UUID: TGUID = '{00000011-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM HID_PROTOCOL_UUID} HCCC_PROTOCOL_UUID: TGUID = '{00000012-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM HCCC_PROTOCOL_UUID} HCDC_PROTOCOL_UUID: TGUID = '{00000014-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM HCDC_PROTOCOL_UUID} HN_PROTOCOL_UUID: TGUID = '{00000016-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM HN_PROTOCOL_UUID} AVCTP_PROTOCOL_UUID: TGUID = '{00000017-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM AVCTP_PROTOCOL_UUID} AVDTP_PROTOCOL_UUID: TGUID = '{00000019-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM AVDTP_PROTOCOL_UUID} CMPT_PROTOCOL_UUID: TGUID = '{0000001B-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM CMPT_PROTOCOL_UUID} UDI_C_PLANE_PROTOCOL_UUID: TGUID= '{0000001D-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM UDI_C_PLANE_PROTOCOL_UUID} L2CAP_PROTOCOL_UUID: TGUID = '{00000100-0000-1000-8000-00805F9B34FB}'; {$EXTERNALSYM L2CAP_PROTOCOL_UUID} SDP_PROTOCOL_UUID16 = $0001; {$EXTERNALSYM SDP_PROTOCOL_UUID16} UDP_PROTOCOL_UUID16 = $0002; {$EXTERNALSYM UDP_PROTOCOL_UUID16} RFCOMM_PROTOCOL_UUID16 = $0003; {$EXTERNALSYM RFCOMM_PROTOCOL_UUID16} TCP_PROTOCOL_UUID16 = $0004; {$EXTERNALSYM TCP_PROTOCOL_UUID16} TCSBIN_PROTOCOL_UUID16 = $0005; {$EXTERNALSYM TCSBIN_PROTOCOL_UUID16} TCSAT_PROTOCOL_UUID16 = $0006; {$EXTERNALSYM TCSAT_PROTOCOL_UUID16} OBEX_PROTOCOL_UUID16 = $0008; {$EXTERNALSYM OBEX_PROTOCOL_UUID16} IP_PROTOCOL_UUID16 = $0009; {$EXTERNALSYM IP_PROTOCOL_UUID16} FTP_PROTOCOL_UUID16 = $000A; {$EXTERNALSYM FTP_PROTOCOL_UUID16} HTTP_PROTOCOL_UUID16 = $000C; {$EXTERNALSYM HTTP_PROTOCOL_UUID16} WSP_PROTOCOL_UUID16 = $000E; {$EXTERNALSYM WSP_PROTOCOL_UUID16} BNEP_PROTOCOL_UUID16 = $000; {$EXTERNALSYM BNEP_PROTOCOL_UUID16} UPNP_PROTOCOL_UUID16 = $0010; {$EXTERNALSYM UPNP_PROTOCOL_UUID16} HID_PROTOCOL_UUID16 = $0011; {$EXTERNALSYM HID_PROTOCOL_UUID16} HCCC_PROTOCOL_UUID16 = $0012; {$EXTERNALSYM HCCC_PROTOCOL_UUID16} HCDC_PROTOCOL_UUID16 = $0014; {$EXTERNALSYM HCDC_PROTOCOL_UUID16} HCN_PROTOCOL_UUID16 = $0016; {$EXTERNALSYM HCN_PROTOCOL_UUID16} AVCTP_PROTOCOL_UUID16 = $0017; {$EXTERNALSYM AVCTP_PROTOCOL_UUID16} AVDTP_PROTOCOL_UUID16 = $0019; {$EXTERNALSYM AVDTP_PROTOCOL_UUID16} CMPT_PROTOCOL_UUID16 = $001B; {$EXTERNALSYM CMPT_PROTOCOL_UUID16} UDI_C_PLANE_PROTOCOL_UUID16 = $001D; {$EXTERNALSYM UDI_C_PLANE_PROTOCOL_UUID16} L2CAP_PROTOCOL_UUID16 = $0100; {$EXTERNALSYM L2CAP_PROTOCOL_UUID16} ServiceDiscoveryServerServiceClassID_UUID: TGUID = '{00001000-0000-1000-8000-00805F9B34FB}'; BrowseGroupDescriptorServiceClassID_UUID: TGUID = '{00001001-0000-1000-8000-00805F9B34FB}'; PublicBrowseGroupServiceClass_UUID: TGUID = '{00001002-0000-1000-8000-00805F9B34FB}'; SerialPortServiceClass_UUID: TGUID = '{00001101-0000-1000-8000-00805F9B34FB}'; LANAccessUsingPPPServiceClass_UUID: TGUID = '{00001102-0000-1000-8000-00805F9B34FB}'; DialupNetworkingServiceClass_UUID: TGUID = '{00001103-0000-1000-8000-00805F9B34FB}'; IrMCSyncServiceClass_UUID: TGUID = '{00001104-0000-1000-8000-00805F9B34FB}'; OBEXObjectPushServiceClass_UUID: TGUID = '{00001105-0000-1000-8000-00805F9B34FB}'; OBEXFileTransferServiceClass_UUID: TGUID = '{00001106-0000-1000-8000-00805F9B34FB}'; IrMCSyncCommandServiceClass_UUID: TGUID = '{00001107-0000-1000-8000-00805F9B34FB}'; HeadsetServiceClass_UUID: TGUID = '{00001108-0000-1000-8000-00805F9B34FB}'; CordlessTelephonyServiceClass_UUID: TGUID = '{00001109-0000-1000-8000-00805F9B34FB}'; AudioSourceServiceClass_UUID: TGUID = '{0000110A-0000-1000-8000-00805F9B34FB}'; AudioSinkServiceClass_UUID: TGUID = '{0000110B-0000-1000-8000-00805F9B34FB}'; AVRemoteControlTargetServiceClass_UUID: TGUID = '{0000110C-0000-1000-8000-00805F9B34FB}'; AdvancedAudioDistributionServiceClass_UUID: TGUID = '{0000110D-0000-1000-8000-00805F9B34FB}'; AVRemoteControlServiceClass_UUID: TGUID = '{0000110E-0000-1000-8000-00805F9B34FB}'; VideoConferencingServiceClass_UUID: TGUID = '{0000110F-0000-1000-8000-00805F9B34FB}'; IntercomServiceClass_UUID: TGUID = '{00001110-0000-1000-8000-00805F9B34FB}'; FaxServiceClass_UUID: TGUID = '{00001111-0000-1000-8000-00805F9B34FB}'; HeadsetAudioGatewayServiceClass_UUID: TGUID = '{00001112-0000-1000-8000-00805F9B34FB}'; WAPServiceClass_UUID: TGUID = '{00001113-0000-1000-8000-00805F9B34FB}'; WAPClientServiceClass_UUID: TGUID = '{00001114-0000-1000-8000-00805F9B34FB}'; PANUServiceClass_UUID: TGUID = '{00001115-0000-1000-8000-00805F9B34FB}'; NAPServiceClass_UUID: TGUID = '{00001116-0000-1000-8000-00805F9B34FB}'; GNServiceClass_UUID: TGUID = '{00001117-0000-1000-8000-00805F9B34FB}'; DirectPrintingServiceClass_UUID: TGUID = '{00001118-0000-1000-8000-00805F9B34FB}'; ReferencePrintingServiceClass_UUID: TGUID = '{00001119-0000-1000-8000-00805F9B34FB}'; ImagingServiceClass_UUID: TGUID = '{0000111A-0000-1000-8000-00805F9B34FB}'; ImagingResponderServiceClass_UUID: TGUID = '{0000111B-0000-1000-8000-00805F9B34FB}'; ImagingAutomaticArchiveServiceClass_UUID: TGUID = '{0000111C-0000-1000-8000-00805F9B34FB}'; ImagingReferenceObjectsServiceClass_UUID: TGUID = '{0000111D-0000-1000-8000-00805F9B34FB}'; HandsfreeServiceClass_UUID: TGUID = '{0000111E-0000-1000-8000-00805F9B34FB}'; HandsfreeAudioGatewayServiceClass_UUID: TGUID = '{0000111F-0000-1000-8000-00805F9B34FB}'; DirectPrintingReferenceObjectsServiceClass_UUID: TGUID = '{00001120-0000-1000-8000-00805F9B34FB}'; ReflectedUIServiceClass_UUID: TGUID = '{00001121-0000-1000-8000-00805F9B34FB}'; BasicPringingServiceClass_UUID: TGUID = '{00001122-0000-1000-8000-00805F9B34FB}'; PrintingStatusServiceClass_UUID: TGUID = '{00001123-0000-1000-8000-00805F9B34FB}'; HumanInterfaceDeviceServiceClass_UUID: TGUID = '{00001124-0000-1000-8000-00805F9B34FB}'; HardcopyCableReplacementServiceClass_UUID: TGUID = '{00001125-0000-1000-8000-00805F9B34FB}'; HCRPrintServiceClass_UUID: TGUID = '{00001126-0000-1000-8000-00805F9B34FB}'; HCRScanServiceClass_UUID: TGUID = '{00001127-0000-1000-8000-00805F9B34FB}'; CommonISDNAccessServiceClass_UUID: TGUID = '{00001128-0000-1000-8000-00805F9B34FB}'; VideoConferencingGWServiceClass_UUID: TGUID = '{00001129-0000-1000-8000-00805F9B34FB}'; UDIMTServiceClass_UUID: TGUID = '{0000112A-0000-1000-8000-00805F9B34FB}'; UDITAServiceClass_UUID: TGUID = '{0000112B-0000-1000-8000-00805F9B34FB}'; AudioVideoServiceClass_UUID: TGUID = '{0000112C-0000-1000-8000-00805F9B34FB}'; PnPInformationServiceClass_UUID: TGUID = '{00001200-0000-1000-8000-00805F9B34FB}'; GenericNetworkingServiceClass_UUID: TGUID = '{00001201-0000-1000-8000-00805F9B34FB}'; GenericFileTransferServiceClass_UUID: TGUID = '{00001202-0000-1000-8000-00805F9B34FB}'; GenericAudioServiceClass_UUID: TGUID = '{00001203-0000-1000-8000-00805F9B34FB}'; GenericTelephonyServiceClass_UUID: TGUID = '{00001204-0000-1000-8000-00805F9B34FB}'; ServiceDiscoveryServerServiceClassID_UUID16 = $1000; BrowseGroupDescriptorServiceClassID_UUID16 = $1001; PublicBrowseGroupServiceClassID_UUID16 = $1002; SerialPortServiceClassID_UUID16 = $1101; LANAccessUsingPPPServiceClassID_UUID16 = $1102; DialupNetworkingServiceClassID_UUID16 = $1103; IrMCSyncServiceClassID_UUID16 = $1104; OBEXObjectPushServiceClassID_UUID16 = $1105; OBEXFileTransferServiceClassID_UUID16 = $1106; IrMcSyncCommandServiceClassID_UUID16 = $1107; HeadsetServiceClassID_UUID16 = $1108; CordlessServiceClassID_UUID16 = $1109; AudioSourceServiceClassID_UUID16 = $110A; AudioSinkSourceServiceClassID_UUID16 = $110B; AVRemoteControlTargetServiceClassID_UUID16 = $110C; AdvancedAudioDistributionServiceClassID_UUID16 = $110D; AVRemoteControlServiceClassID_UUID16 = $110E; VideoConferencingServiceClassID_UUID16 = $110; IntercomServiceClassID_UUID16 = $1110; FaxServiceClassID_UUID16 = $1111; HeadsetAudioGatewayServiceClassID_UUID16 = $1112; WAPServiceClassID_UUID16 = $1113; WAPClientServiceClassID_UUID16 = $1114; PANUServiceClassID_UUID16 = $1115; NAPServiceClassID_UUID16 = $1116; GNServiceClassID_UUID16 = $1117; DirectPrintingServiceClassID_UUID16 = $1118; ReferencePrintingServiceClassID_UUID16 = $1119; ImagingServiceClassID_UUID16 = $111A; ImagingResponderServiceClassID_UUID16 = $111B; ImagingAutomaticArchiveServiceClassID_UUID16 = $111C; ImagingReferenceObjectsServiceClassID_UUID16 = $111D; HandsfreeServiceClassID_UUID16 = $111E; HandsfreeAudioGatewayServiceClassID_UUID16 = $111F; DirectPrintingReferenceObjectsServiceClassID_UUID16 = $1120; ReflectsUIServiceClassID_UUID16 = $1121; BasicPrintingServiceClassID_UUID16 = $1122; PrintingStatusServiceClassID_UUID16 = $1123; HumanInterfaceDeviceServiceClassID_UUID16 = $1124; HardcopyCableReplacementServiceClassID_UUID16 = $1125; HCRPrintServiceClassID_UUID16 = $1126; HCRScanServiceClassID_UUID16 = $1127; CommonISDNAccessServiceClass_UUID16 = $1128; VideoConferencingGWServiceClass_UUID16 = $1129; UDIMTServiceClass_UUID16 = $112A; UDITAServiceClass_UUID16 = $112B; AudioVideoServiceClass_UUID16 = $112C; PnPInformationServiceClassID_UUID16 = $1200; {$EXTERNALSYM PnPInformationServiceClassID_UUID16} GenericNetworkingServiceClassID_UUID16 = $1201; {$EXTERNALSYM GenericNetworkingServiceClassID_UUID16} GenericFileTransferServiceClassID_UUID16 = $1202; {$EXTERNALSYM GenericFileTransferServiceClassID_UUID16} GenericAudioServiceClassID_UUID16 = $1203; {$EXTERNALSYM GenericAudioServiceClassID_UUID16} GenericTelephonyServiceClassID_UUID16 = $1204; {$EXTERNALSYM GenericTelephonyServiceClassID_UUID16} // // max length of device friendly name. // BTH_MAX_NAME_SIZE = 248; {$EXTERNALSYM BTH_MAX_NAME_SIZE} BTH_MAX_PIN_SIZE = 16; {$EXTERNALSYM BTH_MAX_PIN_SIZE} BTH_LINK_KEY_LENGTH = 16; {$EXTERNALSYM BTH_LINK_KEY_LENGTH} BTH_MFG_ERICSSON = 0; {$EXTERNALSYM BTH_MFG_ERICSSON} BTH_MFG_NOKIA = 1; {$EXTERNALSYM BTH_MFG_NOKIA} BTH_MFG_INTEL = 2; {$EXTERNALSYM BTH_MFG_INTEL} BTH_MFG_IBM = 3; {$EXTERNALSYM BTH_MFG_IBM} BTH_MFG_TOSHIBA = 4; {$EXTERNALSYM BTH_MFG_TOSHIBA} BTH_MFG_3COM = 5; {$EXTERNALSYM BTH_MFG_3COM} BTH_MFG_MICROSOFT = 6; {$EXTERNALSYM BTH_MFG_MICROSOFT} BTH_MFG_LUCENT = 7; {$EXTERNALSYM BTH_MFG_LUCENT} BTH_MFG_MOTOROLA = 8; {$EXTERNALSYM BTH_MFG_MOTOROLA} BTH_MFG_INFINEON = 9; {$EXTERNALSYM BTH_MFG_INFINEON} BTH_MFG_CSR = 10; {$EXTERNALSYM BTH_MFG_CSR} BTH_MFG_SILICONWAVE = 11; {$EXTERNALSYM BTH_MFG_SILICONWAVE} BTH_MFG_DIGIANSWER = 12; {$EXTERNALSYM BTH_MFG_DIGIANSWER} BTH_MFG_TI = 13; {$EXTERNALSYM BTH_MFG_TI} BTH_MFG_PARTHUS = 14; {$EXTERNALSYM BTH_MFG_PARTHUS} BTH_MFG_BROADCOM = 15; {$EXTERNALSYM BTH_MFG_BROADCOM} BTH_MFG_MITEL = 16; {$EXTERNALSYM BTH_MFG_MITEL} BTH_MFG_WIDCOMM = 17; {$EXTERNALSYM BTH_MFG_WIDCOMM} BTH_MFG_ZEEVO = 18; {$EXTERNALSYM BTH_MFG_ZEEVO} BTH_MFG_ATMEL = 19; {$EXTERNALSYM BTH_MFG_ATMEL} BTH_MFG_MITSIBUSHI = 20; {$EXTERNALSYM BTH_MFG_MITSIBUSHI} BTH_MFG_RTX_TELECOM = 21; {$EXTERNALSYM BTH_MFG_RTX_TELECOM} BTH_MFG_KC_TECHNOLOGY = 22; {$EXTERNALSYM BTH_MFG_KC_TECHNOLOGY} BTH_MFG_NEWLOGIC = 23; {$EXTERNALSYM BTH_MFG_NEWLOGIC} BTH_MFG_TRANSILICA = 24; {$EXTERNALSYM BTH_MFG_TRANSILICA} BTH_MFG_ROHDE_SCHWARZ = 25; {$EXTERNALSYM BTH_MFG_ROHDE_SCHWARZ} BTH_MFG_TTPCOM = 26; {$EXTERNALSYM BTH_MFG_TTPCOM} BTH_MFG_SIGNIA = 27; {$EXTERNALSYM BTH_MFG_SIGNIA} BTH_MFG_CONEXANT = 28; {$EXTERNALSYM BTH_MFG_CONEXANT} BTH_MFG_QUALCOMM = 29; {$EXTERNALSYM BTH_MFG_QUALCOMM} BTH_MFG_INVENTEL = 30; {$EXTERNALSYM BTH_MFG_INVENTEL} BTH_MFG_AVM_BERLIN = 31; {$EXTERNALSYM BTH_MFG_AVM_BERLIN} BTH_MFG_BANDSPEED = 32; {$EXTERNALSYM BTH_MFG_BANDSPEED} BTH_MFG_MANSELLA = 33; {$EXTERNALSYM BTH_MFG_MANSELLA} BTH_MFG_NEC = 34; {$EXTERNALSYM BTH_MFG_NEC} BTH_MFG_WAVEPLUS_TECHNOLOGY_CO = 35; {$EXTERNALSYM BTH_MFG_WAVEPLUS_TECHNOLOGY_CO} BTH_MFG_ALCATEL = 36; {$EXTERNALSYM BTH_MFG_ALCATEL} BTH_MFG_PHILIPS_SEMICONDUCTOR = 37; {$EXTERNALSYM BTH_MFG_PHILIPS_SEMICONDUCTOR} BTH_MFG_C_TECHNOLOGIES = 38; {$EXTERNALSYM BTH_MFG_C_TECHNOLOGIES} BTH_MFG_OPEN_INTERFACE = 39; {$EXTERNALSYM BTH_MFG_OPEN_INTERFACE} BTH_MFG_RF_MICRO_DEVICES = 40; {$EXTERNALSYM BTH_MFG_RF_MICRO_DEVICES} BTH_MFG_HITACHI = 41; {$EXTERNALSYM BTH_MFG_HITACHI} BTH_MFG_SYMBOL_TECHNOLOGIES = 42; {$EXTERNALSYM BTH_MFG_SYMBOL_TECHNOLOGIES} BTH_MFG_TENOVIS = 43; {$EXTERNALSYM BTH_MFG_TENOVIS} BTH_MFG_MACRONIX_INTERNATIONAL = 44; {$EXTERNALSYM BTH_MFG_MACRONIX_INTERNATIONAL} BTH_MFG_INTERNAL_USE = 65535; {$EXTERNALSYM BTH_MFG_INTERNAL_USE} type {$IFNDEF JWA_INCLUDEMODE} BTH_ADDR = Int64; {$EXTERNALSYM BTH_ADDR} {$ENDIF JWA_INCLUDEMODE} PBTH_ADDR = ^BTH_ADDR; {$EXTERNALSYM PBTH_ADDR} BTH_COD = ULONG; {$EXTERNALSYM BTH_COD} PBTH_COD = ^BTH_COD; {$EXTERNALSYM PBTH_COD} BTH_LAP = ULONG; {$EXTERNALSYM BTH_LAP} PBTH_LAP = ^BTH_LAP; {$EXTERNALSYM PBTH_LAP} const BTH_ADDR_NULL = Int64($0000000000000000); {$EXTERNALSYM BTH_ADDR_NULL} NAP_MASK = Int64($FFFF00000000); {$EXTERNALSYM NAP_MASK} SAP_MASK = Int64($0000FFFFFFFF); {$EXTERNALSYM SAP_MASK} NAP_BIT_OFFSET = 8 * 4; {$EXTERNALSYM NAP_BIT_OFFSET} SAP_BIT_OFFSET = 0; {$EXTERNALSYM SAP_BIT_OFFSET} function GET_NAP(_bth_addr: BTH_ADDR): Word; function GET_SAP(_bth_addr: BTH_ADDR): ULONG; function SET_NAP(_nap: Word): Int64; //todo impl function SET_SAP(_sap: ULONG): Int64; // todo impl function SET_NAP_SAP(_nap, _sap: Word): Int64; // todo impl const COD_FORMAT_BIT_OFFSET = 0; {$EXTERNALSYM COD_FORMAT_BIT_OFFSET} COD_MINOR_BIT_OFFSET = 2; {$EXTERNALSYM COD_MINOR_BIT_OFFSET} COD_MAJOR_BIT_OFFSET = 8 * 1; {$EXTERNALSYM COD_MAJOR_BIT_OFFSET} COD_SERVICE_BIT_OFFSET = 8 * 1 + 5; {$EXTERNALSYM COD_SERVICE_BIT_OFFSET} COD_FORMAT_MASK = $000003; {$EXTERNALSYM COD_FORMAT_MASK} COD_MINOR_MASK = $0000FC; {$EXTERNALSYM COD_MINOR_MASK} COD_MAJOR_MASK = $001F00; {$EXTERNALSYM COD_MAJOR_MASK} COD_SERVICE_MASK = $FFE000; {$EXTERNALSYM COD_SERVICE_MASK} function GET_COD_FORMAT(_cod: BTH_COD): BTH_COD; function GET_COD_MINOR(_cod: BTH_COD): BTH_COD; function GET_COD_MAJOR(_cod: BTH_COD): BTH_COD; function GET_COD_SERVICE(_cod: BTH_COD): BTH_COD; procedure SET_COD_MINOR(var _cod: BTH_COD; _minor: BTH_COD); procedure SET_COD_MAJOR(var _cod: BTH_COD; _major: BTH_COD); procedure SET_COD_SERVICE(var _cod: BTH_COD; _service: BTH_COD); const COD_VERSION = $0; {$EXTERNALSYM COD_VERSION} COD_SERVICE_LIMITED = $0001; {$EXTERNALSYM COD_SERVICE_LIMITED} COD_SERVICE_POSITIONING = $0008; {$EXTERNALSYM COD_SERVICE_POSITIONING} COD_SERVICE_NETWORKING = $0010; {$EXTERNALSYM COD_SERVICE_NETWORKING} COD_SERVICE_RENDERING = $0020; {$EXTERNALSYM COD_SERVICE_RENDERING} COD_SERVICE_CAPTURING = $0040; {$EXTERNALSYM COD_SERVICE_CAPTURING} COD_SERVICE_OBJECT_XFER = $0080; {$EXTERNALSYM COD_SERVICE_OBJECT_XFER} COD_SERVICE_AUDIO = $0100; {$EXTERNALSYM COD_SERVICE_AUDIO} COD_SERVICE_TELEPHONY = $0200; {$EXTERNALSYM COD_SERVICE_TELEPHONY} COD_SERVICE_INFORMATION = $0400; {$EXTERNALSYM COD_SERVICE_INFORMATION} COD_SERVICE_VALID_MASK = COD_SERVICE_LIMITED or COD_SERVICE_POSITIONING or COD_SERVICE_NETWORKING or COD_SERVICE_RENDERING or COD_SERVICE_CAPTURING or COD_SERVICE_OBJECT_XFER or COD_SERVICE_AUDIO or COD_SERVICE_TELEPHONY or COD_SERVICE_INFORMATION; {$EXTERNALSYM COD_SERVICE_VALID_MASK} COD_SERVICE_MAX_COUNT = 9; {$EXTERNALSYM COD_SERVICE_MAX_COUNT} // // Major class codes // const COD_MAJOR_MISCELLANEOUS = $00; {$EXTERNALSYM COD_MAJOR_MISCELLANEOUS} COD_MAJOR_COMPUTER = $01; {$EXTERNALSYM COD_MAJOR_COMPUTER} COD_MAJOR_PHONE = $02; {$EXTERNALSYM COD_MAJOR_PHONE} COD_MAJOR_LAN_ACCESS = $03; {$EXTERNALSYM COD_MAJOR_LAN_ACCESS} COD_MAJOR_AUDIO = $04; {$EXTERNALSYM COD_MAJOR_AUDIO} COD_MAJOR_PERIPHERAL = $05; {$EXTERNALSYM COD_MAJOR_PERIPHERAL} COD_MAJOR_IMAGING = $06; {$EXTERNALSYM COD_MAJOR_IMAGING} COD_MAJOR_UNCLASSIFIED = $1; {$EXTERNALSYM COD_MAJOR_UNCLASSIFIED} // // Minor class codes specific to each major class // const COD_COMPUTER_MINOR_UNCLASSIFIED = $00; {$EXTERNALSYM COD_COMPUTER_MINOR_UNCLASSIFIED} COD_COMPUTER_MINOR_DESKTOP = $01; {$EXTERNALSYM COD_COMPUTER_MINOR_DESKTOP} COD_COMPUTER_MINOR_SERVER = $02; {$EXTERNALSYM COD_COMPUTER_MINOR_SERVER} COD_COMPUTER_MINOR_LAPTOP = $03; {$EXTERNALSYM COD_COMPUTER_MINOR_LAPTOP} COD_COMPUTER_MINOR_HANDHELD = $04; {$EXTERNALSYM COD_COMPUTER_MINOR_HANDHELD} COD_COMPUTER_MINOR_PALM = $05; {$EXTERNALSYM COD_COMPUTER_MINOR_PALM} COD_COMPUTER_MINOR_WEARABLE = $06; {$EXTERNALSYM COD_COMPUTER_MINOR_WEARABLE} COD_PHONE_MINOR_UNCLASSIFIED = $00; {$EXTERNALSYM COD_PHONE_MINOR_UNCLASSIFIED} COD_PHONE_MINOR_CELLULAR = $01; {$EXTERNALSYM COD_PHONE_MINOR_CELLULAR} COD_PHONE_MINOR_CORDLESS = $02; {$EXTERNALSYM COD_PHONE_MINOR_CORDLESS} COD_PHONE_MINOR_SMART = $03; {$EXTERNALSYM COD_PHONE_MINOR_SMART} COD_PHONE_MINOR_WIRED_MODEM = $04; {$EXTERNALSYM COD_PHONE_MINOR_WIRED_MODEM} COD_AUDIO_MINOR_UNCLASSIFIED = $00; {$EXTERNALSYM COD_AUDIO_MINOR_UNCLASSIFIED} COD_AUDIO_MINOR_HEADSET = $01; {$EXTERNALSYM COD_AUDIO_MINOR_HEADSET} COD_AUDIO_MINOR_HANDS_FREE = $02; {$EXTERNALSYM COD_AUDIO_MINOR_HANDS_FREE} COD_AUDIO_MINOR_HEADSET_HANDS_FREE = $03; {$EXTERNALSYM COD_AUDIO_MINOR_HEADSET_HANDS_FREE} COD_AUDIO_MINOR_MICROPHONE = $0; {$EXTERNALSYM COD_AUDIO_MINOR_MICROPHONE} COD_AUDIO_MINOR_LOUDSPEAKER = $05; {$EXTERNALSYM COD_AUDIO_MINOR_LOUDSPEAKER} COD_AUDIO_MINOR_HEADPHONES = $06; {$EXTERNALSYM COD_AUDIO_MINOR_HEADPHONES} COD_AUDIO_MINOR_PORTABLE_AUDIO = $07; {$EXTERNALSYM COD_AUDIO_MINOR_PORTABLE_AUDIO} COD_AUDIO_MINOR_CAR_AUDIO = $08; {$EXTERNALSYM COD_AUDIO_MINOR_CAR_AUDIO} COD_AUDIO_MINOR_SET_TOP_BOX = $09; {$EXTERNALSYM COD_AUDIO_MINOR_SET_TOP_BOX} COD_AUDIO_MINOR_HIFI_AUDIO = $0A; {$EXTERNALSYM COD_AUDIO_MINOR_HIFI_AUDIO} COD_AUDIO_MINOR_VCR = $0B; {$EXTERNALSYM COD_AUDIO_MINOR_VCR} COD_AUDIO_MINOR_VIDEO_CAMERA = $0C; {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_CAMERA} COD_AUDIO_MINOR_CAMCORDER = $0D; {$EXTERNALSYM COD_AUDIO_MINOR_CAMCORDER} COD_AUDIO_MINOR_VIDEO_MONITOR = $0E; {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_MONITOR} COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER = $0F; {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER} COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING = $10; {$EXTERNALSYM COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING} //COD_AUDIO_MINOR_RESERVED = $11: COD_AUDIO_MINOR_GAMING_TOY = $12; {$EXTERNALSYM COD_AUDIO_MINOR_GAMING_TOY} COD_PERIPHERAL_MINOR_KEYBOARD_MASK = $10; {$EXTERNALSYM COD_PERIPHERAL_MINOR_KEYBOARD_MASK} COD_PERIPHERAL_MINOR_POINTER_MASK = $20; {$EXTERNALSYM COD_PERIPHERAL_MINOR_POINTER_MASK} COD_PERIPHERAL_MINOR_NO_CATEGORY = $00; {$EXTERNALSYM COD_PERIPHERAL_MINOR_NO_CATEGORY} COD_PERIPHERAL_MINOR_JOYSTICK = $01; {$EXTERNALSYM COD_PERIPHERAL_MINOR_JOYSTICK} COD_PERIPHERAL_MINOR_GAMEPAD = $02; {$EXTERNALSYM COD_PERIPHERAL_MINOR_GAMEPAD} COD_PERIPHERAL_MINOR_REMOTE_CONTROL = $03; {$EXTERNALSYM COD_PERIPHERAL_MINOR_REMOTE_CONTROL} COD_PERIPHERAL_MINOR_SENSING = $04; {$EXTERNALSYM COD_PERIPHERAL_MINOR_SENSING} COD_IMAGING_MINOR_DISPLAY_MASK = $04; {$EXTERNALSYM COD_IMAGING_MINOR_DISPLAY_MASK} COD_IMAGING_MINOR_CAMERA_MASK = $08; {$EXTERNALSYM COD_IMAGING_MINOR_CAMERA_MASK} COD_IMAGING_MINOR_SCANNER_MASK = $10; {$EXTERNALSYM COD_IMAGING_MINOR_SCANNER_MASK} COD_IMAGING_MINOR_PRINTER_MASK = $20; {$EXTERNALSYM COD_IMAGING_MINOR_PRINTER_MASK} // // Cannot use GET_COD_MINOR for this b/c it is embedded in a different manner // than the rest of the major classes // const COD_LAN_ACCESS_BIT_OFFSET = 5; {$EXTERNALSYM COD_LAN_ACCESS_BIT_OFFSET} COD_LAN_MINOR_MASK = $00001C; {$EXTERNALSYM COD_LAN_MINOR_MASK} COD_LAN_ACCESS_MASK = $0000E0; {$EXTERNALSYM COD_LAN_ACCESS_MASK} function GET_COD_LAN_MINOR(_cod: DWORD): DWORD; {$EXTERNALSYM GET_COD_LAN_MINOR} function GET_COD_LAN_ACCESS(_cod: DWORD): DWORD; {$EXTERNALSYM GET_COD_LAN_ACCESS} // // LAN access percent usage subcodes // const COD_LAN_MINOR_UNCLASSIFIED = $00; {$EXTERNALSYM COD_LAN_MINOR_UNCLASSIFIED} COD_LAN_ACCESS_0_USED = $00; {$EXTERNALSYM COD_LAN_ACCESS_0_USED} COD_LAN_ACCESS_17_USED = $01; {$EXTERNALSYM COD_LAN_ACCESS_17_USED} COD_LAN_ACCESS_33_USED = $02; {$EXTERNALSYM COD_LAN_ACCESS_33_USED} COD_LAN_ACCESS_50_USED = $03; {$EXTERNALSYM COD_LAN_ACCESS_50_USED} COD_LAN_ACCESS_67_USED = $04; {$EXTERNALSYM COD_LAN_ACCESS_67_USED} COD_LAN_ACCESS_83_USED = $05; {$EXTERNALSYM COD_LAN_ACCESS_83_USED} COD_LAN_ACCESS_99_USED = $06; {$EXTERNALSYM COD_LAN_ACCESS_99_USED} COD_LAN_ACCESS_FULL = $07; {$EXTERNALSYM COD_LAN_ACCESS_FULL} // // Used as an initializer of LAP_DATA // (* (rom) not implementable in Delphi #define LAP_GIAC_INIT { 0x33, 0x8B, 0x9E } #define LAP_LIAC_INIT { 0x00, 0x8B, 0x9E } *) // // General Inquiry Access Code. // const LAP_GIAC_VALUE = $009E8B33; {$EXTERNALSYM LAP_GIAC_VALUE} // // Limited Inquiry Access Code. // const LAP_LIAC_VALUE = $009E8B00; {$EXTERNALSYM LAP_LIAC_VALUE} BTH_ADDR_IAC_FIRST = $9E8B00; {$EXTERNALSYM BTH_ADDR_IAC_FIRST} BTH_ADDR_IAC_LAST = $9E8B3; {$EXTERNALSYM BTH_ADDR_IAC_LAST} BTH_ADDR_LIAC = $9E8B00; {$EXTERNALSYM BTH_ADDR_LIAC} BTH_ADDR_GIAC = $9E8B33; {$EXTERNALSYM BTH_ADDR_GIAC} type BTHSTATUS = UCHAR; {$EXTERNALSYM BTHSTATUS} PBTHSTATUS = ^BTHSTATUS; {$EXTERNALSYM PBTHSTATUS} function BTH_ERROR(_btStatus: BTHSTATUS): BOOL; {$EXTERNALSYM BTH_ERROR} function BTH_SUCCESS(_btStatus: BTHSTATUS): BOOL; {$EXTERNALSYM BTH_SUCCESS} const BTH_ERROR_SUCCESS = $00; {$EXTERNALSYM BTH_ERROR_SUCCESS} BTH_ERROR_UNKNOWN_HCI_COMMAND = $01; {$EXTERNALSYM BTH_ERROR_UNKNOWN_HCI_COMMAND} BTH_ERROR_NO_CONNECTION = $02; {$EXTERNALSYM BTH_ERROR_NO_CONNECTION} BTH_ERROR_HARDWARE_FAILURE = $03; {$EXTERNALSYM BTH_ERROR_HARDWARE_FAILURE} BTH_ERROR_PAGE_TIMEOUT = $04; {$EXTERNALSYM BTH_ERROR_PAGE_TIMEOUT} BTH_ERROR_AUTHENTICATION_FAILURE = $05; {$EXTERNALSYM BTH_ERROR_AUTHENTICATION_FAILURE} BTH_ERROR_KEY_MISSING = $06; {$EXTERNALSYM BTH_ERROR_KEY_MISSING} BTH_ERROR_MEMORY_FULL = $07; {$EXTERNALSYM BTH_ERROR_MEMORY_FULL} BTH_ERROR_CONNECTION_TIMEOUT = $08; {$EXTERNALSYM BTH_ERROR_CONNECTION_TIMEOUT} BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS = $09; {$EXTERNALSYM BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS} BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS = $0a; {$EXTERNALSYM BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS} BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS = $0b; {$EXTERNALSYM BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS} BTH_ERROR_COMMAND_DISALLOWED = $0c; {$EXTERNALSYM BTH_ERROR_COMMAND_DISALLOWED} BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES = $0d; {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES} BTH_ERROR_HOST_REJECTED_SECURITY_REASONS = $0e; {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_SECURITY_REASONS} BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE = $0; {$EXTERNALSYM BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE} BTH_ERROR_HOST_TIMEOUT = $10; {$EXTERNALSYM BTH_ERROR_HOST_TIMEOUT} BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER = $11; {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER} BTH_ERROR_INVALID_HCI_PARAMETER = $12; {$EXTERNALSYM BTH_ERROR_INVALID_HCI_PARAMETER} BTH_ERROR_REMOTE_USER_ENDED_CONNECTION = $13; {$EXTERNALSYM BTH_ERROR_REMOTE_USER_ENDED_CONNECTION} BTH_ERROR_REMOTE_LOW_RESOURCES = $14; {$EXTERNALSYM BTH_ERROR_REMOTE_LOW_RESOURCES} BTH_ERROR_REMOTE_POWERING_OFF = $15; {$EXTERNALSYM BTH_ERROR_REMOTE_POWERING_OFF} BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION = $16; {$EXTERNALSYM BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION} BTH_ERROR_REPEATED_ATTEMPTS = $17; {$EXTERNALSYM BTH_ERROR_REPEATED_ATTEMPTS} BTH_ERROR_PAIRING_NOT_ALLOWED = $18; {$EXTERNALSYM BTH_ERROR_PAIRING_NOT_ALLOWED} BTH_ERROR_UKNOWN_LMP_PDU = $19; {$EXTERNALSYM BTH_ERROR_UKNOWN_LMP_PDU} BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE = $1a; {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE} BTH_ERROR_SCO_OFFSET_REJECTED = $1b; {$EXTERNALSYM BTH_ERROR_SCO_OFFSET_REJECTED} BTH_ERROR_SCO_INTERVAL_REJECTED = $1c; {$EXTERNALSYM BTH_ERROR_SCO_INTERVAL_REJECTED} BTH_ERROR_SCO_AIRMODE_REJECTED = $1d; {$EXTERNALSYM BTH_ERROR_SCO_AIRMODE_REJECTED} BTH_ERROR_INVALID_LMP_PARAMETERS = $1e; {$EXTERNALSYM BTH_ERROR_INVALID_LMP_PARAMETERS} BTH_ERROR_UNSPECIFIED_ERROR = $1; {$EXTERNALSYM BTH_ERROR_UNSPECIFIED_ERROR} BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE = $20; {$EXTERNALSYM BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE} BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED = $21; {$EXTERNALSYM BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED} BTH_ERROR_LMP_RESPONSE_TIMEOUT = $22; {$EXTERNALSYM BTH_ERROR_LMP_RESPONSE_TIMEOUT} BTH_ERROR_LMP_TRANSACTION_COLLISION = $23; {$EXTERNALSYM BTH_ERROR_LMP_TRANSACTION_COLLISION} BTH_ERROR_LMP_PDU_NOT_ALLOWED = $24; {$EXTERNALSYM BTH_ERROR_LMP_PDU_NOT_ALLOWED} BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE = $25; {$EXTERNALSYM BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE} BTH_ERROR_UNIT_KEY_NOT_USED = $26; {$EXTERNALSYM BTH_ERROR_UNIT_KEY_NOT_USED} BTH_ERROR_QOS_IS_NOT_SUPPORTED = $27; {$EXTERNALSYM BTH_ERROR_QOS_IS_NOT_SUPPORTED} BTH_ERROR_INSTANT_PASSED = $28; {$EXTERNALSYM BTH_ERROR_INSTANT_PASSED} BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED = $29; {$EXTERNALSYM BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED} BTH_ERROR_UNSPECIFIED = $FF; {$EXTERNALSYM BTH_ERROR_UNSPECIFIED} // // Min, max, and default L2cap MTU. // const L2CAP_MIN_MTU = 48; {$EXTERNALSYM L2CAP_MIN_MTU} L2CAP_MAX_MTU = $FFFF; {$EXTERNALSYM L2CAP_MAX_MTU} L2CAP_DEFAULT_MTU = 672; {$EXTERNALSYM L2CAP_DEFAULT_MTU} // // Max l2cap signal size (48) - size of signal header (4) // const MAX_L2CAP_PING_DATA_LENGTH = 44; {$EXTERNALSYM MAX_L2CAP_PING_DATA_LENGTH} MAX_L2CAP_INFO_DATA_LENGTH = 44; {$EXTERNALSYM MAX_L2CAP_INFO_DATA_LENGTH} // // the following two structures provides information about // disocvered remote radios. // const BDIF_ADDRESS = $00000001; {$EXTERNALSYM BDIF_ADDRESS} BDIF_COD = $00000002; {$EXTERNALSYM BDIF_COD} BDIF_NAME = $00000004; {$EXTERNALSYM BDIF_NAME} BDIF_PAIRED = $00000008; {$EXTERNALSYM BDIF_PAIRED} BDIF_PERSONAL = $00000010; {$EXTERNALSYM BDIF_PERSONAL} BDIF_CONNECTED = $00000020; {$EXTERNALSYM BDIF_CONNECTED} const BDIF_VALID_FLAGS = BDIF_CONNECTED or BDIF_ADDRESS or BDIF_COD or BDIF_NAME or BDIF_PAIRED or BDIF_PERSONAL; {$EXTERNALSYM BDIF_VALID_FLAGS} type _BTH_DEVICE_INFO = record // // Combination BDIF_Xxx flags // flags: ULONG; // // Address of remote device. // address: BTH_ADDR; // // Class Of Device. // classOfDevice: BTH_COD; // // name of the device // name: array [0..BTH_MAX_NAME_SIZE - 1] of CHAR; end; {$EXTERNALSYM _BTH_DEVICE_INFO} BTH_DEVICE_INFO = _BTH_DEVICE_INFO; {$EXTERNALSYM BTH_DEVICE_INFO} PBTH_DEVICE_INFO = ^BTH_DEVICE_INFO; {$EXTERNALSYM PBTH_DEVICE_INFO} TBthDeviceInfo = BTH_DEVICE_INFO; PBthDeviceInfo = PBTH_DEVICE_INFO; // // Buffer associated with GUID_BLUETOOTH_RADIO_IN_RANGE // type _BTH_RADIO_IN_RANGE = record // // Information about the remote radio // deviceInfo: BTH_DEVICE_INFO; // // The previous flags value for the BTH_DEVICE_INFO. The receiver of this // notification can compare the deviceInfo.flags and previousDeviceFlags // to determine what has changed about this remote radio. // // For instance, if BDIF_NAME is set in deviceInfo.flags and not in // previousDeviceFlags, the remote radio's has just been retrieved. // previousDeviceFlags: ULONG; end; {$EXTERNALSYM _BTH_RADIO_IN_RANGE} BTH_RADIO_IN_RANGE = _BTH_RADIO_IN_RANGE; {$EXTERNALSYM BTH_RADIO_IN_RANGE} PBTH_RADIO_IN_RANGE = ^BTH_RADIO_IN_RANGE; {$EXTERNALSYM PBTH_RADIO_IN_RANGE} TBthRadioInRange = BTH_RADIO_IN_RANGE; PBthRadioInRange = PBTH_RADIO_IN_RANGE; // // Buffer associated with GUID_BLUETOOTH_L2CAP_EVENT // _BTH_L2CAP_EVENT_INFO = record // // Remote radio address which the L2CAP event is associated with // bthAddress: BTH_ADDR; // // The PSM that is either being connected to or disconnected from // psm: Word; // // If != 0, then the channel has just been established. If == 0, then the // channel has been destroyed. Notifications for a destroyed channel will // only be sent for channels successfully established. // connected: UCHAR; // // If != 0, then the local host iniated the l2cap connection. If == 0, then // the remote host initated the connection. This field is only valid if // connect is != 0. // initiated: UCHAR; end; {$EXTERNALSYM _BTH_L2CAP_EVENT_INFO} BTH_L2CAP_EVENT_INFO = _BTH_L2CAP_EVENT_INFO; {$EXTERNALSYM BTH_L2CAP_EVENT_INFO} PBTH_L2CAP_EVENT_INFO = ^BTH_L2CAP_EVENT_INFO; {$EXTERNALSYM PBTH_L2CAP_EVENT_INFO} TBthL2CapEventInfo = BTH_L2CAP_EVENT_INFO; PBthL2CapEventInfo = PBTH_L2CAP_EVENT_INFO; const HCI_CONNNECTION_TYPE_ACL = 1; {$EXTERNALSYM HCI_CONNNECTION_TYPE_ACL} HCI_CONNNECTION_TYPE_SCO = 2; {$EXTERNALSYM HCI_CONNNECTION_TYPE_SCO} // // Buffer associated with GUID_BLUETOOTH_HCI_EVENT // type _BTH_HCI_EVENT_INFO = record // // Remote radio address which the HCI event is associated with // bthAddress: BTH_ADDR; // // HCI_CONNNECTION_TYPE_XXX value // connectionType: UCHAR; // // If != 0, then the underlying connection to the remote radio has just // been estrablished. If == 0, then the underlying conneciton has just been // destroyed. // connected: UCHAR; end; {$EXTERNALSYM _BTH_HCI_EVENT_INFO} BTH_HCI_EVENT_INFO = _BTH_HCI_EVENT_INFO; {$EXTERNALSYM BTH_HCI_EVENT_INFO} PBTH_HCI_EVENT_INFO = ^BTH_HCI_EVENT_INFO; {$EXTERNALSYM PBTH_HCI_EVENT_INFO} TBthHciEventInfo = BTH_HCI_EVENT_INFO; PBthHciEventInfo = PBTH_HCI_EVENT_INFO; const MAX_UUIDS_IN_QUERY = 12; {$EXTERNALSYM MAX_UUIDS_IN_QUERY} BTH_VID_DEFAULT_VALUE = $FFFF; {$EXTERNALSYM BTH_VID_DEFAULT_VALUE} SDP_ERROR_INVALID_SDP_VERSION = $0001; {$EXTERNALSYM SDP_ERROR_INVALID_SDP_VERSION} SDP_ERROR_INVALID_RECORD_HANDLE = $0002; {$EXTERNALSYM SDP_ERROR_INVALID_RECORD_HANDLE} SDP_ERROR_INVALID_REQUEST_SYNTAX = $0003; {$EXTERNALSYM SDP_ERROR_INVALID_REQUEST_SYNTAX} SDP_ERROR_INVALID_PDU_SIZE = $0004; {$EXTERNALSYM SDP_ERROR_INVALID_PDU_SIZE} SDP_ERROR_INVALID_CONTINUATION_STATE = $0005; {$EXTERNALSYM SDP_ERROR_INVALID_CONTINUATION_STATE} SDP_ERROR_INSUFFICIENT_RESOURCES = $0006; {$EXTERNALSYM SDP_ERROR_INSUFFICIENT_RESOURCES} // // Defined by windows to handle server errors that are not described by the // above errors. Start at 0x0100 so we don't go anywhere near the spec // defined values. // // // Success, nothing went wrong // const SDP_ERROR_SUCCESS = SDP_ERROR($0000); {$EXTERNALSYM SDP_ERROR_SUCCESS} // // The SDP PDU or parameters other than the SDP stream response was not correct // SDP_ERROR_SERVER_INVALID_RESPONSE = SDP_ERROR($0100); {$EXTERNALSYM SDP_ERROR_SERVER_INVALID_RESPONSE} /// /// The SDP response stream did not parse correctly. /// SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE = SDP_ERROR($0200); {$EXTERNALSYM SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE} /// /// The SDP response stream was successfully parsed, but did not match the /// required format for the query. /// SDP_ERROR_SERVER_BAD_FORMAT = SDP_ERROR($0300); {$EXTERNALSYM SDP_ERROR_SERVER_BAD_FORMAT} /// /// SDP was unable to send a continued query back to the server /// SDP_ERROR_COULD_NOT_SEND_CONTINUE = SDP_ERROR($0400); {$EXTERNALSYM SDP_ERROR_COULD_NOT_SEND_CONTINUE} /// /// Server sent a response that was too large to fit in the caller's buffer. /// SDP_ERROR_RESPONSE_TOO_LARGE = SDP_ERROR($0500); {$EXTERNALSYM SDP_ERROR_RESPONSE_TOO_LARGE} SDP_ATTRIB_RECORD_HANDLE = $0000; {$EXTERNALSYM SDP_ATTRIB_RECORD_HANDLE} SDP_ATTRIB_CLASS_ID_LIST = $0001; {$EXTERNALSYM SDP_ATTRIB_CLASS_ID_LIST} SDP_ATTRIB_RECORD_STATE = $0002; {$EXTERNALSYM SDP_ATTRIB_RECORD_STATE} SDP_ATTRIB_SERVICE_ID = $0003; {$EXTERNALSYM SDP_ATTRIB_SERVICE_ID} SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST = $0004; {$EXTERNALSYM SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST} SDP_ATTRIB_BROWSE_GROUP_LIST = $0005; {$EXTERNALSYM SDP_ATTRIB_BROWSE_GROUP_LIST} SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST = $0006; {$EXTERNALSYM SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST} SDP_ATTRIB_INFO_TIME_TO_LIVE = $0007; {$EXTERNALSYM SDP_ATTRIB_INFO_TIME_TO_LIVE} SDP_ATTRIB_AVAILABILITY = $0008; {$EXTERNALSYM SDP_ATTRIB_AVAILABILITY} SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST = $0009; {$EXTERNALSYM SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST} SDP_ATTRIB_DOCUMENTATION_URL = $000A; {$EXTERNALSYM SDP_ATTRIB_DOCUMENTATION_URL} SDP_ATTRIB_CLIENT_EXECUTABLE_URL = $000B; {$EXTERNALSYM SDP_ATTRIB_CLIENT_EXECUTABLE_URL} SDP_ATTRIB_ICON_URL = $000C; {$EXTERNALSYM SDP_ATTRIB_ICON_URL} SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST = $000D; {$EXTERNALSYM SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST} // // Attribute IDs in the range of 0x000D - 0x01FF are reserved for future use // const SDP_ATTRIB_PROFILE_SPECIFIC = $0200; {$EXTERNALSYM SDP_ATTRIB_PROFILE_SPECIFIC} LANG_BASE_LANGUAGE_INDEX = $0000; {$EXTERNALSYM LANG_BASE_LANGUAGE_INDEX} LANG_BASE_ENCODING_INDEX = $0001; {$EXTERNALSYM LANG_BASE_ENCODING_INDEX} LANG_BASE_OFFSET_INDEX = $0002; {$EXTERNALSYM LANG_BASE_OFFSET_INDEX} LANG_DEFAULT_ID = $0100; {$EXTERNALSYM LANG_DEFAULT_ID} STRING_NAME_OFFSET = $0000; {$EXTERNALSYM STRING_NAME_OFFSET} STRING_DESCRIPTION_OFFSET = $0001; {$EXTERNALSYM STRING_DESCRIPTION_OFFSET} STRING_PROVIDER_NAME_OFFSET = $0002; {$EXTERNALSYM STRING_PROVIDER_NAME_OFFSET} SDP_ATTRIB_SDP_VERSION_NUMBER_LIST = $0200; {$EXTERNALSYM SDP_ATTRIB_SDP_VERSION_NUMBER_LIST} SDP_ATTRIB_SDP_DATABASE_STATE = $0201; {$EXTERNALSYM SDP_ATTRIB_SDP_DATABASE_STATE} SDP_ATTRIB_BROWSE_GROUP_ID = $0200; {$EXTERNALSYM SDP_ATTRIB_BROWSE_GROUP_ID} SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK = $0301; {$EXTERNALSYM SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK} SDP_ATTRIB_FAX_CLASS_1_SUPPORT = $0302; {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_1_SUPPORT} SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT = $0303; {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT} SDP_ATTRIB_FAX_CLASS_2_SUPPORT = $0304; {$EXTERNALSYM SDP_ATTRIB_FAX_CLASS_2_SUPPORT} SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT = $0305; {$EXTERNALSYM SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT} SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL = $0302; {$EXTERNALSYM SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL} SDP_ATTRIB_LAN_LPSUBNET = $0200; {$EXTERNALSYM SDP_ATTRIB_LAN_LPSUBNET} SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST = $0303; {$EXTERNALSYM SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST} SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST = $0301; {$EXTERNALSYM SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST} // this is in the assigned numbers doc, but it does not show up in any profile const SDP_ATTRIB_SERVICE_VERSION = $0300; {$EXTERNALSYM SDP_ATTRIB_SERVICE_VERSION} SDP_ATTRIB_PAN_NETWORK_ADDRESS = $0306; {$EXTERNALSYM SDP_ATTRIB_PAN_NETWORK_ADDRESS} SDP_ATTRIB_PAN_WAP_GATEWAY = $0307; {$EXTERNALSYM SDP_ATTRIB_PAN_WAP_GATEWAY} SDP_ATTRIB_PAN_HOME_PAGE_URL = $0308; {$EXTERNALSYM SDP_ATTRIB_PAN_HOME_PAGE_URL} SDP_ATTRIB_PAN_WAP_STACK_TYPE = $0309; {$EXTERNALSYM SDP_ATTRIB_PAN_WAP_STACK_TYPE} SDP_ATTRIB_PAN_SECURITY_DESCRIPTION = $030A; {$EXTERNALSYM SDP_ATTRIB_PAN_SECURITY_DESCRIPTION} SDP_ATTRIB_PAN_NET_ACCESS_TYPE = $030B; {$EXTERNALSYM SDP_ATTRIB_PAN_NET_ACCESS_TYPE} SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE = $030C; {$EXTERNALSYM SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE} SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES = $0310; {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES} SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES = $0311; {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES} SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS = $0312; {$EXTERNALSYM SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS} SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY = $0313; {$EXTERNALSYM SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY} SDP_ATTRIB_DI_SPECIFICATION_ID = $0200; {$EXTERNALSYM SDP_ATTRIB_DI_SPECIFICATION_ID} SDP_ATTRIB_DI_VENDOR_ID = $0201; {$EXTERNALSYM SDP_ATTRIB_DI_VENDOR_ID} SDP_ATTRIB_DI_PRODUCT_ID = $0202; {$EXTERNALSYM SDP_ATTRIB_DI_PRODUCT_ID} SDP_ATTRIB_DI_VERSION = $0203; {$EXTERNALSYM SDP_ATTRIB_DI_VERSION} SDP_ATTRIB_DI_PRIMARY_RECORD = $0204; {$EXTERNALSYM SDP_ATTRIB_DI_PRIMARY_RECORD} SDP_ATTRIB_DI_VENDOR_ID_SOURCE = $0205; {$EXTERNALSYM SDP_ATTRIB_DI_VENDOR_ID_SOURCE} SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER = $0200; {$EXTERNALSYM SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER} SDP_ATTRIB_HID_PARSER_VERSION = $0201; {$EXTERNALSYM SDP_ATTRIB_HID_PARSER_VERSION} SDP_ATTRIB_HID_DEVICE_SUBCLASS = $0202; {$EXTERNALSYM SDP_ATTRIB_HID_DEVICE_SUBCLASS} SDP_ATTRIB_HID_COUNTRY_CODE = $0203; {$EXTERNALSYM SDP_ATTRIB_HID_COUNTRY_CODE} SDP_ATTRIB_HID_VIRTUAL_CABLE = $0204; {$EXTERNALSYM SDP_ATTRIB_HID_VIRTUAL_CABLE} SDP_ATTRIB_HID_RECONNECT_INITIATE = $0205; {$EXTERNALSYM SDP_ATTRIB_HID_RECONNECT_INITIATE} SDP_ATTRIB_HID_DESCRIPTOR_LIST = $0206; {$EXTERNALSYM SDP_ATTRIB_HID_DESCRIPTOR_LIST} SDP_ATTRIB_HID_LANG_ID_BASE_LIST = $0207; {$EXTERNALSYM SDP_ATTRIB_HID_LANG_ID_BASE_LIST} SDP_ATTRIB_HID_SDP_DISABLE = $0208; {$EXTERNALSYM SDP_ATTRIB_HID_SDP_DISABLE} SDP_ATTRIB_HID_BATTERY_POWER = $0209; {$EXTERNALSYM SDP_ATTRIB_HID_BATTERY_POWER} SDP_ATTRIB_HID_REMOTE_WAKE = $020A; {$EXTERNALSYM SDP_ATTRIB_HID_REMOTE_WAKE} SDP_ATTRIB_HID_REPORT_LIST = $020B; {$EXTERNALSYM SDP_ATTRIB_HID_REPORT_LIST} SDP_ATTRIB_HID_SUPERVISION_TIMEOUT = $020C; {$EXTERNALSYM SDP_ATTRIB_HID_SUPERVISION_TIMEOUT} SDP_ATTRIB_HID_NORMALLY_CONNECTABLE = $020D; {$EXTERNALSYM SDP_ATTRIB_HID_NORMALLY_CONNECTABLE} SDP_ATTRIB_HID_BOOT_DEVICE = $020E; {$EXTERNALSYM SDP_ATTRIB_HID_BOOT_DEVICE} // // Profile specific values // CORDLESS_EXTERNAL_NETWORK_PSTN = $01; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_PSTN} CORDLESS_EXTERNAL_NETWORK_ISDN = $02; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_ISDN} CORDLESS_EXTERNAL_NETWORK_GSM = $03; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_GSM} CORDLESS_EXTERNAL_NETWORK_CDMA = $04; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_CDMA} CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR = $05; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR} CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED = $06; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED} CORDLESS_EXTERNAL_NETWORK_OTHER = $07; {$EXTERNALSYM CORDLESS_EXTERNAL_NETWORK_OTHER} OBJECT_PUSH_FORMAT_VCARD_2_1 = $01; {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCARD_2_1} OBJECT_PUSH_FORMAT_VCARD_3_0 = $02; {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCARD_3_0} OBJECT_PUSH_FORMAT_VCAL_1_0 = $03; {$EXTERNALSYM OBJECT_PUSH_FORMAT_VCAL_1_0} OBJECT_PUSH_FORMAT_ICAL_2_0 = $04; {$EXTERNALSYM OBJECT_PUSH_FORMAT_ICAL_2_0} OBJECT_PUSH_FORMAT_VNOTE = $05; {$EXTERNALSYM OBJECT_PUSH_FORMAT_VNOTE} OBJECT_PUSH_FORMAT_VMESSAGE = $06; {$EXTERNALSYM OBJECT_PUSH_FORMAT_VMESSAGE} OBJECT_PUSH_FORMAT_ANY = $FF; {$EXTERNALSYM OBJECT_PUSH_FORMAT_ANY} SYNCH_DATA_STORE_PHONEBOOK = $01; {$EXTERNALSYM SYNCH_DATA_STORE_PHONEBOOK} SYNCH_DATA_STORE_CALENDAR = $03; {$EXTERNALSYM SYNCH_DATA_STORE_CALENDAR} SYNCH_DATA_STORE_NOTES = $05; {$EXTERNALSYM SYNCH_DATA_STORE_NOTES} SYNCH_DATA_STORE_MESSAGES = $06; {$EXTERNALSYM SYNCH_DATA_STORE_MESSAGES} DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG = $0001; {$EXTERNALSYM DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG} DI_VENDOR_ID_SOURCE_USB_IF = $0002; {$EXTERNALSYM DI_VENDOR_ID_SOURCE_USB_IF} PSM_SDP = $0001; {$EXTERNALSYM PSM_SDP} PSM_RFCOMM = $0003; {$EXTERNALSYM PSM_RFCOMM} PSM_TCS_BIN = $0005; {$EXTERNALSYM PSM_TCS_BIN} PSM_TCS_BIN_CORDLESS = $0007; {$EXTERNALSYM PSM_TCS_BIN_CORDLESS} PSM_BNEP = $000; {$EXTERNALSYM PSM_BNEP} PSM_HID_CONTROL = $0011; {$EXTERNALSYM PSM_HID_CONTROL} PSM_HID_INTERRUPT = $0013; {$EXTERNALSYM PSM_HID_INTERRUPT} PSM_AVCTP = $0017; {$EXTERNALSYM PSM_AVCTP} PSM_AVDTP = $0019; {$EXTERNALSYM PSM_AVDTP} PSM_UDI_C_PLANE = $001D; {$EXTERNALSYM PSM_UDI_C_PLANE} // // Strings // const STR_ADDR_FMTA = '(%02x:%02x:%02x:%02x:%02x:%02x)'; {$EXTERNALSYM STR_ADDR_FMTA} STR_ADDR_FMTW = '(%02x:%02x:%02x:%02x:%02x:%02x)'; {$EXTERNALSYM STR_ADDR_FMTW} STR_ADDR_SHORT_FMTA = '%04x%08x'; {$EXTERNALSYM STR_ADDR_SHORT_FMTA} STR_ADDR_SHORT_FMTW = '%04x%08x'; {$EXTERNALSYM STR_ADDR_SHORT_FMTW} {$IFDEF UNICODE} STR_ADDR_FMT = STR_ADDR_FMTW; {$EXTERNALSYM STR_ADDR_FMT} STR_ADDR_SHORT_FMT = STR_ADDR_SHORT_FMTW; {$EXTERNALSYM STR_ADDR_SHORT_FMT} {$ELSE} STR_ADDR_FMT = STR_ADDR_FMTA; {$EXTERNALSYM STR_ADDR_FMT} STR_ADDR_SHORT_FMT = STR_ADDR_SHORT_FMTA; {$EXTERNALSYM STR_ADDR_SHORT_FMT} {$ENDIF UNICODE} function GET_BITS(Field, Offset, Mask: Integer): Integer; {$EXTERNALSYM GET_BITS} function GET_BIT(Field, Offset: Integer): Integer; {$EXTERNALSYM GET_BIT} function LMP_3_SLOT_PACKETS(X: Integer): Integer; {$EXTERNALSYM LMP_3_SLOT_PACKETS} function LMP_5_SLOT_PACKETS(X: Integer): Integer; {$EXTERNALSYM LMP_5_SLOT_PACKETS} function LMP_ENCRYPTION(X: Integer): Integer; {$EXTERNALSYM LMP_ENCRYPTION} function LMP_SLOT_OFFSET(X: Integer): Integer; {$EXTERNALSYM LMP_SLOT_OFFSET} function LMP_TIMING_ACCURACY(X: Integer): Integer; {$EXTERNALSYM LMP_TIMING_ACCURACY} function LMP_SWITCH(X: Integer): Integer; {$EXTERNALSYM LMP_SWITCH} function LMP_HOLD_MODE(X: Integer): Integer; {$EXTERNALSYM LMP_HOLD_MODE} function LMP_SNIFF_MODE(X: Integer): Integer; {$EXTERNALSYM LMP_SNIFF_MODE} function LMP_PARK_MODE(X: Integer): Integer; {$EXTERNALSYM LMP_PARK_MODE} function LMP_RSSI(X: Integer): Integer; {$EXTERNALSYM LMP_RSSI} function LMP_CHANNEL_QUALITY_DRIVEN_MODE(X: Integer): Integer; {$EXTERNALSYM LMP_CHANNEL_QUALITY_DRIVEN_MODE} function LMP_SCO_LINK(X: Integer): Integer; {$EXTERNALSYM LMP_SCO_LINK} function LMP_HV2_PACKETS(X: Integer): Integer; {$EXTERNALSYM LMP_HV2_PACKETS} function LMP_HV3_PACKETS(X: Integer): Integer; {$EXTERNALSYM LMP_HV3_PACKETS} function LMP_MU_LAW_LOG(X: Integer): Integer; {$EXTERNALSYM LMP_MU_LAW_LOG} function LMP_A_LAW_LOG(X: Integer): Integer; {$EXTERNALSYM LMP_A_LAW_LOG} function LMP_CVSD(X: Integer): Integer; {$EXTERNALSYM LMP_CVSD} function LMP_PAGING_SCHEME(X: Integer): Integer; {$EXTERNALSYM LMP_PAGING_SCHEME} function LMP_POWER_CONTROL(X: Integer): Integer; {$EXTERNALSYM LMP_POWER_CONTROL} function LMP_TRANSPARENT_SCO_DATA(X: Integer): Integer; {$EXTERNALSYM LMP_TRANSPARENT_SCO_DATA} function LMP_FLOW_CONTROL_LAG(X: Integer): Integer; {$EXTERNALSYM LMP_FLOW_CONTROL_LAG} {$ENDIF JWA_IMPLEMENTATIONSECTION} {$IFNDEF JWA_OMIT_SECTIONS} implementation //uses ... {$ENDIF JWA_OMIT_SECTIONS} {$IFNDEF JWA_INTERFACESECTION} function GET_NAP(_bth_addr: BTH_ADDR): Word; begin Result := ((_bth_addr and NAP_MASK) shr NAP_BIT_OFFSET); end; function GET_SAP(_bth_addr: BTH_ADDR): ULONG; begin Result := ((_bth_addr and SAP_MASK) shr SAP_BIT_OFFSET); end; function SET_NAP(_nap: Word): Int64; begin Result := (_nap shl NAP_BIT_OFFSET); end; function SET_SAP(_sap: ULONG): Int64; begin Result := (_sap shl SAP_BIT_OFFSET); end; function SET_NAP_SAP(_nap, _sap: Word): Int64; begin Result := (SET_NAP(_nap) or SET_SAP(_sap)); end; function GET_COD_LAN_MINOR(_cod: DWORD): DWORD; begin Result := ((_cod and COD_LAN_MINOR_MASK) shr COD_MINOR_BIT_OFFSET); end; function GET_COD_LAN_ACCESS(_cod: DWORD): DWORD; begin Result := ((_cod and COD_LAN_ACCESS_MASK) shr COD_LAN_ACCESS_BIT_OFFSET); end; function BTH_ERROR(_btStatus: BTHSTATUS): BOOL; begin Result := _btStatus <> BTH_ERROR_SUCCESS; end; function BTH_SUCCESS(_btStatus: BTHSTATUS): BOOL; begin Result := _btStatus = BTH_ERROR_SUCCESS; end; function GET_BITS(Field, Offset, Mask: Integer): Integer; begin Result := (Field shr Offset) and Mask; end; function GET_BIT(field,offset: Integer): Integer; begin Result := GET_BITS(Field, Offset, $1); end; function LMP_3_SLOT_PACKETS(X: Integer): Integer; begin Result := GET_BIT(x, 0); end; function LMP_5_SLOT_PACKETS(X: Integer): Integer; begin Result := GET_BIT(x, 1); end; function LMP_ENCRYPTION(X: Integer): Integer; begin Result := GET_BIT(x, 2); end; function LMP_SLOT_OFFSET(X: Integer): Integer; begin Result := GET_BIT(x, 3); end; function LMP_TIMING_ACCURACY(X: Integer): Integer; begin Result := GET_BIT(x, 4); end; function LMP_SWITCH(X: Integer): Integer; begin Result := GET_BIT(x, 5); end; function LMP_HOLD_MODE(X: Integer): Integer; begin Result := GET_BIT(x, 6); end; function LMP_SNIFF_MODE(X: Integer): Integer; begin Result := GET_BIT(x, 7); end; function LMP_PARK_MODE(X: Integer): Integer; begin Result := GET_BIT(x, 8); end; function LMP_RSSI(X: Integer): Integer; begin Result := GET_BIT(x, 9); end; function LMP_CHANNEL_QUALITY_DRIVEN_MODE(X: Integer): Integer; begin Result := GET_BIT(x, 10); end; function LMP_SCO_LINK(X: Integer): Integer; begin Result := GET_BIT(x, 11); end; function LMP_HV2_PACKETS(X: Integer): Integer; begin Result := GET_BIT(x, 12); end; function LMP_HV3_PACKETS(X: Integer): Integer; begin Result := GET_BIT(x, 13); end; function LMP_MU_LAW_LOG(X: Integer): Integer; begin Result := GET_BIT(x, 14); end; function LMP_A_LAW_LOG(X: Integer): Integer; begin Result := GET_BIT(x, 15); end; function LMP_CVSD(X: Integer): Integer; begin Result := GET_BIT(x, 16); end; function LMP_PAGING_SCHEME(X: Integer): Integer; begin Result := GET_BIT(x, 17); end; function LMP_POWER_CONTROL(X: Integer): Integer; begin Result := GET_BIT(x, 18); end; function LMP_TRANSPARENT_SCO_DATA(X: Integer): Integer; begin Result := GET_BIT(x, 19); end; function LMP_FLOW_CONTROL_LAG(X: Integer): Integer; begin Result := GET_BITS(x, 20, $3); end; function GET_COD_FORMAT(_cod: BTH_COD): BTH_COD; begin Result := (_cod and COD_FORMAT_MASK) shr COD_FORMAT_BIT_OFFSET; end; function GET_COD_MINOR(_cod: BTH_COD): BTH_COD; begin Result := (_cod and COD_MINOR_MASK) shr COD_MINOR_BIT_OFFSET; end; function GET_COD_MAJOR(_cod: BTH_COD): BTH_COD; begin Result := (_cod and COD_MAJOR_MASK) shr COD_MAJOR_BIT_OFFSET; end; function GET_COD_SERVICE(_cod: BTH_COD): BTH_COD; begin Result := (_cod and COD_SERVICE_MASK) shr COD_SERVICE_BIT_OFFSET; end; procedure SET_COD_MINOR(var _cod: BTH_COD; _minor: BTH_COD); begin _cod := (_cod and not COD_MINOR_MASK) or (_minor shl COD_MINOR_BIT_OFFSET); end; procedure SET_COD_MAJOR(var _cod: BTH_COD; _major: BTH_COD); begin _cod := (_cod and not COD_MAJOR_MASK) or (_major shl COD_MAJOR_BIT_OFFSET); end; procedure SET_COD_SERVICE(var _cod: BTH_COD; _service: BTH_COD); begin _cod := (_cod and not COD_SERVICE_MASK) or (_service shl COD_SERVICE_BIT_OFFSET); end; {$ENDIF JWA_INTERFACESECTION} {$IFNDEF JWA_OMIT_SECTIONS} end. {$ENDIF JWA_OMIT_SECTIONS}