HFP AG Example
This commit is contained in:
@@ -398,8 +398,9 @@ void bta_ag_rfc_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
bta_sys_conn_close(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
/* call close call-out */
|
||||
// bta_ag_sco_co_close(close.hdr.handle);
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
bta_ag_sco_co_close();
|
||||
#endif
|
||||
/* call close cback */
|
||||
(*bta_ag_cb.p_cback)(BTA_AG_CLOSE_EVT, (tBTA_AG *) &close);
|
||||
|
||||
@@ -463,7 +464,9 @@ void bta_ag_rfc_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
bta_ag_at_init(&p_scb->at_cb);
|
||||
|
||||
/* call app open call-out */
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
bta_ag_sco_co_open(bta_ag_scb_to_idx(p_scb), p_scb->air_mode, BTA_HFP_SCO_OUT_PKT_SIZE, bta_ag_svc_id[p_scb->conn_service]);
|
||||
#endif
|
||||
bta_sys_conn_open(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
|
||||
bta_ag_cback_open(p_scb, NULL, BTA_AG_SUCCESS);
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "bta_ag_int.h"
|
||||
#include "bta/bta_api.h"
|
||||
#include "bta/bta_sys.h"
|
||||
#include "bta/bta_ag_api.h"
|
||||
@@ -32,7 +33,6 @@
|
||||
#include "common/bt_defs.h"
|
||||
#include "common/bt_trace.h"
|
||||
#include "osi/allocator.h"
|
||||
#include "bta_ag_int.h"
|
||||
|
||||
#if (BTA_AG_INCLUDED == TRUE)
|
||||
/*****************************************************************************
|
||||
|
||||
@@ -188,7 +188,9 @@ static int bta_ag_data_cback(UINT16 port_handle, void *p_data, UINT16 len, UINT1
|
||||
UNUSED(port_handle);
|
||||
|
||||
/* call data call-out directly */
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
bta_ag_co_tx_write(handle, (UINT8 *) p_data, len);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,9 +66,7 @@ enum
|
||||
BTA_AG_SCO_SHUTDOWN_E, /* shutdown request */
|
||||
BTA_AG_SCO_CONN_OPEN_E, /* sco open */
|
||||
BTA_AG_SCO_CONN_CLOSE_E, /* sco closed */
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
BTA_AG_SCO_CI_DATA_E /* SCO data ready */
|
||||
#endif
|
||||
};
|
||||
|
||||
#if (BTM_WBS_INCLUDED == TRUE )
|
||||
@@ -579,6 +577,7 @@ static void bta_ag_create_sco(tBTA_AG_SCB *p_scb, BOOLEAN is_orig)
|
||||
/* tell sys to stop av if any */
|
||||
bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
#if (BTM_WBS_INCLUDED == TRUE)
|
||||
/* Allow any platform specific pre-SCO set up to take place */
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP, esco_codec);
|
||||
@@ -595,6 +594,7 @@ static void bta_ag_create_sco(tBTA_AG_SCB *p_scb, BOOLEAN is_orig)
|
||||
/* Allow any platform specific pre-SCO set up to take place */
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
#if (BTM_WBS_INCLUDED == TRUE)
|
||||
@@ -735,10 +735,7 @@ void bta_ag_codec_negotiate(tBTA_AG_SCB *p_scb)
|
||||
*******************************************************************************/
|
||||
static void bta_ag_sco_event(tBTA_AG_SCB *p_scb, UINT8 event)
|
||||
{
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
tBTA_AG_SCO_CB *p_sco = &bta_ag_cb.sco;
|
||||
BT_HDR *p_buf;
|
||||
#endif
|
||||
#if (BTM_WBS_INCLUDED == TRUE)
|
||||
tBTA_AG_SCB *p_cn_scb = NULL; /* For codec negotiation */
|
||||
#endif
|
||||
@@ -748,6 +745,7 @@ static void bta_ag_sco_event(tBTA_AG_SCB *p_scb, UINT8 event)
|
||||
bta_ag_sco_state_str(p_sco->state), event, bta_ag_sco_evt_str(event));
|
||||
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
BT_HDR *p_buf;
|
||||
if (event == BTA_AG_SCO_CI_DATA_E)
|
||||
{
|
||||
UINT16 pkt_offset = 1 + HCI_SCO_PREAMBLE_SIZE;
|
||||
@@ -1512,7 +1510,9 @@ void bta_ag_sco_conn_open(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
*******************************************************************************/
|
||||
void bta_ag_sco_conn_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
{
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
UINT16 handle = bta_ag_scb_to_idx(p_scb);
|
||||
#endif
|
||||
UNUSED(p_data);
|
||||
|
||||
/* clear current scb */
|
||||
@@ -1542,6 +1542,7 @@ void bta_ag_sco_conn_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
#endif
|
||||
else
|
||||
{
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
sco_state_t sco_state = bta_ag_cb.sco.p_xfer_scb ? SCO_STATE_OFF_TRANSFER : SCO_STATE_OFF;
|
||||
#if (BTM_WBS_INCLUDED == TRUE)
|
||||
/* Indicate if the closing of audio is because of transfer */
|
||||
@@ -1549,6 +1550,7 @@ void bta_ag_sco_conn_close(tBTA_AG_SCB *p_scb, tBTA_AG_DATA *p_data)
|
||||
#else
|
||||
/* Indicate if the closing of audio is because of transfer */
|
||||
bta_ag_sco_audio_state(handle, p_scb->app_id, sco_state);
|
||||
#endif
|
||||
#endif
|
||||
bta_ag_sco_event(p_scb, BTA_AG_SCO_CONN_CLOSE_E);
|
||||
|
||||
@@ -1626,17 +1628,15 @@ void bta_ag_sco_conn_rsp(tBTA_AG_SCB *p_scb, tBTM_ESCO_CONN_REQ_EVT_DATA *p_data
|
||||
/* tell sys to stop av if any */
|
||||
bta_sys_sco_use(BTA_ID_AG, p_scb->app_id, p_scb->peer_addr);
|
||||
|
||||
#if (BTM_WBS_INCLUDED == FALSE)
|
||||
/* Allow any platform specific pre-SCO set up to take place */
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP);
|
||||
#else
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
#if (BTM_WBS_INCLUDED == TRUE)
|
||||
/* When HS initiated SCO, it cannot be WBS. */
|
||||
/* Allow any platform specific pre-SCO set up to take place */
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP,
|
||||
BTA_AG_CODEC_CVSD);
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP, BTA_AG_CODEC_CVSD);
|
||||
#else
|
||||
/* Allow any platform specific pre-SCO set up to take place */
|
||||
bta_ag_sco_audio_state(bta_ag_scb_to_idx(p_scb), p_scb->app_id, SCO_STATE_SETUP);
|
||||
#endif
|
||||
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
pcm_sample_rate = BTA_HFP_SCO_SAMP_RATE_8K;
|
||||
/* initialize SCO setup, no voice setting for AG, data rate <==> sample rate */
|
||||
BTM_ConfigScoPath(bta_ag_sco_co_init(pcm_sample_rate, pcm_sample_rate, &codec_info, p_scb->app_id),
|
||||
|
||||
@@ -110,9 +110,7 @@ enum
|
||||
BTA_AG_CI_RX_WRITE_EVT,
|
||||
BTA_AG_RING_TOUT_EVT,
|
||||
BTA_AG_SVC_TOUT_EVT,
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE )
|
||||
BTA_AG_CI_SCO_DATA_EVT,
|
||||
#endif /* (BTM_SCO_HCI_INCLUDED == TRUE ) */
|
||||
BTA_AG_CI_SLC_READY_EVT,
|
||||
BTA_AG_MAX_EVT,
|
||||
|
||||
|
||||
@@ -21,13 +21,14 @@
|
||||
* This is the interface file for audio gateway call-out and call-in functions.
|
||||
*
|
||||
******************************************************************************/
|
||||
#ifndef BTA_AG_CIO_H
|
||||
#define BTA_AG_CIO_H
|
||||
#ifndef BTA_AG_CO_H
|
||||
#define BTA_AG_CO_H
|
||||
|
||||
#include "bta/bta_ag_api.h"
|
||||
#include "hci/hci_audio.h"
|
||||
|
||||
#if (BTA_AG_INCLUDED == TRUE)
|
||||
#if (BTM_SCO_HCI_INCLUDED == TRUE)
|
||||
/*******************************************************************************
|
||||
**
|
||||
** Function bta_ag_sco_audio_state
|
||||
@@ -155,6 +156,8 @@ extern void bta_ag_ci_rx_write(UINT16 handle, char *p_data, UINT16 len);
|
||||
******************************************************************************/
|
||||
extern void bta_ag_ci_slc_ready(UINT16 handle);
|
||||
|
||||
#endif /* #if (BTM_SCO_HCI_INCLUDED == TRUE) */
|
||||
|
||||
#endif /* #if (BTA_AG_INCLUDED == TRUE) */
|
||||
|
||||
#endif /* BTA_AG_CIO_H */
|
||||
#endif /* BTA_AG_CO_H */
|
||||
@@ -228,14 +228,15 @@ static void hci_update_adv_report_flow_control(BT_HDR *packet)
|
||||
// update adv free number
|
||||
hci_hal_env.adv_free_num ++;
|
||||
if (esp_vhci_host_check_send_available()){
|
||||
#if (BLE_INCLUDED == TRUE)
|
||||
// send hci cmd
|
||||
btsnd_hcic_ble_update_adv_report_flow_control(hci_hal_env.adv_free_num);
|
||||
#endif
|
||||
hci_hal_env.adv_free_num = 0;
|
||||
} else {
|
||||
//do nothing
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ CONFIG_A2DP_ENABLE CONFIG_BT_A2DP_ENABL
|
||||
CONFIG_HFP_ENABLE CONFIG_BT_HFP_ENABLE
|
||||
CONFIG_HFP_ROLE CONFIG_BT_HFP_ROLE
|
||||
CONFIG_HFP_CLIENT_ENABLE CONFIG_BT_HFP_CLIENT_ENABLE
|
||||
CONFIG_HFP_AG_ENABLE CONFIG_BT_HFP_AG_ENABLE
|
||||
CONFIG_HFP_AUDIO_DATA_PATH CONFIG_BT_HFP_AUDIO_DATA_PATH
|
||||
CONFIG_HFP_AUDIO_DATA_PATH_PCM CONFIG_BT_HFP_AUDIO_DATA_PATH_PCM
|
||||
CONFIG_HFP_AUDIO_DATA_PATH_HCI CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI
|
||||
|
||||
Reference in New Issue
Block a user