component/bt: bug fix for hci data packet reassembler
1. bugfix for hci data packet reassembler 2. create new file btif_avk.c originated from btif_av.c to eliminate the avrc related logic
This commit is contained in:
@@ -11,15 +11,17 @@
|
||||
#include "btif_stack_manager.h"
|
||||
#include "btif_sdp.h"
|
||||
#include "esp_gap_api.h"
|
||||
|
||||
#include "bta_api.h"
|
||||
#include "bt_av.h"
|
||||
|
||||
/* utl_set_device_class() */
|
||||
#include "utl.h"
|
||||
|
||||
#include "alarm.h"
|
||||
typedef enum {
|
||||
BT_APP_EVT_STACK_ON,
|
||||
BT_APP_EVT_STACK_OFF,
|
||||
BT_APP_EVT_ADD_SDP_RECORD_TO,
|
||||
BT_APP_EVT_SDP_SEARCH_START_TO,
|
||||
BT_APP_EVT_AV_OPEN_TO,
|
||||
BT_APP_EVT
|
||||
} tBT_APP_EVT;
|
||||
|
||||
@@ -27,49 +29,61 @@ typedef union {
|
||||
uint32_t dummy;
|
||||
} tBT_APP_EVT_DATA;
|
||||
|
||||
extern const btav_interface_t *btif_av_get_sink_interface(void);
|
||||
static void bt_stack_evt(tBT_APP_EVT event, tBT_APP_EVT_DATA *p_data);
|
||||
static void bt_stack_state_changed(bt_state_t state);
|
||||
static int bt_sdp_add_record(void);
|
||||
static void bt_sdp_search_complete(bt_status_t status, bt_bdaddr_t *bd_addr, uint8_t* uuid, int num_records, bluetooth_sdp_record *records);
|
||||
|
||||
// static bt_bdaddr_t peer_bd_addr = {{0x00, 0x1b, 0xdc, 0x08, 0x0f, 0xe7}};
|
||||
static bt_bdaddr_t peer_bd_addr = {{0xfc, 0x3f, 0x7c, 0xf1, 0x2c, 0x78}};
|
||||
|
||||
/* root browse
|
||||
static const uint8_t target_uuid[16] = { 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10, 0x00,
|
||||
0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB };
|
||||
*/
|
||||
|
||||
/* UUID_MAP_MAS */
|
||||
static const uint8_t target_uuid[] = {0x00, 0x00, 0x11, 0x32, 0x00, 0x00, 0x10, 0x00,
|
||||
0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB};
|
||||
|
||||
/* UUID AUDIO Source */
|
||||
/*
|
||||
static const uint8_t target_uuid[] = {0x00, 0x00, 0x11, 0x0A, 0x00, 0x00, 0x10, 0x00,
|
||||
0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB};
|
||||
*/
|
||||
static bt_bdaddr_t peer_bd_addr = {{0x00, 0x1b, 0xdc, 0x08, 0x0f, 0xe7}};
|
||||
// static bt_bdaddr_t peer_bd_addr = {{0xfc, 0x3f, 0x7c, 0xf1, 0x2c, 0x78}};
|
||||
|
||||
static bt_callbacks_t bt_callbacks = {
|
||||
bt_stack_state_changed
|
||||
};
|
||||
|
||||
static btsdp_callbacks_t btsdp_callbacks = {
|
||||
bt_sdp_search_complete
|
||||
};
|
||||
|
||||
osi_alarm_t *app_alarm = NULL;
|
||||
|
||||
static void bt_sdp_add_record_to(void *context)
|
||||
static void btav_conn_state_cb(btav_connection_state_t state,
|
||||
bt_bdaddr_t *bd_addr)
|
||||
{
|
||||
(void)(context);
|
||||
bt_stack_evt(BT_APP_EVT_ADD_SDP_RECORD_TO, NULL);
|
||||
LOG_ERROR("===btav_conn_state_cb %d ===\n", state);
|
||||
(void) bd_addr;
|
||||
}
|
||||
|
||||
static void bt_sdp_search_start_to(void *context)
|
||||
static void btav_audio_state_cb(btav_audio_state_t state, bt_bdaddr_t *bd_addr)
|
||||
{
|
||||
LOG_ERROR("===btav_audio_state_cb %d ===\n", state);
|
||||
(void) bd_addr;
|
||||
}
|
||||
|
||||
static void btav_audio_cfg_cb(bt_bdaddr_t *bd_addr, uint32_t sample_rate, uint8_t channel_count)
|
||||
{
|
||||
LOG_ERROR("===btav_audio_cfg_cb %d %d===\n", sample_rate, channel_count);
|
||||
(void) bd_addr;
|
||||
}
|
||||
|
||||
static btav_callbacks_t btav_cbs = {
|
||||
sizeof (btav_callbacks_t),
|
||||
btav_conn_state_cb,
|
||||
btav_audio_state_cb,
|
||||
btav_audio_cfg_cb
|
||||
};
|
||||
|
||||
static void btav_open_to(void *context)
|
||||
{
|
||||
(void)(context);
|
||||
bt_stack_evt(BT_APP_EVT_SDP_SEARCH_START_TO, NULL);
|
||||
bt_stack_evt(BT_APP_EVT_AV_OPEN_TO, NULL);
|
||||
}
|
||||
|
||||
static void btav_set_device_class(void)
|
||||
{
|
||||
tBTA_UTL_COD cod;
|
||||
memset(&cod, 0, sizeof(tBTA_UTL_COD));
|
||||
cod.major = BTM_COD_MAJOR_AUDIO;
|
||||
cod.minor = BTM_COD_MINOR_LOUDSPEAKER;
|
||||
cod.service = BTM_COD_SERVICE_CAPTURING | BTM_COD_SERVICE_AUDIO;
|
||||
utl_set_device_class(&cod, BTA_UTL_SET_COD_ALL);
|
||||
LOG_ERROR("set class of device: major 0x%x, minor 0x%x, service 0x%x\n",
|
||||
cod.major, cod.minor, cod.service);
|
||||
}
|
||||
|
||||
static void bt_app_stack_evt(UINT16 event, char *p_param)
|
||||
@@ -78,27 +92,21 @@ static void bt_app_stack_evt(UINT16 event, char *p_param)
|
||||
case BT_APP_EVT_STACK_ON: {
|
||||
char *dev_name = "SDP_SERVER_CLIENT";
|
||||
BTM_SetTraceLevel(BT_TRACE_LEVEL_DEBUG);
|
||||
btav_set_device_class();
|
||||
BTA_DmSetDeviceName(dev_name);
|
||||
|
||||
esp_bt_gap_set_scan_mode(BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE);
|
||||
BTIF_SdpInit(&btsdp_callbacks);
|
||||
|
||||
app_alarm = osi_alarm_new("app_alarm", bt_sdp_add_record_to, NULL, 1000, false);
|
||||
btif_av_get_sink_interface()->init(&btav_cbs);
|
||||
|
||||
// app_alarm = osi_alarm_new("app_alarm", bt_sdp_add_record_to, NULL, 1000, false);
|
||||
app_alarm = osi_alarm_new("app_alarm", btav_open_to, NULL, 1000, false);
|
||||
osi_alarm_set(app_alarm, 1000);
|
||||
}
|
||||
break;
|
||||
case BT_APP_EVT_ADD_SDP_RECORD_TO: {
|
||||
bt_sdp_add_record();
|
||||
case BT_APP_EVT_AV_OPEN_TO: {
|
||||
LOG_ERROR("**BT_APP_EVT_AV_OPEN_TO\n");
|
||||
// btif_av_get_sink_interface()->connect(&peer_bd_addr);
|
||||
osi_alarm_free(app_alarm);
|
||||
app_alarm = NULL;
|
||||
app_alarm = osi_alarm_new("app_alarm", bt_sdp_search_start_to, NULL, 20000, false);
|
||||
osi_alarm_set(app_alarm, 20000);
|
||||
}
|
||||
break;
|
||||
case BT_APP_EVT_SDP_SEARCH_START_TO: {
|
||||
osi_alarm_free(app_alarm);
|
||||
app_alarm = NULL;
|
||||
BTIF_SdpSearch(&peer_bd_addr, target_uuid);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -120,44 +128,6 @@ static void bt_stack_state_changed(bt_state_t state)
|
||||
}
|
||||
}
|
||||
|
||||
static int bt_sdp_add_record(void)
|
||||
{
|
||||
int handle;
|
||||
bluetooth_sdp_sap_record sap_svr;
|
||||
memset (&sap_svr, 0, sizeof(bluetooth_sdp_sap_record));
|
||||
|
||||
sap_svr.hdr.type = SDP_TYPE_SAP_SERVER;
|
||||
sap_svr.hdr.rfcomm_channel_number = 2;
|
||||
sap_svr.hdr.service_name = "SIM ACCESS";
|
||||
sap_svr.hdr.service_name_length = 10;
|
||||
sap_svr.hdr.profile_version = 0x0100;
|
||||
|
||||
BTIF_SdpCreateRecord((bluetooth_sdp_record *)(&sap_svr), &handle);
|
||||
return handle;
|
||||
}
|
||||
|
||||
static void bt_sdp_search_complete(bt_status_t status, bt_bdaddr_t *bd_addr, uint8_t* uuid, int num_records, bluetooth_sdp_record *records)
|
||||
{
|
||||
uint8_t *addr = bd_addr->address;
|
||||
bluetooth_sdp_hdr_overlay *p = &records->mas.hdr;
|
||||
LOG_ERROR("sdp search cmpl: st %d, bd_addr: %02x:%02x:%02x:%02x:%02x:%02x, records %d\n",
|
||||
status, addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], num_records);
|
||||
if (p->service_name_length > 0) {
|
||||
LOG_ERROR("service name: %s\n", p->service_name);
|
||||
}
|
||||
LOG_ERROR("rfc_chl_num %d, l2cap_psm %d, version %02x\n",
|
||||
p->rfcomm_channel_number, p->l2cap_psm, p->profile_version);
|
||||
#if 0
|
||||
uint8_t *addr = bd_addr->address;
|
||||
bluetooth_sdp_hdr_overlay *p = &records->hdr;
|
||||
LOG_ERROR("sdp search cmpl: st %d, bd_addr: %02x:%02x:%02x:%02x:%02x:%02x, records %d, len:%d\n",
|
||||
status, addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], num_records, p->user1_ptr_len);
|
||||
if (p->service_name_length > 0) {
|
||||
LOG_ERROR("service name: %s\n", p->service_name);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void app_main_entry(void)
|
||||
{
|
||||
bt_status_t stat;
|
||||
|
||||
@@ -110,12 +110,12 @@ static TIMER_LIST_ENT tle_av_open_on_rc;
|
||||
#define CHECK_BTAV_INIT() if (((bt_av_src_callbacks == NULL) &&(bt_av_sink_callbacks == NULL)) \
|
||||
|| (btif_av_cb.sm_handle == NULL))\
|
||||
{\
|
||||
BTIF_TRACE_WARNING("%s: BTAV not initialized", __FUNCTION__);\
|
||||
BTIF_TRACE_WARNING("%s: BTAV not initialized\n", __FUNCTION__);\
|
||||
return BT_STATUS_NOT_READY;\
|
||||
}\
|
||||
else\
|
||||
{\
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);\
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);\
|
||||
}
|
||||
|
||||
/* Helper macro to avoid code duplication in the state machine handlers */
|
||||
@@ -232,7 +232,7 @@ static void btif_initiate_av_open_tmr_hdlr(TIMER_LIST_ENT *tle)
|
||||
UNUSED(tle);
|
||||
/* is there at least one RC connection - There should be */
|
||||
if (btif_rc_get_connected_peer(peer_addr)) {
|
||||
BTIF_TRACE_DEBUG("%s Issuing connect to the remote RC peer", __FUNCTION__);
|
||||
BTIF_TRACE_DEBUG("%s Issuing connect to the remote RC peer\n", __FUNCTION__);
|
||||
/* In case of AVRCP connection request, we will initiate SRC connection */
|
||||
connect_req.target_bda = (bt_bdaddr_t*)&peer_addr;
|
||||
connect_req.uuid = UUID_SERVCLASS_AUDIO_SOURCE;
|
||||
@@ -240,7 +240,7 @@ static void btif_initiate_av_open_tmr_hdlr(TIMER_LIST_ENT *tle)
|
||||
}
|
||||
else
|
||||
{
|
||||
BTIF_TRACE_ERROR("%s No connected RC peers", __FUNCTION__);
|
||||
BTIF_TRACE_ERROR("%s No connected RC peers\n", __FUNCTION__);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -278,7 +278,7 @@ static void btif_report_audio_state(btav_audio_state_t state, bt_bdaddr_t *bd_ad
|
||||
|
||||
static BOOLEAN btif_av_state_idle_handler(btif_sm_event_t event, void *p_data)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x", __FUNCTION__,
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event), btif_av_cb.flags);
|
||||
|
||||
switch (event)
|
||||
@@ -331,7 +331,7 @@ static BOOLEAN btif_av_state_idle_handler(btif_sm_event_t event, void *p_data)
|
||||
* TODO: We may need to do this only on an AVRCP Play. FixMe
|
||||
*/
|
||||
|
||||
BTIF_TRACE_DEBUG("BTA_AV_RC_OPEN_EVT received w/o AV");
|
||||
BTIF_TRACE_DEBUG("BTA_AV_RC_OPEN_EVT received w/o AV\n");
|
||||
memset(&tle_av_open_on_rc, 0, sizeof(tle_av_open_on_rc));
|
||||
tle_av_open_on_rc.param = (UINT32)btif_initiate_av_open_tmr_hdlr;
|
||||
btu_start_timer(&tle_av_open_on_rc, BTU_TTYPE_USER_FUNC,
|
||||
@@ -349,14 +349,14 @@ static BOOLEAN btif_av_state_idle_handler(btif_sm_event_t event, void *p_data)
|
||||
|
||||
case BTA_AV_RC_CLOSE_EVT:
|
||||
if (tle_av_open_on_rc.in_use) {
|
||||
BTIF_TRACE_DEBUG("BTA_AV_RC_CLOSE_EVT: Stopping AV timer.");
|
||||
BTIF_TRACE_DEBUG("BTA_AV_RC_CLOSE_EVT: Stopping AV timer.\n");
|
||||
btu_stop_timer(&tle_av_open_on_rc);
|
||||
}
|
||||
btif_rc_handler(event, p_data);
|
||||
break;
|
||||
|
||||
default:
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s", __FUNCTION__,
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event));
|
||||
return FALSE;
|
||||
|
||||
@@ -377,7 +377,7 @@ static BOOLEAN btif_av_state_idle_handler(btif_sm_event_t event, void *p_data)
|
||||
|
||||
static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x", __FUNCTION__,
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event), btif_av_cb.flags);
|
||||
|
||||
switch (event)
|
||||
@@ -391,7 +391,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
break;
|
||||
|
||||
case BTA_AV_REJECT_EVT:
|
||||
BTIF_TRACE_DEBUG(" Received BTA_AV_REJECT_EVT ");
|
||||
BTIF_TRACE_DEBUG(" Received BTA_AV_REJECT_EVT \n");
|
||||
btif_report_connection_state(BTAV_CONNECTION_STATE_DISCONNECTED, &(btif_av_cb.peer_bda));
|
||||
btif_sm_change_state(btif_av_cb.sm_handle, BTIF_AV_STATE_IDLE);
|
||||
break;
|
||||
@@ -401,7 +401,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
tBTA_AV *p_bta_data = (tBTA_AV*)p_data;
|
||||
btav_connection_state_t state;
|
||||
btif_sm_state_t av_state;
|
||||
BTIF_TRACE_DEBUG("status:%d, edr 0x%x",p_bta_data->open.status,
|
||||
BTIF_TRACE_DEBUG("status:%d, edr 0x%x\n",p_bta_data->open.status,
|
||||
p_bta_data->open.edr);
|
||||
|
||||
if (p_bta_data->open.status == BTA_AV_SUCCESS)
|
||||
@@ -415,7 +415,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
}
|
||||
else
|
||||
{
|
||||
BTIF_TRACE_WARNING("BTA_AV_OPEN_EVT::FAILED status: %d",
|
||||
BTIF_TRACE_WARNING("BTA_AV_OPEN_EVT::FAILED status: %d\n",
|
||||
p_bta_data->open.status );
|
||||
state = BTAV_CONNECTION_STATE_DISCONNECTED;
|
||||
av_state = BTIF_AV_STATE_IDLE;
|
||||
@@ -447,7 +447,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
// copy to avoid alignment problems
|
||||
memcpy(&req, p_data, sizeof(req));
|
||||
|
||||
BTIF_TRACE_WARNING("BTIF_AV_SINK_CONFIG_REQ_EVT %d %d", req.sample_rate,
|
||||
BTIF_TRACE_WARNING("BTIF_AV_SINK_CONFIG_REQ_EVT %d %d\n", req.sample_rate,
|
||||
req.channel_count);
|
||||
if (btif_av_cb.peer_sep == AVDT_TSEP_SRC && bt_av_sink_callbacks != NULL) {
|
||||
HAL_CBACK(bt_av_sink_callbacks, audio_config_cb, &(btif_av_cb.peer_bda),
|
||||
@@ -460,13 +460,13 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
if (memcmp ((bt_bdaddr_t*)p_data, &(btif_av_cb.peer_bda),
|
||||
sizeof(btif_av_cb.peer_bda)) == 0)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Same device moved to Opening state,ignore Connect Req", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Same device moved to Opening state,ignore Connect Req\n", __func__);
|
||||
btif_queue_advance();
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Moved from idle by Incoming Connection request", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Moved from idle by Incoming Connection request\n", __func__);
|
||||
btif_report_connection_state(BTAV_CONNECTION_STATE_DISCONNECTED, (bt_bdaddr_t*)p_data);
|
||||
btif_queue_advance();
|
||||
break;
|
||||
@@ -477,12 +477,12 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
if (memcmp (((tBTA_AV*)p_data)->pend.bd_addr, &(btif_av_cb.peer_bda),
|
||||
sizeof(btif_av_cb.peer_bda)) == 0)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Same device moved to Opening state,ignore Pending Req", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Same device moved to Opening state,ignore Pending Req\n", __func__);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Moved from idle by outgoing Connection request", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Moved from idle by outgoing Connection request\n", __func__);
|
||||
BTA_AvDisconnect(((tBTA_AV*)p_data)->pend.bd_addr);
|
||||
break;
|
||||
}
|
||||
@@ -490,7 +490,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
CHECK_RC_EVENT(event, p_data);
|
||||
|
||||
default:
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s", __FUNCTION__,
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event));
|
||||
return FALSE;
|
||||
|
||||
@@ -512,7 +512,7 @@ static BOOLEAN btif_av_state_opening_handler(btif_sm_event_t event, void *p_data
|
||||
|
||||
static BOOLEAN btif_av_state_closing_handler(btif_sm_event_t event, void *p_data)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x", __FUNCTION__,
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event), btif_av_cb.flags);
|
||||
|
||||
switch (event)
|
||||
@@ -562,7 +562,7 @@ static BOOLEAN btif_av_state_closing_handler(btif_sm_event_t event, void *p_data
|
||||
break;
|
||||
|
||||
default:
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s", __FUNCTION__,
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event));
|
||||
return FALSE;
|
||||
}
|
||||
@@ -584,13 +584,13 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
{
|
||||
tBTA_AV *p_av = (tBTA_AV*)p_data;
|
||||
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x", __FUNCTION__,
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event), btif_av_cb.flags);
|
||||
|
||||
if ( (event == BTA_AV_REMOTE_CMD_EVT) && (btif_av_cb.flags & BTIF_AV_FLAG_REMOTE_SUSPEND) &&
|
||||
(p_av->remote_cmd.rc_id == BTA_AV_RC_PLAY) )
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s: Resetting remote suspend flag on RC PLAY", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s: Resetting remote suspend flag on RC PLAY\n", __FUNCTION__);
|
||||
btif_av_cb.flags &= ~BTIF_AV_FLAG_REMOTE_SUSPEND;
|
||||
}
|
||||
|
||||
@@ -614,7 +614,7 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
|
||||
case BTA_AV_START_EVT:
|
||||
{
|
||||
BTIF_TRACE_EVENT("BTA_AV_START_EVT status %d, suspending %d, init %d",
|
||||
BTIF_TRACE_EVENT("BTA_AV_START_EVT status %d, suspending %d, init %d\n",
|
||||
p_av->start.status, p_av->start.suspending, p_av->start.initiator);
|
||||
|
||||
if ((p_av->start.status == BTA_SUCCESS) && (p_av->start.suspending == TRUE))
|
||||
@@ -628,7 +628,7 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
{
|
||||
if (btif_av_cb.peer_sep == AVDT_TSEP_SNK)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s: trigger suspend as remote initiated!!", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s: trigger suspend as remote initiated!!\n", __FUNCTION__);
|
||||
btif_dispatch_sm_event(BTIF_AV_SUSPEND_STREAM_REQ_EVT, NULL, 0);
|
||||
}
|
||||
}
|
||||
@@ -692,7 +692,7 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
if((btif_av_cb.flags & BTIF_AV_FLAG_PENDING_START) &&
|
||||
(p_av->reconfig.status == BTA_AV_SUCCESS))
|
||||
{
|
||||
APPL_TRACE_WARNING("reconfig done BTA_AVstart()");
|
||||
APPL_TRACE_WARNING("reconfig done BTA_AVstart()\n");
|
||||
BTA_AvStart();
|
||||
}
|
||||
else if(btif_av_cb.flags & BTIF_AV_FLAG_PENDING_START)
|
||||
@@ -706,11 +706,11 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
if (memcmp ((bt_bdaddr_t*)p_data, &(btif_av_cb.peer_bda),
|
||||
sizeof(btif_av_cb.peer_bda)) == 0)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Ignore BTIF_AV_CONNECT_REQ_EVT for same device", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Ignore BTIF_AV_CONNECT_REQ_EVT for same device\n", __func__);
|
||||
}
|
||||
else
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: Moved to opened by Other Incoming Conn req", __func__);
|
||||
BTIF_TRACE_DEBUG("%s: Moved to opened by Other Incoming Conn req\n", __func__);
|
||||
btif_report_connection_state(BTAV_CONNECTION_STATE_DISCONNECTED,
|
||||
(bt_bdaddr_t*)p_data);
|
||||
}
|
||||
@@ -720,7 +720,7 @@ static BOOLEAN btif_av_state_opened_handler(btif_sm_event_t event, void *p_data)
|
||||
CHECK_RC_EVENT(event, p_data);
|
||||
|
||||
default:
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s", __FUNCTION__,
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event));
|
||||
return FALSE;
|
||||
|
||||
@@ -742,7 +742,7 @@ static BOOLEAN btif_av_state_started_handler(btif_sm_event_t event, void *p_data
|
||||
{
|
||||
tBTA_AV *p_av = (tBTA_AV*)p_data;
|
||||
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x", __FUNCTION__,
|
||||
BTIF_TRACE_DEBUG("%s event:%s flags %x\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event), btif_av_cb.flags);
|
||||
|
||||
switch (event)
|
||||
@@ -815,7 +815,7 @@ static BOOLEAN btif_av_state_started_handler(btif_sm_event_t event, void *p_data
|
||||
|
||||
case BTA_AV_SUSPEND_EVT:
|
||||
|
||||
BTIF_TRACE_EVENT("BTA_AV_SUSPEND_EVT status %d, init %d",
|
||||
BTIF_TRACE_EVENT("BTA_AV_SUSPEND_EVT status %d, init %d\n",
|
||||
p_av->suspend.status, p_av->suspend.initiator);
|
||||
|
||||
/* a2dp suspended, stop media task until resumed */
|
||||
@@ -886,7 +886,7 @@ static BOOLEAN btif_av_state_started_handler(btif_sm_event_t event, void *p_data
|
||||
CHECK_RC_EVENT(event, p_data);
|
||||
|
||||
default:
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s", __FUNCTION__,
|
||||
BTIF_TRACE_WARNING("%s : unhandled event:%s\n", __FUNCTION__,
|
||||
dump_av_sm_event_name(event));
|
||||
return FALSE;
|
||||
|
||||
@@ -991,7 +991,7 @@ static void bte_av_media_callback(tBTA_AV_EVT event, tBTA_AV_MEDIA *p_data)
|
||||
(state == BTIF_AV_STATE_OPENED) )
|
||||
{
|
||||
que_len = btif_media_sink_enque_buf((BT_HDR *)p_data);
|
||||
BTIF_TRACE_DEBUG(" Packets in Que %d",que_len);
|
||||
BTIF_TRACE_DEBUG(" Packets in Que %d\n",que_len);
|
||||
}
|
||||
else
|
||||
return;
|
||||
@@ -1009,7 +1009,7 @@ static void bte_av_media_callback(tBTA_AV_EVT event, tBTA_AV_MEDIA *p_data)
|
||||
btif_transfer_context(btif_av_handle_event, BTIF_AV_SINK_CONFIG_REQ_EVT,
|
||||
(char*)&config_req, sizeof(config_req), NULL);
|
||||
} else {
|
||||
APPL_TRACE_ERROR("ERROR dump_codec_info A2D_ParsSbcInfo fail:%d", a2d_status);
|
||||
APPL_TRACE_ERROR("ERROR dump_codec_info A2D_ParsSbcInfo fail:%d\n", a2d_status);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1057,7 +1057,7 @@ bt_status_t btif_av_init()
|
||||
|
||||
static bt_status_t init_src(btav_callbacks_t* callbacks)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s()", __func__);
|
||||
BTIF_TRACE_EVENT("%s()\n", __func__);
|
||||
|
||||
bt_status_t status = btif_av_init();
|
||||
if (status == BT_STATUS_SUCCESS)
|
||||
@@ -1078,7 +1078,7 @@ static bt_status_t init_src(btav_callbacks_t* callbacks)
|
||||
|
||||
static bt_status_t init_sink(btav_callbacks_t* callbacks)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s()", __func__);
|
||||
BTIF_TRACE_EVENT("%s()\n", __func__);
|
||||
|
||||
bt_status_t status = btif_av_init();
|
||||
if (status == BT_STATUS_SUCCESS)
|
||||
@@ -1102,7 +1102,7 @@ static bt_status_t connect_int(bt_bdaddr_t *bd_addr, uint16_t uuid)
|
||||
btif_av_connect_req_t connect_req;
|
||||
connect_req.target_bda = bd_addr;
|
||||
connect_req.uuid = uuid;
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
|
||||
btif_sm_dispatch(btif_av_cb.sm_handle, BTIF_AV_CONNECT_REQ_EVT, (char*)&connect_req);
|
||||
|
||||
@@ -1111,7 +1111,7 @@ static bt_status_t connect_int(bt_bdaddr_t *bd_addr, uint16_t uuid)
|
||||
|
||||
static bt_status_t src_connect_sink(bt_bdaddr_t *bd_addr)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
CHECK_BTAV_INIT();
|
||||
|
||||
return btif_queue_connect(UUID_SERVCLASS_AUDIO_SOURCE, bd_addr, connect_int);
|
||||
@@ -1119,7 +1119,7 @@ static bt_status_t src_connect_sink(bt_bdaddr_t *bd_addr)
|
||||
|
||||
static bt_status_t sink_connect_src(bt_bdaddr_t *bd_addr)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
CHECK_BTAV_INIT();
|
||||
|
||||
return btif_queue_connect(UUID_SERVCLASS_AUDIO_SINK, bd_addr, connect_int);
|
||||
@@ -1136,7 +1136,7 @@ static bt_status_t sink_connect_src(bt_bdaddr_t *bd_addr)
|
||||
*******************************************************************************/
|
||||
static bt_status_t disconnect(bt_bdaddr_t *bd_addr)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
|
||||
CHECK_BTAV_INIT();
|
||||
|
||||
@@ -1156,7 +1156,7 @@ static bt_status_t disconnect(bt_bdaddr_t *bd_addr)
|
||||
*******************************************************************************/
|
||||
static void cleanup(void)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
|
||||
btif_a2dp_stop_media_task();
|
||||
|
||||
@@ -1171,7 +1171,7 @@ static void cleanup(void)
|
||||
}
|
||||
|
||||
static void cleanup_src(void) {
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
|
||||
if (bt_av_src_callbacks)
|
||||
{
|
||||
@@ -1182,7 +1182,7 @@ static void cleanup_src(void) {
|
||||
}
|
||||
|
||||
static void cleanup_sink(void) {
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
|
||||
if (bt_av_sink_callbacks)
|
||||
{
|
||||
@@ -1237,7 +1237,7 @@ BOOLEAN btif_av_stream_ready(void)
|
||||
{
|
||||
btif_sm_state_t state = btif_sm_get_state(btif_av_cb.sm_handle);
|
||||
|
||||
BTIF_TRACE_DEBUG("btif_av_stream_ready : sm hdl %d, state %d, flags %x",
|
||||
BTIF_TRACE_DEBUG("btif_av_stream_ready : sm hdl %d, state %d, flags %x\n",
|
||||
btif_av_cb.sm_handle, state, btif_av_cb.flags);
|
||||
|
||||
/* also make sure main adapter is enabled */
|
||||
@@ -1268,7 +1268,7 @@ BOOLEAN btif_av_stream_started_ready(void)
|
||||
{
|
||||
btif_sm_state_t state = btif_sm_get_state(btif_av_cb.sm_handle);
|
||||
|
||||
BTIF_TRACE_DEBUG("btif_av_stream_started : sm hdl %d, state %d, flags %x",
|
||||
BTIF_TRACE_DEBUG("btif_av_stream_started : sm hdl %d, state %d, flags %x\n",
|
||||
btif_av_cb.sm_handle, state, btif_av_cb.flags);
|
||||
|
||||
/* disallow media task to start if we have pending actions */
|
||||
@@ -1366,7 +1366,7 @@ bt_status_t btif_av_sink_execute_service(BOOLEAN b_enable)
|
||||
*******************************************************************************/
|
||||
const btav_interface_t *btif_av_get_src_interface(void)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
return &bt_av_src_interface;
|
||||
}
|
||||
|
||||
@@ -1381,7 +1381,7 @@ const btav_interface_t *btif_av_get_src_interface(void)
|
||||
*******************************************************************************/
|
||||
const btav_interface_t *btif_av_get_sink_interface(void)
|
||||
{
|
||||
BTIF_TRACE_EVENT("%s", __FUNCTION__);
|
||||
BTIF_TRACE_EVENT("%s\n", __FUNCTION__);
|
||||
return &bt_av_sink_interface;
|
||||
}
|
||||
|
||||
@@ -1414,7 +1414,7 @@ BOOLEAN btif_av_is_connected(void)
|
||||
*******************************************************************************/
|
||||
BOOLEAN btif_av_is_peer_edr(void)
|
||||
{
|
||||
ASSERTC(btif_av_is_connected(), "No active a2dp connection", 0);
|
||||
ASSERTC(btif_av_is_connected(), "No active a2dp connection\n", 0);
|
||||
|
||||
if (btif_av_cb.edr)
|
||||
return TRUE;
|
||||
@@ -1432,6 +1432,6 @@ BOOLEAN btif_av_is_peer_edr(void)
|
||||
******************************************************************************/
|
||||
void btif_av_clear_remote_suspend_flag(void)
|
||||
{
|
||||
BTIF_TRACE_DEBUG("%s: flag :%x",__func__, btif_av_cb.flags);
|
||||
BTIF_TRACE_DEBUG("%s: flag :%x\n",__func__, btif_av_cb.flags);
|
||||
btif_av_cb.flags &= ~BTIF_AV_FLAG_REMOTE_SUSPEND;
|
||||
}
|
||||
1364
examples/09_a2dp/components/bluedroid_demos/btif/btif_avk.c
Executable file
1364
examples/09_a2dp/components/bluedroid_demos/btif/btif_avk.c
Executable file
File diff suppressed because it is too large
Load Diff
@@ -334,6 +334,14 @@ static fixed_queue_t *btif_media_cmd_msg_queue = NULL;
|
||||
static xTaskHandle xBtifMediaTaskHandle = NULL;
|
||||
static QueueHandle_t xBtifMediaQueue = NULL;
|
||||
|
||||
/*****************************************************************************
|
||||
** temporary hacked functions. TODO: port these functions or remove them?
|
||||
*****************************************************************************/
|
||||
BOOLEAN btif_hf_is_call_idle(void)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
** Misc helper functions
|
||||
*****************************************************************************/
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "bta_api.h"
|
||||
#include "bta_av_api.h"
|
||||
#include "avrc_defs.h"
|
||||
#include "avrc_api.h"
|
||||
#include "gki.h"
|
||||
|
||||
#define LOG_TAG "bt_btif_avrc"
|
||||
@@ -206,11 +207,23 @@ static btrc_ctrl_callbacks_t *bt_rc_ctrl_callbacks = NULL;
|
||||
extern BOOLEAN btif_hf_call_terminated_recently();
|
||||
extern BOOLEAN check_cod(const bt_bdaddr_t *remote_bdaddr, uint32_t cod);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** Functions
|
||||
******************************************************************************/
|
||||
|
||||
/*****************************************************************************
|
||||
** temporarily hacked functions. TODO: remove or port these functions
|
||||
*****************************************************************************/
|
||||
BOOLEAN btif_hf_call_terminated_recently(void)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN check_cod(const bt_bdaddr_t *remote_bdaddr, uint32_t cod)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
** Local uinput helper functions
|
||||
******************************************************************************/
|
||||
|
||||
@@ -19,8 +19,8 @@ COMPONENT_SRCDIRS := \
|
||||
app_core \
|
||||
app_project \
|
||||
udrv/ulinux \
|
||||
embdrv/sbc/encoder \
|
||||
embdrv/sbc/decoder \
|
||||
embdrv/sbc/encoder/srce \
|
||||
embdrv/sbc/decoder/srce \
|
||||
btif/co \
|
||||
btif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user