mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 06:01:39 +01:00 
			
		
		
		
	* Update IDF to 65acd99 * Update platformio and arduino build paths and libs * Update esptool binaries
		
			
				
	
	
		
			112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2015 The Android Open Source Project
 | |
|  *
 | |
|  * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 | |
|  *
 | |
|  * Unless required by applicable law or agreed to in writing, software
 | |
|  * distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  * See the License for the specific language governing permissions and
 | |
|  * limitations under the License.
 | |
|  */
 | |
| 
 | |
| #ifndef __BT_SDP_H__
 | |
| #define __BT_SDP_H__
 | |
| 
 | |
| #include <stdint.h>
 | |
| // #include "bluetooth.h"
 | |
| #include "bt_defs.h"
 | |
| 
 | |
| #define SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH 15
 | |
| 
 | |
| /**
 | |
|  * These events are handled by the state machine
 | |
|  */
 | |
| typedef enum {
 | |
|     SDP_TYPE_RAW,        // Used to carry raw SDP search data for unknown UUIDs
 | |
|     SDP_TYPE_MAP_MAS,    // Message Access Profile - Server
 | |
|     SDP_TYPE_MAP_MNS,    // Message Access Profile - Client (Notification Server)
 | |
|     SDP_TYPE_PBAP_PSE,   // Phone Book Profile - Server
 | |
|     SDP_TYPE_PBAP_PCE,   // Phone Book Profile - Client
 | |
|     SDP_TYPE_OPP_SERVER, // Object Push Profile
 | |
|     SDP_TYPE_SAP_SERVER  // SIM Access Profile
 | |
| } bluetooth_sdp_types;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_hdr {
 | |
|     bluetooth_sdp_types type;
 | |
|     bt_uuid_t   uuid;
 | |
|     uint32_t    service_name_length;
 | |
|     char       *service_name;
 | |
|     int32_t     rfcomm_channel_number;
 | |
|     int32_t     l2cap_psm;
 | |
|     int32_t     profile_version;
 | |
| } bluetooth_sdp_hdr;
 | |
| 
 | |
| /**
 | |
|  * Some signals need additional pointers, hence we introduce a
 | |
|  * generic way to handle these pointers.
 | |
|  */
 | |
| typedef struct _bluetooth_sdp_hdr_overlay {
 | |
|     bluetooth_sdp_types type;
 | |
|     bt_uuid_t   uuid;
 | |
|     uint32_t    service_name_length;
 | |
|     char       *service_name;
 | |
|     int32_t     rfcomm_channel_number;
 | |
|     int32_t     l2cap_psm;
 | |
|     int32_t     profile_version;
 | |
| 
 | |
|     // User pointers, only used for some signals - see bluetooth_sdp_ops_record
 | |
|     int         user1_ptr_len;
 | |
|     uint8_t    *user1_ptr;
 | |
|     int         user2_ptr_len;
 | |
|     uint8_t    *user2_ptr;
 | |
| } bluetooth_sdp_hdr_overlay;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_mas_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
|     uint32_t    mas_instance_id;
 | |
|     uint32_t    supported_features;
 | |
|     uint32_t    supported_message_types;
 | |
| } bluetooth_sdp_mas_record;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_mns_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
|     uint32_t    supported_features;
 | |
| } bluetooth_sdp_mns_record;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_pse_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
|     uint32_t    supported_features;
 | |
|     uint32_t    supported_repositories;
 | |
| } bluetooth_sdp_pse_record;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_pce_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
| } bluetooth_sdp_pce_record;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_ops_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
|     int         supported_formats_list_len;
 | |
|     uint8_t     supported_formats_list[SDP_OPP_SUPPORTED_FORMATS_MAX_LENGTH];
 | |
| } bluetooth_sdp_ops_record;
 | |
| 
 | |
| typedef struct _bluetooth_sdp_sap_record {
 | |
|     bluetooth_sdp_hdr_overlay hdr;
 | |
| } bluetooth_sdp_sap_record;
 | |
| 
 | |
| typedef union {
 | |
|     bluetooth_sdp_hdr_overlay   hdr;
 | |
|     bluetooth_sdp_mas_record    mas;
 | |
|     bluetooth_sdp_mns_record    mns;
 | |
|     bluetooth_sdp_pse_record    pse;
 | |
|     bluetooth_sdp_pce_record    pce;
 | |
|     bluetooth_sdp_ops_record    ops;
 | |
|     bluetooth_sdp_sap_record    sap;
 | |
| } bluetooth_sdp_record;
 | |
| 
 | |
| #endif /* __BT_SDP_H__ */
 |