166 #define BT_SDP_DATA_ELEMENT_TYPE_NIL 0x00 168 #define BT_SDP_DATA_ELEMENT_TYPE_UINT 0x08 171 #define BT_SDP_DATA_ELEMENT_TYPE_SINT 0x10 174 #define BT_SDP_DATA_ELEMENT_TYPE_UUID 0x18 177 #define BT_SDP_DATA_ELEMENT_TYPE_TEXT 0x20 180 #define BT_SDP_DATA_ELEMENT_TYPE_BOOL 0x28 182 #define BT_SDP_DATA_ELEMENT_TYPE_SEQ 0x30 185 #define BT_SDP_DATA_ELEMENT_TYPE_ALT 0x38 189 #define BT_SDP_DATA_ELEMENT_TYPE_URL 0x40 192 #define BT_SDP_DATA_ELEMENT_TYPE_MASK 0xf8 195 typedef uint8_t bt_sdp_data_element_size_t; 197 #define BT_SDP_DATA_ELEMENT_SIZE_1BYTE 0x00 199 #define BT_SDP_DATA_ELEMENT_SIZE_2BYTE 0x01 200 #define BT_SDP_DATA_ELEMENT_SIZE_4BYTE 0x02 201 #define BT_SDP_DATA_ELEMENT_SIZE_8BYTE 0x03 202 #define BT_SDP_DATA_ELEMENT_SIZE_16BYTE 0x04 203 #define BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_8BIT 0x05 205 #define BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_16BIT 0x06 207 #define BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_32BIT 0x07 209 #define BT_SDP_DATA_ELEMENT_SIZE_MASK 0x07 220 typedef uint16_t bt_sdp_attribute_id_t; 223 #define BT_SDP_ATTRIBUTE_ID_INVALID 0xFFFF 239 #define BT_SDP_ATTRIBUTE_ID_SERVICE_CLASS_ID_LIST 0x0001 249 #define BT_SDP_ATTRIBUTE_ID_SERVICE_RECORD_STATE 0x0002 250 #define BT_SDP_ATTRIBUTE_ID_SERVICE_ID 0x0003 251 #define BT_SDP_ATTRIBUTE_ID_PROTOCOL_DESC_LIST 0x0004 252 #define BT_SDP_ATTRIBUTE_ID_BROWSE_GROUP_LIST 0x0005 253 #define BT_SDP_ATTRIBUTE_ID_LANG_BASE_ID_LIST 0x0006 255 #define BT_SDP_ATTRIBUTE_ID_SERVICE_INFO_TIME_TO_LIVE 0x0007 256 #define BT_SDP_ATTRIBUTE_ID_SERVICE_AVAILABILITY 0x0008 257 #define BT_SDP_ATTRIBUTE_ID_BT_PROFILE_DESC_LIST 0x0009 258 #define BT_SDP_ATTRIBUTE_ID_DOC_URL 0x000a 259 #define BT_SDP_ATTRIBUTE_ID_CLIENT_EXEC_URL 0x000b 260 #define BT_SDP_ATTRIBUTE_ID_ICON_URL 0x000c 261 #define BT_SDP_ATTRIBUTE_ID_ADDITIONAL_PROT_DESC_LISTS 0x000d 268 #define BT_SDP_ATTRIBUTE_ID_SERVICE_NAME 0x0000 269 #define BT_SDP_ATTRIBUTE_ID_SERVICE_DESCRIPTION 0x0001 270 #define BT_SDP_ATTRIBUTE_ID_PROVIDER_NAME 0x0002 280 #define BT_SDP_ATTRIBUTE_ID_GROUP_ID 0x0200 288 #define BT_SDP_ATTRIBUTE_ID_VERSION_NUMBER_LIST 0x0200 289 #define BT_SDP_ATTRIBUTE_ID_SERVICE_DATABASE_STATE 0x0201 295 #define BT_SDP_ATTRIBUTE_ID_SUPPORTED_FEATURES 0x0311 300 #define BT_SDP_ATTRIBUTE_ID_SUPPORTED_REPOSITORIES 0x0314 313 #define BT_SDP_SERVICE_CLASS_SERVICE_DISCOVERY_SERVER 0x1000 318 #define BT_SDP_SERVICE_CLASS_BROWSE_GROUP_DESC 0x1001 323 #define BT_SDP_SERVICE_CLASS_PUBLIC_BROWSE_GROUP 0x1002 328 #define BT_SDP_SERVICE_CLASS_SERIAL_PORT 0x1101 333 #define BT_SDP_SERVICE_CLASS_OBEX_OBJECT_PUSH 0x1105 338 #define BT_SDP_SERVICE_CLASS_OBEX_FILE_TRANSFER 0x1106 344 #define BT_SDP_SERVICE_CLASS_HEADSET 0x1108 349 #define BT_SDP_SERVICE_CLASS_AUDIO_SOURCE 0x110A 354 #define BT_SDP_SERVICE_CLASS_AUDIO_SINK 0x110B 359 #define BT_SDP_SERVICE_CLASS_AV_REMOTE_CONTROL_TARGET 0x110C 364 #define BT_SDP_SERVICE_CLASS_AUDIO_DISTRIBUTION 0x110D 369 #define BT_SDP_SERVICE_CLASS_AV_REMOTE_CONTROL 0x110E 374 #define BT_SDP_SERVICE_CLASS_AV_REMOTE_CONTROL_CONTROL 0x110F 379 #define BT_SDP_SERVICE_CLASS_HEADSET_AUDIO_GATEWAY 0x1112 384 #define BT_SDP_SERVICE_CLASS_HANDSFREE 0x111E 389 #define BT_SDP_SERVICE_CLASS_HANDSFREE_AUDIO_GATEWAY 0x111F 394 #define BT_SDP_SERVICE_CLASS_HUMAN_INTERFACE_DEVICE 0x1124 400 #define BT_SDP_SERVICE_CLASS_SIM_ACCESS 0x112D 405 #define BT_SDP_SERVICE_CLASS_PBAP_CLIENT 0x112E 410 #define BT_SDP_SERVICE_CLASS_PBAP_SERVER 0x112F 415 #define BT_SDP_SERVICE_CLASS_PBAP 0x1130 420 #define BT_SDP_SERVICE_CLASS_HEADSET_HS 0x1131 425 #define BT_SDP_SERVICE_CLASS_GENERIC_AUDIO 0x1203 436 #define BT_SDP_INVALID_UUID 0xFFFF 438 #define BT_SDP_PROTOCOL_SDP 0x0001 440 #define BT_SDP_PROTOCOL_RFCOMM 0x0003 442 #define BT_SDP_PROTOCOL_ATT 0x0007 444 #define BT_SDP_PROTOCOL_OBEX 0x0008 446 #define BT_SDP_PROTOCOL_AVCTP 0x0017 448 #define BT_SDP_PROTOCOL_AVDTP 0x0019 450 #define BT_SDP_PROTOCOL_L2CAP 0x0100 465 #define BT_SDP_ATTRIBUTE(attribute_id, attribute) \ 480 #define BT_SDP_ATTRIBUTE_HEADER_8BIT(size) \ 481 BT_SDP_DATA_ELEMENT_TYPE_SEQ + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_8BIT, \ 494 #define BT_SDP_ATTRIBUTE_HEADER_16BIT(size) \ 495 BT_SDP_DATA_ELEMENT_TYPE_SEQ + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_16BIT, \ 496 (uint8_t)(((size) & 0xff00) >> 8), \ 497 (uint8_t)((size) & 0x00ff) 509 #define BT_SDP_ATTRIBUTE_HEADER_32BIT(size) \ 510 BT_SDP_DATA_ELEMENT_TYPE_SEQ + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_32BIT, \ 511 (uint8_t)(((size) & 0xff000000) >> 24), \ 512 (uint8_t)(((size) & 0x00ff0000) >> 16), \ 513 (uint8_t)(((size) & 0x0000ff00) >> 8), \ 514 (uint8_t)((size) & 0x000000ff) 523 #define BT_SDP_UUID_16BIT(uuid) \ 524 BT_SDP_DATA_ELEMENT_TYPE_UUID + BT_SDP_DATA_ELEMENT_SIZE_2BYTE, \ 525 (uint8_t)(((uuid) & 0xff00) >> 8), \ 526 (uint8_t)((uuid) & 0x00ff) 536 #define BT_SDP_UUID_32BIT(uuid) \ 537 BT_SDP_DATA_ELEMENT_TYPE_UUID + BT_SDP_DATA_ELEMENT_SIZE_4BYTE, \ 538 (uint8_t)(((uuid) & 0xff000000) >> 24), \ 539 (uint8_t)(((uuid) & 0x00ff0000) >> 16), \ 540 (uint8_t)(((uuid) & 0x0000ff00) >> 8), \ 541 (uint8_t)((uuid) & 0x000000ff) 553 #define BT_SDP_UUID_128BIT(uuid) \ 554 BT_SDP_DATA_ELEMENT_TYPE_UUID + BT_SDP_DATA_ELEMENT_SIZE_16BYTE, \ 564 #define BT_SDP_UINT_8BIT(uint) \ 565 BT_SDP_DATA_ELEMENT_TYPE_UINT + BT_SDP_DATA_ELEMENT_SIZE_1BYTE, \ 575 #define BT_SDP_UINT_16BIT(uint) \ 576 BT_SDP_DATA_ELEMENT_TYPE_UINT + BT_SDP_DATA_ELEMENT_SIZE_2BYTE, \ 577 (uint8_t)(((uint) & 0xff00) >> 8), \ 578 (uint8_t)((uint) & 0x00ff) 587 #define BT_SDP_UINT_32BIT(uint) \ 588 BT_SDP_DATA_ELEMENT_TYPE_UINT + BT_SDP_DATA_ELEMENT_SIZE_4BYTE, \ 589 (uint8_t)(((uint) & 0xff000000) >> 24), \ 590 (uint8_t)(((uint) & 0x00ff0000) >> 16), \ 591 (uint8_t)(((uint) & 0x0000ff00) >> 8), \ 592 (uint8_t)((uint) & 0x000000ff) 601 #define BT_SDP_UINT_64BIT(uint) \ 602 BT_SDP_DATA_ELEMENT_TYPE_UINT + BT_SDP_DATA_ELEMENT_SIZE_8BYTE, \ 612 #define BT_SDP_UINT_128BIT(uint) \ 613 BT_SDP_DATA_ELEMENT_TYPE_UINT + BT_SDP_DATA_ELEMENT_SIZE_16BYTE, \ 626 #define BT_SDP_TEXT_8BIT(size) \ 627 BT_SDP_DATA_ELEMENT_TYPE_TEXT + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_8BIT, \ 640 #define BT_SDP_TEXT_16BIT(size) \ 641 BT_SDP_DATA_ELEMENT_TYPE_TEXT + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_16BIT, \ 642 (uint8_t)(((size) & 0xff00) >> 8), \ 643 (uint8_t)((size) & 0x00ff) 655 #define BT_SDP_TEXT_32BIT(size) \ 656 BT_SDP_DATA_ELEMENT_TYPE_TEXT + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_32BIT, \ 657 (uint8_t)(((size) & 0xff000000) >> 24), \ 658 (uint8_t)(((size) & 0x00ff0000) >> 16), \ 659 (uint8_t)(((size) & 0x0000ff00) >> 8), \ 660 (uint8_t)((size) & 0x000000ff) 672 #define BT_SDP_URL_8BIT(size) \ 673 BT_SDP_DATA_ELEMENT_TYPE_URL + BT_SDP_DATA_ELEMENT_SIZE_ADDITIONAL_8BIT, \ 683 #define BT_SDP_BOOL(value) \ 684 BT_SDP_DATA_ELEMENT_TYPE_BOOL + BT_SDP_DATA_ELEMENT_SIZE_1BYTE, \ 701 uint16_t attribute_id;
703 const uint8_t *value;
710 uint16_t attribute_list_length;
uint8_t bt_sdp_data_element_type_t
Data elements begin with a single byte that contains both type and size information.
Definition: bt_sdp.h:164
uint8_t bt_sdps_get_customized_record(const bt_sdps_record_t ***record_list)
This is a user defined callback and called by the SDP.
uint16_t bt_sdp_service_class_id_t
The UUIDs associated with a specific service and profile.
Definition: bt_sdp.h:317
Defines the attribute list of the SDP record.
Definition: bt_sdp.h:718
Defines the attribute of the SDP record.
Definition: bt_sdp.h:709
uint16_t bt_sdp_protocol_uuid_t
The UUIDs associated with protocols.
Definition: bt_sdp.h:443