feat(bt/bluedroid): Support to build HFP Audio Gateway and Hands Free Unit in single binary

This commit is contained in:
Wang Mengyang
2023-09-27 16:12:52 +08:00
committed by Jin Cheng
parent 8b63bba2e8
commit 0cdc3284ce
4 changed files with 50 additions and 45 deletions

View File

@ -61,21 +61,23 @@ config BT_SPP_ENABLED
help help
This enables the Serial Port Profile This enables the Serial Port Profile
config BT_HFP_ENABLE menuconfig BT_HFP_ENABLE
bool "Hands Free/Handset Profile" bool "Hands Free/Handset Profile"
depends on BT_CLASSIC_ENABLED depends on BT_CLASSIC_ENABLED
default n default n
help
Hands Free Unit and Audio Gateway can be included simultaneously
but they cannot run simultaneously due to internal limitations.
choice BT_HFP_ROLE config BT_HFP_CLIENT_ENABLE
prompt "Hands-free Profile Role configuration" bool "Hands Free Unit"
depends on BT_HFP_ENABLE depends on BT_HFP_ENABLE
default y
config BT_HFP_CLIENT_ENABLE config BT_HFP_AG_ENABLE
bool "Hands Free Unit" bool "Audio Gateway"
depends on BT_HFP_ENABLE
config BT_HFP_AG_ENABLE default y
bool "Audio Gateway"
endchoice
choice BT_HFP_AUDIO_DATA_PATH choice BT_HFP_AUDIO_DATA_PATH
prompt "audio(SCO) data path" prompt "audio(SCO) data path"
@ -99,6 +101,7 @@ config BT_HFP_WBS_ENABLE
This enables Wide Band Speech. Should disable it when SCO data path is PCM. This enables Wide Band Speech. Should disable it when SCO data path is PCM.
Otherwise there will be no data transmited via GPIOs. Otherwise there will be no data transmited via GPIOs.
config BT_HID_ENABLED config BT_HID_ENABLED
bool "Classic BT HID" bool "Classic BT HID"
depends on BT_CLASSIC_ENABLED depends on BT_CLASSIC_ENABLED

View File

@ -182,13 +182,13 @@ typedef union
} phone; } phone;
// BTC_HF_REGISTER_DATA_CALLBACK_EVT // BTC_HF_REGISTER_DATA_CALLBACK_EVT
struct reg_data_callback { struct ag_reg_data_callback {
esp_hf_incoming_data_cb_t recv; esp_hf_incoming_data_cb_t recv;
esp_hf_outgoing_data_cb_t send; esp_hf_outgoing_data_cb_t send;
} reg_data_cb; } reg_data_cb;
// BTC_HF_REQUEST_PKT_STAT_EVT // BTC_HF_REQUEST_PKT_STAT_EVT
struct req_pkt_stat_sync_handle { struct ag_req_pkt_stat_sync_handle {
UINT16 sync_conn_handle; UINT16 sync_conn_handle;
} pkt_sync_hd; } pkt_sync_hd;

View File

@ -100,13 +100,13 @@ typedef union {
} send_dtmf; } send_dtmf;
// BTC_HF_CLIENT_REGISTER_DATA_CALLBACK_EVT // BTC_HF_CLIENT_REGISTER_DATA_CALLBACK_EVT
struct reg_data_callback { struct hf_client_reg_data_callback {
esp_hf_client_incoming_data_cb_t recv; esp_hf_client_incoming_data_cb_t recv;
esp_hf_client_outgoing_data_cb_t send; esp_hf_client_outgoing_data_cb_t send;
} reg_data_cb; } reg_data_cb;
// BTC_HF_CLIENT_REQUEST_PKT_STAT_EVT // BTC_HF_CLIENT_REQUEST_PKT_STAT_EVT
struct req_pkt_stat_sync_handle { struct hf_client_req_pkt_stat_sync_handle {
UINT16 sync_conn_handle; UINT16 sync_conn_handle;
} pkt_sync_hd; } pkt_sync_hd;

View File

@ -82,48 +82,50 @@
#define BTC_SPP_INCLUDED TRUE #define BTC_SPP_INCLUDED TRUE
#endif /* UC_BT_SPP_ENABLED */ #endif /* UC_BT_SPP_ENABLED */
#if (UC_BT_HFP_AG_ENABLED == TRUE) || (UC_BT_HFP_CLIENT_ENABLED == TRUE)
#ifndef RFCOMM_INCLUDED
#define RFCOMM_INCLUDED TRUE
#endif
#ifndef BTM_SCO_INCLUDED
#define BTM_SCO_INCLUDED TRUE
#endif
#ifndef SBC_DEC_INCLUDED
#define SBC_DEC_INCLUDED TRUE
#endif
#ifndef SBC_ENC_INCLUDED
#define SBC_ENC_INCLUDED TRUE
#endif
#ifndef PLC_INCLUDED
#define PLC_INCLUDED TRUE
#endif
#if (UC_BT_HFP_AG_ENABLED == TRUE) #if (UC_BT_HFP_AG_ENABLED == TRUE)
#ifndef BTM_MAX_SCO_LINKS_AG
#define BTM_MAX_SCO_LINKS_AG (1)
#endif
#define BTC_HF_INCLUDED TRUE #define BTC_HF_INCLUDED TRUE
#define BTA_AG_INCLUDED TRUE #define BTA_AG_INCLUDED TRUE
#define PLC_INCLUDED TRUE #else
#ifndef RFCOMM_INCLUDED #ifndef BTM_MAX_SCO_LINKS_AG
#define RFCOMM_INCLUDED TRUE #define BTM_MAX_SCO_LINKS_AG (0)
#endif #endif
#ifndef BTM_SCO_INCLUDED #endif /* (UC_BT_HFP_AG_ENABLED == TRUE) */
#define BTM_SCO_INCLUDED TRUE
#endif
#ifndef BTM_MAX_SCO_LINKS
#define BTM_MAX_SCO_LINKS (1)
#endif
#ifndef SBC_DEC_INCLUDED
#define SBC_DEC_INCLUDED TRUE
#endif
#ifndef SBC_ENC_INCLUDED
#define SBC_ENC_INCLUDED TRUE
#endif
#endif /* UC_BT_HFP_AG_ENABLED */
#if (UC_BT_HFP_CLIENT_ENABLED == TRUE) #if (UC_BT_HFP_CLIENT_ENABLED == TRUE)
#ifndef BTM_MAX_SCO_LINKS_CLIENT
#define BTM_MAX_SCO_LINKS_CLIENT (1)
#endif
#define BTC_HF_CLIENT_INCLUDED TRUE #define BTC_HF_CLIENT_INCLUDED TRUE
#define BTA_HF_INCLUDED TRUE #define BTA_HF_INCLUDED TRUE
#define PLC_INCLUDED TRUE #else
#ifndef RFCOMM_INCLUDED #ifndef BTM_MAX_SCO_LINKS_CLIENT
#define RFCOMM_INCLUDED TRUE #define BTM_MAX_SCO_LINKS_CLIENT (0)
#endif
#ifndef BTM_SCO_INCLUDED
#define BTM_SCO_INCLUDED TRUE
#endif
#ifndef BTM_MAX_SCO_LINKS
#define BTM_MAX_SCO_LINKS (1)
#endif #endif
#endif /* (UC_BT_HFP_CLIENT_ENABLED == TRUE) */
#ifndef SBC_DEC_INCLUDED #ifndef BTM_MAX_SCO_LINKS
#define SBC_DEC_INCLUDED TRUE #define BTM_MAX_SCO_LINKS (BTM_MAX_SCO_LINKS_AG + BTM_MAX_SCO_LINKS_CLIENT)
#endif #endif
#ifndef SBC_ENC_INCLUDED #endif /* (UC_BT_HFP_AG_ENABLED == TRUE) || (UC_BT_HFP_CLIENT_ENABLED == TRUE) */
#define SBC_ENC_INCLUDED TRUE
#endif
#endif /* UC_BT_HFP_CLIENT_ENABLED */
#if UC_BT_SSP_ENABLED #if UC_BT_SSP_ENABLED
#define BT_SSP_INCLUDED TRUE #define BT_SSP_INCLUDED TRUE