mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-12 10:13:43 +00:00
hfp: use mSBC link settings for LC3_SWB
This commit is contained in:
parent
73f498e7b8
commit
64126f36f2
@ -102,21 +102,23 @@ static hfp_link_settings_t hfp_next_link_setting_for_connection(hfp_link_setting
|
||||
static void parse_sequence(hfp_connection_t * context);
|
||||
|
||||
|
||||
#define CODEC_MASK_CVSD (1 << HFP_CODEC_CVSD)
|
||||
#define CODEC_MASK_MSBC_AND_LC3 (1 << HFP_CODEC_MSBC) | (1 << HFP_CODEC_LC3_SWB)
|
||||
static const struct link_settings {
|
||||
const uint16_t max_latency;
|
||||
const uint8_t retransmission_effort;
|
||||
const uint16_t packet_types;
|
||||
const bool eSCO;
|
||||
const uint8_t codec;
|
||||
const uint8_t codec_mask;
|
||||
} hfp_link_settings [] = {
|
||||
{ 0xffff, 0xff, SCO_PACKET_TYPES_HV1, false, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_D0
|
||||
{ 0xffff, 0xff, SCO_PACKET_TYPES_HV3, false, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_D1
|
||||
{ 0x0007, 0x01, SCO_PACKET_TYPES_EV3, true, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_S1
|
||||
{ 0x0007, 0x01, SCO_PACKET_TYPES_2EV3, true, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_S2
|
||||
{ 0x000a, 0x01, SCO_PACKET_TYPES_2EV3, true, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_S3
|
||||
{ 0x000c, 0x02, SCO_PACKET_TYPES_2EV3, true, HFP_CODEC_CVSD }, // HFP_LINK_SETTINGS_S4
|
||||
{ 0x0008, 0x02, SCO_PACKET_TYPES_EV3, true, HFP_CODEC_MSBC }, // HFP_LINK_SETTINGS_T1
|
||||
{ 0x000d, 0x02, SCO_PACKET_TYPES_2EV3, true, HFP_CODEC_MSBC } // HFP_LINK_SETTINGS_T2
|
||||
{ 0xffff, 0xff, SCO_PACKET_TYPES_HV1, false, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_D0
|
||||
{ 0xffff, 0xff, SCO_PACKET_TYPES_HV3, false, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_D1
|
||||
{ 0x0007, 0x01, SCO_PACKET_TYPES_EV3, true, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_S1
|
||||
{ 0x0007, 0x01, SCO_PACKET_TYPES_2EV3, true, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_S2
|
||||
{ 0x000a, 0x01, SCO_PACKET_TYPES_2EV3, true, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_S3
|
||||
{ 0x000c, 0x02, SCO_PACKET_TYPES_2EV3, true, CODEC_MASK_CVSD }, // HFP_LINK_SETTINGS_S4
|
||||
{ 0x0008, 0x02, SCO_PACKET_TYPES_EV3, true, CODEC_MASK_MSBC_AND_LC3 }, // HFP_LINK_SETTINGS_T1
|
||||
{ 0x000d, 0x02, SCO_PACKET_TYPES_2EV3, true, CODEC_MASK_MSBC_AND_LC3 } // HFP_LINK_SETTINGS_T2
|
||||
};
|
||||
|
||||
static const char * hfp_hf_features[] = {
|
||||
@ -2048,7 +2050,7 @@ hfp_link_settings_t hfp_next_link_setting(hfp_link_settings_t current_setting, b
|
||||
// skip if S4 but not supported
|
||||
if ((setting == (int8_t) HFP_LINK_SETTINGS_S4) && !eSCO_S4_supported) continue;
|
||||
// skip wrong codec
|
||||
if ( hfp_link_settings[setting].codec != negotiated_codec) continue;
|
||||
if ((hfp_link_settings[setting].codec_mask & (1 << negotiated_codec)) == 0) continue;
|
||||
// skip disabled packet types
|
||||
uint16_t required_packet_types = hfp_link_settings[setting].packet_types;
|
||||
uint16_t allowed_packet_types = hfp_allowed_sco_packet_types;
|
||||
|
Loading…
x
Reference in New Issue
Block a user