mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-30 07:21:20 +00:00
add de_get_uuid32
This commit is contained in:
parent
f61ec82363
commit
834f893558
@ -109,20 +109,22 @@ typedef enum {
|
||||
#define SDP_OBEXFileTypeAny 0xFF
|
||||
|
||||
// MARK: DateElement
|
||||
void de_dump_data_element(uint8_t * record);
|
||||
int de_get_len(uint8_t *header);
|
||||
void de_dump_data_element(uint8_t * record);
|
||||
int de_get_len(uint8_t *header);
|
||||
de_size_t de_get_size_type(uint8_t *header);
|
||||
de_type_t de_get_element_type(uint8_t *header);
|
||||
int de_get_header_size(uint8_t * header);
|
||||
void de_create_sequence(uint8_t *header);
|
||||
void de_store_descriptor_with_len(uint8_t * header, de_type_t type, de_size_t size, uint32_t len);
|
||||
int de_get_header_size(uint8_t * header);
|
||||
void de_create_sequence(uint8_t *header);
|
||||
void de_store_descriptor_with_len(uint8_t * header, de_type_t type, de_size_t size, uint32_t len);
|
||||
uint8_t * de_push_sequence(uint8_t *header);
|
||||
void de_pop_sequence(uint8_t * parent, uint8_t * child);
|
||||
void de_add_number(uint8_t *seq, de_type_t type, de_size_t size, uint32_t value);
|
||||
void de_add_data( uint8_t *seq, de_type_t type, uint16_t size, uint8_t *data);
|
||||
void de_pop_sequence(uint8_t * parent, uint8_t * child);
|
||||
void de_add_number(uint8_t *seq, de_type_t type, de_size_t size, uint32_t value);
|
||||
void de_add_data( uint8_t *seq, de_type_t type, uint16_t size, uint8_t *data);
|
||||
|
||||
int de_get_data_size(uint8_t * header);
|
||||
void de_add_uuid128(uint8_t * seq, uint8_t * uuid);
|
||||
int de_get_data_size(uint8_t * header);
|
||||
void de_add_uuid128(uint8_t * seq, uint8_t * uuid);
|
||||
uint32_t de_get_uuid32(uint8_t * element);
|
||||
int de_get_normalized_uuid(uint8_t *uuid128, uint8_t *element);
|
||||
|
||||
// MARK: SDP
|
||||
uint16_t sdp_append_attributes_in_attributeIDList(uint8_t *record, uint8_t *attributeIDList, uint16_t startOffset, uint16_t maxBytes, uint8_t *buffer);
|
||||
@ -134,6 +136,7 @@ int sdp_filter_attributes_in_attributeIDList(uint8_t *record, uint8_t *att
|
||||
|
||||
void sdp_create_spp_service(uint8_t *service, int service_id, const char *name);
|
||||
void sdp_normalize_uuid(uint8_t *uuid, uint32_t shortUUID);
|
||||
int sdp_has_blueooth_base_uuid(uint8_t * uuid128);
|
||||
|
||||
#if defined __cplusplus
|
||||
}
|
||||
|
@ -67,6 +67,10 @@ void sdp_normalize_uuid(uint8_t *uuid, uint32_t shortUUID){
|
||||
net_store_32(uuid, 0, shortUUID);
|
||||
}
|
||||
|
||||
int sdp_has_blueooth_base_uuid(uint8_t * uuid128){
|
||||
return memcmp(&uuid128[4], &sdp_bluetooth_base_uuid[4], 12) == 0;
|
||||
}
|
||||
|
||||
// MARK: DataElement getter
|
||||
de_size_t de_get_size_type(uint8_t *header){
|
||||
return (de_size_t) (header[0] & 7);
|
||||
@ -137,6 +141,16 @@ int de_get_normalized_uuid(uint8_t *uuid128, uint8_t *element){
|
||||
return 1;
|
||||
}
|
||||
|
||||
// @returns 0 if no UUID16 or UUID32 is present, and UUID32 otherwise
|
||||
uint32_t de_get_uuid32(uint8_t * element){
|
||||
uint8_t uuid128[16];
|
||||
int validUuid128 = de_get_normalized_uuid(uuid128, element);
|
||||
if (!validUuid128) return 0;
|
||||
int hasBlueoothBaseUuid = sdp_has_blueooth_base_uuid(uuid128);
|
||||
if (!hasBlueoothBaseUuid) return 0;
|
||||
return READ_NET_32(element, 0);
|
||||
}
|
||||
|
||||
// functions to create record
|
||||
static void de_store_descriptor(uint8_t * header, de_type_t type, de_size_t size){
|
||||
header[0] = (type << 3) | size;
|
||||
|
Loading…
x
Reference in New Issue
Block a user