bt_sdp_api.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #ifndef __BT_SDP_API_H__
  2. #define __BT_SDP_API_H__
  3. #include <stdint.h>
  4. #include "esp_err.h"
  5. #include "bt_api_common.h"
  6. #include "bta_sdp_api.h"
  7. #include "bt_sdp.h"
  8. #define BT_SDP_STAT_SUCCESS BTA_SDP_SUCCESS
  9. #define BT_SDP_STAT_FAILURE BTA_SDP_FAILURE
  10. #define BT_SDP_STAT_BUSY BTA_SDP_BUSY
  11. #define BT_SDP_ENABLE_EVT BTA_SDP_ENABLE_EVT
  12. #define BT_SDP_SEARCH_EVT BTA_SDP_SEARCH_EVT
  13. #define BT_SDP_SEARCH_COMP_EVT BTA_SDP_SEARCH_COMP_EVT
  14. #define BT_SDP_CREATE_RECORD_USER_EVT BTA_SDP_CREATE_RECORD_USER_EVT
  15. #define BT_SDP_REMOVE_RECORD_USER_EVT BTA_SDP_REMOVE_RECORD_USER_EVT
  16. #define BT_SDP_MAX_EVT BTA_SDP_MAX_EVT
  17. #define BT_SDP_MAX_RECORDS BTA_SDP_MAX_RECORDS
  18. typedef tBTA_SDP_STATUS bt_sdp_status_t;
  19. typedef tBTA_SDP_EVT bt_sdp_evt_t;
  20. typedef bluetooth_sdp_record bt_sdp_record_t;
  21. /* tBTA_SEARCH_COMP, bta_sdp_api.h */
  22. typedef struct {
  23. bt_sdp_status_t status;
  24. esp_bd_addr_t remote_addr;
  25. esp_bt_uuid_t uuid;
  26. int record_count;
  27. bt_sdp_record_t records[BT_SDP_MAX_RECORDS];
  28. } bt_sdp_search_comp_t;
  29. /* tBTA_SDP, bta_sdp_api.h */
  30. typedef union
  31. {
  32. bt_sdp_status_t status;
  33. bt_sdp_search_comp_t sdp_search_comp;
  34. } bt_sdp_t;
  35. typedef void (bt_sdp_cb_t)(bt_sdp_evt_t event, bt_sdp_t *p_data, void * user_data);
  36. esp_err_t esp_bt_sdp_enable(bt_sdp_cb_t *cback);
  37. esp_err_t esp_bt_sdp_search(esp_bd_addr_t bd_addr, esp_bt_uuid_t* uuid);
  38. esp_err_t esp_bt_sdp_create_record_by_user(void *user_data);
  39. esp_err_t esp_bt_sdp_remove_record_by_user(void *user_data);
  40. /**********************************************************************************************/
  41. /**********************************************************************************************/
  42. /* API into SDP for local service database updates
  43. * these APIs are indended to be called in callback function in the context of stack task,
  44. * to handle BT_SDP_CREATE_RECORD_USER_EVT and BT_SDP_REMOVE_RECORD_USER_EVT
  45. */
  46. /* This structure is used to add protocol lists and find protocol elements */
  47. #define ESP_BT_SDP_MAX_PROTOCOL_PARAMS SDP_MAX_PROTOCOL_PARAMS // bt_target.h
  48. typedef struct {
  49. uint16_t protocol_uuid;
  50. uint16_t num_params;
  51. uint16_t params[ESP_BT_SDP_MAX_PROTOCOL_PARAMS];
  52. } sdp_proto_elem_t; // tSDP_PROTOCOL_ELEM, sdp_api.h
  53. #define ESP_BT_SDP_MAX_LIST_ELEMS SDP_MAX_LIST_ELEMS // sdp_api.h
  54. typedef struct
  55. {
  56. uint16_t num_elems;
  57. sdp_proto_elem_t list_elem[ESP_BT_SDP_MAX_LIST_ELEMS];
  58. } sdp_proto_list_elem_t; // tSDP_PROTO_LIST_ELEM, sdp_api.h
  59. uint32_t esp_bt_sdp_create_record(void);
  60. bool esp_bt_sdp_delete_record(uint32_t handle);
  61. int32_t esp_bt_sdp_read_record(uint32_t handle, uint8_t *data, int32_t *data_len);
  62. bool esp_bt_sdp_add_attribute (uint32_t handle, uint16_t attr_id,
  63. uint8_t attr_type, uint32_t attr_len,
  64. uint8_t *p_val);
  65. bool esp_bt_sdp_add_sequence (uint32_t handle, uint16_t attr_id,
  66. uint16_t num_elem, uint8_t type[],
  67. uint8_t len[], uint8_t *p_val[]);
  68. bool esp_bt_sdp_add_uuid_sequence (uint32_t handle, uint16_t attr_id,
  69. uint16_t num_uuids, uint16_t *p_uuids);
  70. bool esp_bt_sdp_add_protocol_list (uint32_t handle, uint16_t num_elem,
  71. sdp_proto_elem_t *p_elem_list);
  72. bool esp_bt_sdp_add_addition_protocol_lists(uint32_t handle, uint16_t num_elem,
  73. sdp_proto_list_elem_t *p_proto_list);
  74. bool esp_bt_sdp_add_profile_dscp_list (uint32_t handle,
  75. uint16_t profile_uuid,
  76. uint16_t version);
  77. bool esp_bt_sdp_add_lang_base_attr_id_list(uint32_t handle,
  78. uint16_t lang, uint16_t char_enc,
  79. uint16_t base_id);
  80. bool esp_bt_sdp_add_service_class_id_list(uint32_t handle,
  81. uint16_t num_services,
  82. uint16_t *p_service_uuids);
  83. bool esp_bt_sdp_delete_attribute(uint32_t handle, uint16_t attr_id);
  84. /**********************************************************************************************/
  85. /**********************************************************************************************/
  86. #endif /* __BT_SDP_API_H__ */