diff --git a/src/hfp.c b/src/hfp.c index 712ec53e8..5d8e4dd31 100644 --- a/src/hfp.c +++ b/src/hfp.c @@ -594,6 +594,8 @@ void hfp_handle_hci_event(hfp_callback_t callback, uint8_t packet_type, uint8_t log_info("SCO disconnected, w2 disconnect RFCOMM\n"); context->sco_handle = 0; context->release_audio_connection = 0; + context->state = HFP_SERVICE_LEVEL_CONNECTION_ESTABLISHED; + hfp_emit_event(callback, HFP_SUBEVENT_AUDIO_CONNECTION_RELEASED, 0); break; } break; diff --git a/test/hfp/hfp_ag_client_test.c b/test/hfp/hfp_ag_client_test.c index cb20d4085..27119ecc7 100644 --- a/test/hfp/hfp_ag_client_test.c +++ b/test/hfp/hfp_ag_client_test.c @@ -198,13 +198,9 @@ TEST_GROUP(HFPClient){ } void teardown(void){ - if (audio_connection_established){ - hfp_ag_release_audio_connection(device_addr); - } - - if (service_level_connection_established){ - hfp_ag_release_service_level_connection(device_addr); - } + hfp_ag_release_audio_connection(device_addr); + hfp_ag_release_service_level_connection(device_addr); + service_level_connection_established = 0; codecs_connection_established = 0; audio_connection_established = 0; @@ -236,7 +232,7 @@ TEST(HFPClient, HFAnswerIncomingCallWithInBandRingTone){ } -TEST(HFPClient, HFAudioConnectionEstablishedWithCodecNegtiation){ +TEST(HFPClient, HFAudioConnectionEstablishedWithCodecNegotiation){ setup_hfp_service_level_connection(default_slc_setup(), default_slc_setup_size()); CHECK_EQUAL(service_level_connection_established, 1); @@ -250,7 +246,7 @@ TEST(HFPClient, HFAudioConnectionEstablishedWithCodecNegtiation){ CHECK_EQUAL(audio_connection_established, 0); } -TEST(HFPClient, HFAudioConnectionEstablishedWithDefaultCodec){ +TEST(HFPClient, HFAudioConnectionEstablishedWithoutCodecNegotiation){ hfp_ag_init(rfcomm_channel_nr, supported_features_without_codec_negotiation, codecs, sizeof(codecs), ag_indicators, ag_indicators_nr,