pan, pbap_client, rfcomm: prefix globals, update deinit function

This commit is contained in:
Matthias Ringwald 2021-07-21 12:12:21 +02:00
parent fb460ca00a
commit 41fcd84f30
3 changed files with 40 additions and 34 deletions

View File

@ -54,14 +54,14 @@
#include "classic/sdp_util.h"
#include "l2cap.h"
static const char default_panu_service_name[] = "Personal Ad-hoc User Service";
static const char default_panu_service_desc[] = "Personal Ad-hoc User Service";
static const char pan_default_panu_service_name[] = "Personal Ad-hoc User Service";
static const char pan_default_panu_service_desc[] = "Personal Ad-hoc User Service";
static const char default_nap_service_name[] = "Network Access Point Service";
static const char default_nap_service_desc[] = "Personal Ad-hoc Network Service which provides access to a network";
static const char pan_default_nap_service_name[] = "Network Access Point Service";
static const char pan_default_nap_service_desc[] = "Personal Ad-hoc Network Service which provides access to a network";
static const char default_gn_service_name[] = "Group Ad-hoc Network Service";
static const char default_gn_service_desc[] = "Personal Group Ad-hoc Network Service";
static const char pan_default_gn_service_name[] = "Group Ad-hoc Network Service";
static const char pan_default_gn_service_desc[] = "Personal Group Ad-hoc Network Service";
static void pan_create_service(uint8_t *service, uint32_t service_record_handle,
uint32_t service_uuid, uint16_t * network_packet_types, const char *name, const char *descriptor,
@ -156,13 +156,13 @@ static void pan_create_service(uint8_t *service, uint32_t service_record_handle,
} else {
switch (service_uuid){
case BLUETOOTH_SERVICE_CLASS_PANU:
de_add_data(service, DE_STRING, strlen(default_panu_service_name), (uint8_t *) default_panu_service_name);
de_add_data(service, DE_STRING, strlen(pan_default_panu_service_name), (uint8_t *) pan_default_panu_service_name);
break;
case BLUETOOTH_SERVICE_CLASS_NAP:
de_add_data(service, DE_STRING, strlen(default_nap_service_name), (uint8_t *) default_nap_service_name);
de_add_data(service, DE_STRING, strlen(pan_default_nap_service_name), (uint8_t *) pan_default_nap_service_name);
break;
case BLUETOOTH_SERVICE_CLASS_GN:
de_add_data(service, DE_STRING, strlen(default_gn_service_name), (uint8_t *) default_gn_service_name);
de_add_data(service, DE_STRING, strlen(pan_default_gn_service_name), (uint8_t *) pan_default_gn_service_name);
break;
default:
break;
@ -176,13 +176,13 @@ static void pan_create_service(uint8_t *service, uint32_t service_record_handle,
} else {
switch (service_uuid){
case BLUETOOTH_SERVICE_CLASS_PANU:
de_add_data(service, DE_STRING, strlen(default_panu_service_desc), (uint8_t *) default_panu_service_desc);
de_add_data(service, DE_STRING, strlen(pan_default_panu_service_desc), (uint8_t *) pan_default_panu_service_desc);
break;
case BLUETOOTH_SERVICE_CLASS_NAP:
de_add_data(service, DE_STRING, strlen(default_nap_service_desc), (uint8_t *) default_nap_service_desc);
de_add_data(service, DE_STRING, strlen(pan_default_nap_service_desc), (uint8_t *) pan_default_nap_service_desc);
break;
case BLUETOOTH_SERVICE_CLASS_GN:
de_add_data(service, DE_STRING, strlen(default_gn_service_desc), (uint8_t *) default_gn_service_desc);
de_add_data(service, DE_STRING, strlen(pan_default_gn_service_desc), (uint8_t *) pan_default_gn_service_desc);
break;
default:
break;

View File

@ -69,18 +69,6 @@ const char * pbap_vcard_entry_type = "x-bt/vcard";
const char * pbap_vcard_listing_name = "pb";
static uint32_t pbap_supported_features = \
PBAP_SUPPORTED_FEATURES_DOWNLOAD |
PBAP_SUPPORTED_FEATURES_BROWSING |
PBAP_SUPPORTED_FEATURES_DATABASE_IDENTIFIER |
PBAP_SUPPORTED_FEATURES_FOLDER_VERSION_COUNTERS |
PBAP_SUPPORTED_FEATURES_VCARD_SELECTING |
PBAP_SUPPORTED_FEATURES_ENHANCED_MISSED_CALLS |
PBAP_SUPPORTED_FEATURES_DEFAULT_CONTACT_IMAGE_FORMAT |
PBAP_SUPPORTED_FEATURES_X_BT_UCI_VCARD_PROPERTY |
PBAP_SUPPORTED_FEATURES_X_BT_UID_VCARD_PROPERTY |
PBAP_SUPPORTED_FEATURES_CONTACT_REFERENCING;
typedef enum {
PBAP_INIT = 0,
PBAP_W4_GOEP_CONNECTION,
@ -157,8 +145,10 @@ typedef struct pbap_client {
uint8_t flow_next_triggered;
} pbap_client_t;
static pbap_client_t _pbap_client;
static pbap_client_t * pbap_client = &_pbap_client;
static uint32_t pbap_client_supported_features;
static pbap_client_t pbap_client_singleton;
static pbap_client_t * pbap_client = &pbap_client_singleton;
static void pbap_client_emit_connected_event(pbap_client_t * context, uint8_t status){
uint8_t event[15];
@ -296,7 +286,7 @@ static void pbap_handle_can_send_now(void){
if (goep_client_get_pbap_supported_features(pbap_client->goep_cid) != PBAP_FEATURES_NOT_PRESENT){
application_parameters[0] = PBAP_APPLICATION_PARAMETER_PBAP_SUPPORTED_FEATURES;
application_parameters[1] = 4;
big_endian_store_32(application_parameters, 2, pbap_supported_features);
big_endian_store_32(application_parameters, 2, pbap_client_supported_features);
goep_client_header_add_application_parameters(pbap_client->goep_cid, &application_parameters[0], 6);
}
pbap_client->state = PBAP_W4_CONNECT_RESPONSE;
@ -716,7 +706,7 @@ static void pbap_packet_handler_goep(uint8_t *packet, uint16_t size){
}
}
pbap_client->state = PBAP_CONNECTED;
pbap_client->vcard_selector_supported = pbap_supported_features & goep_client_get_pbap_supported_features(pbap_client->goep_cid) & PBAP_SUPPORTED_FEATURES_VCARD_SELECTING;
pbap_client->vcard_selector_supported = pbap_client_supported_features & goep_client_get_pbap_supported_features(pbap_client->goep_cid) & PBAP_SUPPORTED_FEATURES_VCARD_SELECTING;
pbap_client_emit_connected_event(pbap_client, 0);
break;
case OBEX_RESP_UNAUTHORIZED:
@ -915,13 +905,29 @@ static void pbap_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *
}
}
void pbap_client_init(void){
memset(pbap_client, 0, sizeof(pbap_client_t));
static void pbap_client_reset_state(void) {
pbap_client_supported_features =
PBAP_SUPPORTED_FEATURES_DOWNLOAD |
PBAP_SUPPORTED_FEATURES_BROWSING |
PBAP_SUPPORTED_FEATURES_DATABASE_IDENTIFIER |
PBAP_SUPPORTED_FEATURES_FOLDER_VERSION_COUNTERS |
PBAP_SUPPORTED_FEATURES_VCARD_SELECTING |
PBAP_SUPPORTED_FEATURES_ENHANCED_MISSED_CALLS |
PBAP_SUPPORTED_FEATURES_DEFAULT_CONTACT_IMAGE_FORMAT |
PBAP_SUPPORTED_FEATURES_X_BT_UCI_VCARD_PROPERTY |
PBAP_SUPPORTED_FEATURES_X_BT_UID_VCARD_PROPERTY |
PBAP_SUPPORTED_FEATURES_CONTACT_REFERENCING;
pbap_client->state = PBAP_INIT;
pbap_client->cid = 1;
}
void pbap_client_init(void){
pbap_client_reset_state();
}
void pbap_client_deinit(void){
pbap_client_reset_state();
memset(pbap_client, 0, sizeof(pbap_client_t));
}
uint8_t pbap_connect(btstack_packet_handler_t handler, bd_addr_t addr, uint16_t * out_cid){

View File

@ -2188,10 +2188,6 @@ static void rfcomm_channel_state_machine_with_channel(rfcomm_channel_t *channel,
// MARK: RFCOMM BTstack API
void rfcomm_init(void){
rfcomm_client_cid_generator = 0;
rfcomm_multiplexers = NULL;
rfcomm_services = NULL;
rfcomm_channels = NULL;
rfcomm_security_level = gap_get_security_level();
#ifdef RFCOMM_USE_ERTM
rfcomm_ertm_id = 0;
@ -2199,6 +2195,10 @@ void rfcomm_init(void){
}
void rfcomm_deinit(void){
rfcomm_client_cid_generator = 0;
rfcomm_multiplexers = NULL;
rfcomm_services = NULL;
rfcomm_channels = NULL;
#ifdef RFCOMM_USE_ERTM
rfcomm_ertm_request_callback = NULL;
rfcomm_ertm_released_callback = NULL;