diff --git a/src/classic/avrcp_cover_art_client.c b/src/classic/avrcp_cover_art_client.c index 2764a1533..fd484ff37 100644 --- a/src/classic/avrcp_cover_art_client.c +++ b/src/classic/avrcp_cover_art_client.c @@ -163,7 +163,7 @@ static void avrcp_cover_art_client_parser_callback_connect(void * user_data, uin static void avrcp_cover_art_client_prepare_srm_header(avrcp_cover_art_client_t * cover_art_client){ if (cover_art_client->flow_control_enabled == false){ goep_client_header_add_srm_enable(cover_art_client->goep_cid); - cover_art_client->srm_state = SRM_W4_CONFIRM; + cover_art_client->srm_state = AVRCP_COVER_ART_SRM_W4_CONFIRM; } } @@ -176,30 +176,30 @@ static void avrcp_cover_art_client_handle_srm_headers(avrcp_cover_art_client_t * const avrcp_cover_art_obex_srm_t * obex_srm = &context->obex_srm; // Update SRM state based on SRM headers switch (context->srm_state){ - case SRM_W4_CONFIRM: + case AVRCP_COVER_ART_SRM_W4_CONFIRM: switch (obex_srm->srm_value){ case OBEX_SRM_ENABLE: switch (obex_srm->srmp_value){ case OBEX_SRMP_WAIT: - context->srm_state = SRM_ENABLED_BUT_WAITING; + context->srm_state = AVRCP_COVER_ART_SRM_ENABLED_BUT_WAITING; break; default: - context->srm_state = SRM_ENABLED; + context->srm_state = AVRCP_COVER_ART_SRM_ENABLED; break; } break; default: - context->srm_state = SRM_DISABLED; + context->srm_state = AVRCP_COVER_ART_SRM_DISABLED; break; } break; - case SRM_ENABLED_BUT_WAITING: + case AVRCP_COVER_ART_SRM_ENABLED_BUT_WAITING: switch (obex_srm->srmp_value){ case OBEX_SRMP_WAIT: - context->srm_state = SRM_ENABLED_BUT_WAITING; + context->srm_state = AVRCP_COVER_ART_SRM_ENABLED_BUT_WAITING; break; default: - context->srm_state = SRM_ENABLED; + context->srm_state = AVRCP_COVER_ART_SRM_ENABLED; break; } break; @@ -384,7 +384,7 @@ static void avrcp_cover_art_client_goep_data_handler(avrcp_cover_art_client_t * switch (op_info.response_code) { case OBEX_RESP_CONTINUE: avrcp_cover_art_client_handle_srm_headers(cover_art_client); - if (cover_art_client->srm_state == SRM_ENABLED) { + if (cover_art_client->srm_state == AVRCP_COVER_ART_SRM_ENABLED) { // prepare response avrcp_cover_art_client_prepare_get_operation(cover_art_client); break; diff --git a/src/classic/avrcp_cover_art_client.h b/src/classic/avrcp_cover_art_client.h index ea17dd10a..941815fc8 100644 --- a/src/classic/avrcp_cover_art_client.h +++ b/src/classic/avrcp_cover_art_client.h @@ -84,6 +84,13 @@ typedef struct { uint8_t srmp_value; } avrcp_cover_art_obex_srm_t; +typedef enum { + AVRCP_COVER_ART_SRM_DISABLED, + AVRCP_COVER_ART_SRM_W4_CONFIRM, + AVRCP_COVER_ART_SRM_ENABLED_BUT_WAITING, + AVRCP_COVER_ART_SRM_ENABLED +} avrcp_cover_art_srm_state_t; + typedef struct { btstack_linked_item_t item; @@ -114,7 +121,7 @@ typedef struct { // obex srm avrcp_cover_art_obex_srm_t obex_srm; - obex_srm_state_t srm_state; + avrcp_cover_art_srm_state_t srm_state; // request const char * object_type; diff --git a/src/classic/obex.h b/src/classic/obex.h index ef43bf58d..0deb54f9f 100644 --- a/src/classic/obex.h +++ b/src/classic/obex.h @@ -148,36 +148,5 @@ // PbapSupportedFeatures - 0x10 - 4 bytes #define PBAP_APPLICATION_PARAMETER_PBAP_SUPPORTED_FEATURES 0x10 -// OBEX related structs used by BTstack - -typedef enum { - SRM_DISABLED, - SRM_W4_CONFIRM, - SRM_ENABLED_BUT_WAITING, - SRM_ENABLED -} obex_srm_state_t; - -typedef enum { - OBEX_AUTH_PARSER_STATE_W4_TYPE = 0, - OBEX_AUTH_PARSER_STATE_W4_LEN, - OBEX_AUTH_PARSER_STATE_W4_VALUE, - OBEX_AUTH_PARSER_STATE_INVALID, -} obex_auth_parser_state_t; - -typedef struct { - // parsing - obex_auth_parser_state_t state; - uint8_t type; - uint8_t len; - uint8_t pos; - // data - uint8_t authentication_options; - uint16_t authentication_nonce[16]; -} obex_auth_parser_t; - -typedef struct { - uint8_t srm_value; - uint8_t srmp_value; -} obex_srm_t; #endif diff --git a/src/classic/pbap_client.c b/src/classic/pbap_client.c index f7e9e5f01..deb5cf4d0 100644 --- a/src/classic/pbap_client.c +++ b/src/classic/pbap_client.c @@ -261,11 +261,11 @@ static void pbap_client_phonebook_size_parser_process_data(pbap_client_phonebook } } -static void obex_auth_parser_init(obex_auth_parser_t * auth_parser){ - memset(auth_parser, 0, sizeof(obex_auth_parser_t)); +static void obex_auth_parser_init(pbap_client_obex_auth_parser_t * auth_parser){ + memset(auth_parser, 0, sizeof(pbap_client_obex_auth_parser_t)); } -static void obex_auth_parser_process_data(obex_auth_parser_t * auth_parser, const uint8_t * data_buffer, uint16_t data_len){ +static void obex_auth_parser_process_data(pbap_client_obex_auth_parser_t * auth_parser, const uint8_t * data_buffer, uint16_t data_len){ while (data_len){ uint16_t bytes_to_consume = 1; switch(auth_parser->state){ @@ -326,7 +326,7 @@ static void obex_auth_parser_process_data(obex_auth_parser_t * auth_parser, cons } } -static void obex_srm_init(obex_srm_t * obex_srm){ +static void obex_srm_init(pbap_client_obex_srm_t * obex_srm){ obex_srm->srm_value = OBEX_SRM_DISABLE; obex_srm->srmp_value = OBEX_SRMP_NEXT; } @@ -561,7 +561,7 @@ static void pbap_client_add_application_parameters(const pbap_client_t * client, static void pbap_client_prepare_srm_header(pbap_client_t * client){ if (!client->flow_control_enabled && goep_client_version_20_or_higher(client->goep_cid)){ goep_client_header_add_srm_enable(client->goep_cid); - client->srm_state = SRM_W4_CONFIRM; + client->srm_state = PBAP_CLIENT_SRM_W4_CONFIRM; } } @@ -792,33 +792,33 @@ static void pbap_handle_can_send_now(pbap_client_t *pbap_client) { } static void pbap_client_handle_srm_headers(pbap_client_t *client) { - const obex_srm_t * obex_srm = &client->obex_srm; + const pbap_client_obex_srm_t * obex_srm = &client->obex_srm; // Update SRM state based on SRM headers switch (client->srm_state){ - case SRM_W4_CONFIRM: + case PBAP_CLIENT_SRM_W4_CONFIRM: switch (obex_srm->srm_value){ case OBEX_SRM_ENABLE: switch (obex_srm->srmp_value){ case OBEX_SRMP_WAIT: - client->srm_state = SRM_ENABLED_BUT_WAITING; + client->srm_state = PBAP_CLIENT_SRM_ENABLED_BUT_WAITING; break; default: - client->srm_state = SRM_ENABLED; + client->srm_state = PBAP_CLIENT_SRM_ENABLED; break; } break; default: - client->srm_state = SRM_DISABLED; + client->srm_state = PBAP_CLIENT_SRM_DISABLED; break; } break; - case SRM_ENABLED_BUT_WAITING: + case PBAP_CLIENT_SRM_ENABLED_BUT_WAITING: switch (obex_srm->srmp_value){ case OBEX_SRMP_WAIT: - client->srm_state = SRM_ENABLED_BUT_WAITING; + client->srm_state = PBAP_CLIENT_SRM_ENABLED_BUT_WAITING; break; default: - client->srm_state = SRM_ENABLED; + client->srm_state = PBAP_CLIENT_SRM_ENABLED; break; } break; @@ -937,7 +937,7 @@ static void pbap_packet_handler_goep(pbap_client_t *client, uint8_t *packet, uin switch (op_info.response_code) { case OBEX_RESP_CONTINUE: pbap_client_handle_srm_headers(client); - if (client->srm_state == SRM_ENABLED) { + if (client->srm_state == PBAP_CLIENT_SRM_ENABLED) { // prepare response pbap_client_prepare_get_operation(client); break; @@ -980,7 +980,7 @@ static void pbap_packet_handler_goep(pbap_client_t *client, uint8_t *packet, uin case OBEX_RESP_CONTINUE: // handle continue pbap_client_handle_srm_headers(client); - if (client->srm_state == SRM_ENABLED) { + if (client->srm_state == PBAP_CLIENT_SRM_ENABLED) { // prepare response pbap_client_prepare_get_operation(client); break; @@ -1008,7 +1008,7 @@ static void pbap_packet_handler_goep(pbap_client_t *client, uint8_t *packet, uin switch (op_info.response_code) { case OBEX_RESP_CONTINUE: pbap_client_handle_srm_headers(client); - if (client->srm_state == SRM_ENABLED) { + if (client->srm_state == PBAP_CLIENT_SRM_ENABLED) { // prepare response pbap_client_prepare_get_operation(client); break; diff --git a/src/classic/pbap_client.h b/src/classic/pbap_client.h index b9c942f61..097f68807 100644 --- a/src/classic/pbap_client.h +++ b/src/classic/pbap_client.h @@ -109,6 +109,36 @@ typedef struct { uint8_t size_buffer[2]; } pbap_client_phonebook_size_parser_t; +typedef enum { + PBAP_CLIENT_SRM_DISABLED, + PBAP_CLIENT_SRM_W4_CONFIRM, + PBAP_CLIENT_SRM_ENABLED_BUT_WAITING, + PBAP_CLIENT_SRM_ENABLED +} pbap_client_obex_srm_state_t; + +typedef struct { + uint8_t srm_value; + uint8_t srmp_value; +} pbap_client_obex_srm_t; + +typedef enum { + OBEX_AUTH_PARSER_STATE_W4_TYPE = 0, + OBEX_AUTH_PARSER_STATE_W4_LEN, + OBEX_AUTH_PARSER_STATE_W4_VALUE, + OBEX_AUTH_PARSER_STATE_INVALID, +} pbap_client_obex_auth_parser_state_t; + +typedef struct { + // parsing + pbap_client_obex_auth_parser_state_t state; + uint8_t type; + uint8_t len; + uint8_t pos; + // data + uint8_t authentication_options; + uint16_t authentication_nonce[16]; +} pbap_client_obex_auth_parser_t; + typedef struct pbap_client { // pbap client linked list btstack_linked_item_t item; @@ -142,7 +172,7 @@ typedef struct pbap_client { obex_parser_t obex_parser; uint8_t obex_header_buffer[4]; /* authentication */ - obex_auth_parser_t obex_auth_parser; + pbap_client_obex_auth_parser_t obex_auth_parser; const char * authentication_password; /* xml parser */ yxml_t xml_parser; @@ -160,8 +190,8 @@ typedef struct pbap_client { uint8_t flow_next_triggered; bool flow_wait_for_user; /* srm */ - obex_srm_t obex_srm; - obex_srm_state_t srm_state; + pbap_client_obex_srm_t obex_srm; + pbap_client_obex_srm_state_t srm_state; } pbap_client_t; /* API_START */