Skip to content

Commit

Permalink
Merge branch 'feature/include_hf_and_ag_in_single_build' into 'master'
Browse files Browse the repository at this point in the history
feat: Added support for build different roles in corresponding profile HID and HFP into a single binary

See merge request espressif/esp-idf!26360
  • Loading branch information
wmy-espressif committed Nov 2, 2023
2 parents 85484ff + 1f2a156 commit 52085b0
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 53 deletions.
44 changes: 23 additions & 21 deletions components/bt/host/bluedroid/Kconfig.in
Original file line number Diff line number Diff line change
Expand Up @@ -83,21 +83,23 @@ config BT_L2CAP_ENABLED
This enables the Logical Link Control and Adaptation Layer Protocol.
Only supported classic bluetooth.

config BT_HFP_ENABLE
menuconfig BT_HFP_ENABLE
bool "Hands Free/Handset Profile"
depends on BT_CLASSIC_ENABLED
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
prompt "Hands-free Profile Role configuration"
config BT_HFP_CLIENT_ENABLE
bool "Hands Free Unit"
depends on BT_HFP_ENABLE
default y

config BT_HFP_CLIENT_ENABLE
bool "Hands Free Unit"

config BT_HFP_AG_ENABLE
bool "Audio Gateway"
endchoice
config BT_HFP_AG_ENABLE
bool "Audio Gateway"
depends on BT_HFP_ENABLE
default y

choice BT_HFP_AUDIO_DATA_PATH
prompt "audio(SCO) data path"
Expand All @@ -121,26 +123,26 @@ config BT_HFP_WBS_ENABLE
This enables Wide Band Speech. Should disable it when SCO data path is PCM.
Otherwise there will be no data transmited via GPIOs.

config BT_HID_ENABLED

menuconfig BT_HID_ENABLED
bool "Classic BT HID"
depends on BT_CLASSIC_ENABLED
default n
help
This enables the BT HID Host

choice BT_HID_ROLE
prompt "Profile Role configuration"
config BT_HID_HOST_ENABLED
bool "Classic BT HID Host"
depends on BT_HID_ENABLED
config BT_HID_HOST_ENABLED
bool "Classic BT HID Host"
help
This enables the BT HID Host
default n
help
This enables the BT HID Host

config BT_HID_DEVICE_ENABLED
bool "Classic BT HID Device"
help
This enables the BT HID Device
endchoice
config BT_HID_DEVICE_ENABLED
bool "Classic BT HID Device"
depends on BT_HID_ENABLED
help
This enables the BT HID Device

config BT_BLE_ENABLED
bool "Bluetooth Low Energy"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ typedef struct {
/* btc_hidd_args_t */
typedef union {
// BTC_HD_CONNECT_EVT
struct connect_arg {
struct hd_connect_arg {
BD_ADDR bd_addr;
} connect;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,13 +184,13 @@ typedef union
} phone;

// BTC_HF_REGISTER_DATA_CALLBACK_EVT
struct reg_data_callback {
struct ag_reg_data_callback {
esp_hf_incoming_data_cb_t recv;
esp_hf_outgoing_data_cb_t send;
} reg_data_cb;

// BTC_HF_REQUEST_PKT_STAT_EVT
struct req_pkt_stat_sync_handle {
struct ag_req_pkt_stat_sync_handle {
UINT16 sync_conn_handle;
} pkt_sync_hd;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ typedef union {
} send_dtmf;

// 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_outgoing_data_cb_t send;
} reg_data_cb;
Expand All @@ -120,7 +120,7 @@ typedef union {
} send_iphoneaccev;

// 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;
} pkt_sync_hd;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ typedef struct {
/* btc_spp_args_t */
typedef union {
// BTC_HH_CONNECT_EVT
struct connect_arg {
struct hh_connect_arg {
BD_ADDR bd_addr;
} connect;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -461,13 +461,15 @@
#ifdef CONFIG_BT_LOG_HID_TRACE_LEVEL
#if UC_BT_HID_HOST_ENABLED
#define UC_BT_LOG_HIDH_TRACE_LEVEL CONFIG_BT_LOG_HID_TRACE_LEVEL
#elif UC_BT_HID_DEVICE_ENABLED
#endif
#if UC_BT_HID_DEVICE_ENABLED
#define UC_BT_LOG_HIDD_TRACE_LEVEL CONFIG_BT_LOG_HID_TRACE_LEVEL
#endif
#else
#if UC_BT_HID_HOST_ENABLED
#define UC_BT_LOG_HIDH_TRACE_LEVEL UC_TRACE_LEVEL_WARNING
#elif UC_BT_HID_DEVICE_ENABLED
#endif
#if UC_BT_HID_DEVICE_ENABLED
#define UC_BT_LOG_HIDD_TRACE_LEVEL UC_TRACE_LEVEL_WARNING
#endif
#endif
Expand Down
49 changes: 25 additions & 24 deletions components/bt/host/bluedroid/common/include/common/bt_target.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,49 +96,50 @@
#define VND_BT_JV_BTA_L2CAP TRUE
#endif /* UC_BT_L2CAP_ENABLED */

#if (UC_BT_HFP_AG_ENABLED == TRUE)
#define BTC_HF_INCLUDED TRUE
#define BTA_AG_INCLUDED TRUE
#define PLC_INCLUDED TRUE
#define BTA_JV_RFCOMM_INCLUDED TRUE
#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 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 */
#ifndef PLC_INCLUDED
#define PLC_INCLUDED TRUE
#endif

#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 BTA_AG_INCLUDED TRUE
#else
#ifndef BTM_MAX_SCO_LINKS_AG
#define BTM_MAX_SCO_LINKS_AG (0)
#endif
#endif /* (UC_BT_HFP_AG_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 BTA_HF_INCLUDED TRUE
#define PLC_INCLUDED TRUE
#ifndef RFCOMM_INCLUDED
#define RFCOMM_INCLUDED TRUE
#endif
#ifndef BTM_SCO_INCLUDED
#define BTM_SCO_INCLUDED TRUE
#endif
#ifndef BTM_MAX_SCO_LINKS
#define BTM_MAX_SCO_LINKS (1)
#else
#ifndef BTM_MAX_SCO_LINKS_CLIENT
#define BTM_MAX_SCO_LINKS_CLIENT (0)
#endif
#endif /* (UC_BT_HFP_CLIENT_ENABLED == TRUE) */

#ifndef SBC_DEC_INCLUDED
#define SBC_DEC_INCLUDED TRUE
#endif
#ifndef SBC_ENC_INCLUDED
#define SBC_ENC_INCLUDED TRUE
#ifndef BTM_MAX_SCO_LINKS
#define BTM_MAX_SCO_LINKS (BTM_MAX_SCO_LINKS_AG + BTM_MAX_SCO_LINKS_CLIENT)
#endif
#endif /* UC_BT_HFP_CLIENT_ENABLED */
#endif /* (UC_BT_HFP_AG_ENABLED == TRUE) || (UC_BT_HFP_CLIENT_ENABLED == TRUE) */

#if UC_BT_HID_ENABLED
#define BT_HID_INCLUDED TRUE
Expand Down

0 comments on commit 52085b0

Please sign in to comment.