Merge branch 'bugfix/btdm_change_default_CoD_of_BT_profile' into 'master'

components/bt: Set default Class of Device of BT profile

See merge request idf/esp-idf!3564
This commit is contained in:
Jiang Jiang Jian 2018-10-31 20:51:15 +08:00
commit dba29eeb2e
5 changed files with 45 additions and 13 deletions

View file

@ -1870,8 +1870,14 @@ void bta_av_dereg_comp(tBTA_AV_DATA *p_data)
bta_av_cb.features = 0;
}
/* Clear the Capturing service class bit */
cod.service = BTM_COD_SERVICE_CAPTURING;
/* Clear the Capturing/Rendering service class bit */
if (p_data->api_reg.tsep == AVDT_TSEP_SRC) {
cod.service = BTM_COD_SERVICE_CAPTURING | BTM_COD_SERVICE_AUDIO;
} else {
#if (BTA_AV_SINK_INCLUDED == TRUE)
cod.service = BTM_COD_SERVICE_RENDERING | BTM_COD_SERVICE_AUDIO;
#endif
}
utl_set_device_class(&cod, BTA_UTL_CLR_COD_SERVICE_CLASS);
}
}

View file

@ -577,15 +577,19 @@ static void bta_av_api_register(tBTA_AV_DATA *p_data)
#endif
}
/* Set the Capturing service class bit */
/* Set the Calss of Device (Audio & Capturing/Rendering service class bit) */
if (p_data->api_reg.tsep == AVDT_TSEP_SRC) {
cod.service = BTM_COD_SERVICE_CAPTURING;
cod.service = BTM_COD_SERVICE_CAPTURING | BTM_COD_SERVICE_AUDIO;
cod.major = BTM_COD_MAJOR_AUDIO;
cod.minor = BTM_COD_MINOR_UNCLASSIFIED;
} else {
#if (BTA_AV_SINK_INCLUDED == TRUE)
cod.service = BTM_COD_SERVICE_RENDERING;
cod.service = BTM_COD_SERVICE_RENDERING | BTM_COD_SERVICE_AUDIO;
cod.major = BTM_COD_MAJOR_AUDIO;
cod.minor = BTM_COD_MINOR_LOUDSPEAKER;
#endif
}
utl_set_device_class(&cod, BTA_UTL_SET_COD_SERVICE_CLASS);
utl_set_device_class(&cod, BTA_UTL_SET_COD_ALL);
} /* if 1st channel */
/* get stream configuration and create stream */

View file

@ -73,9 +73,11 @@ void bta_hf_client_register(tBTA_HF_CLIENT_DATA *p_data)
/* create SDP records */
bta_hf_client_create_record(p_data);
/* Set the Audio service class bit */
/* Set the Class of Device (Audio service class bit) */
cod.service = BTM_COD_SERVICE_AUDIO;
utl_set_device_class(&cod, BTA_UTL_SET_COD_SERVICE_CLASS);
cod.major = BTM_COD_MAJOR_AUDIO;
cod.minor = BTM_COD_MINOR_CONFM_HANDSFREE;
utl_set_device_class(&cod, BTA_UTL_SET_COD_ALL);
/* start RFCOMM server */
bta_hf_client_start_server();
@ -98,8 +100,14 @@ void bta_hf_client_register(tBTA_HF_CLIENT_DATA *p_data)
*******************************************************************************/
void bta_hf_client_deregister(tBTA_HF_CLIENT_DATA *p_data)
{
tBTA_UTL_COD cod;
bta_hf_client_cb.scb.deregister = TRUE;
/* Clear the Audio service class bit */
cod.service = BTM_COD_SERVICE_AUDIO;
utl_set_device_class(&cod, BTA_UTL_CLR_COD_SERVICE_CLASS);
/* remove sdp record */
bta_hf_client_del_record(p_data);
@ -653,7 +661,7 @@ void bta_hf_client_ccwa(char *number)
if ((evt = osi_calloc(sizeof(tBTA_HF_CLIENT_NUMBER))) != NULL) {
strlcpy(evt->number, number, BTA_HF_CLIENT_NUMBER_LEN + 1);
evt->number[BTA_HF_CLIENT_NUMBER_LEN] = '\0';
(*bta_hf_client_cb.p_cback)(BTA_HF_CLIENT_CCWA_EVT, evt);
osi_free(evt);
@ -709,7 +717,7 @@ void bta_hf_client_clcc(UINT32 idx, BOOLEAN incoming, UINT8 status, BOOLEAN mpty
strlcpy(evt->number, number, BTA_HF_CLIENT_NUMBER_LEN + 1);
evt->number[BTA_HF_CLIENT_NUMBER_LEN] = '\0';
}
(*bta_hf_client_cb.p_cback)(BTA_HF_CLIENT_CLCC_EVT, evt);
osi_free(evt);
} else {

View file

@ -643,10 +643,17 @@ BOOLEAN bta_jv_check_psm(UINT16 psm)
*******************************************************************************/
void bta_jv_enable(tBTA_JV_MSG *p_data)
{
tBTA_UTL_COD cod;
tBTA_JV_STATUS status = BTA_JV_SUCCESS;
bta_jv_cb.p_dm_cback = p_data->enable.p_cback;
bta_jv_cb.p_dm_cback(BTA_JV_ENABLE_EVT, (tBTA_JV *)&status, 0);
memset(bta_jv_cb.free_psm_list, 0, sizeof(bta_jv_cb.free_psm_list));
/* Set the Class of Device */
cod.major = BTM_COD_MAJOR_UNCLASSIFIED;
cod.minor = BTM_COD_MINOR_UNCLASSIFIED;
utl_set_device_class(&cod, BTA_UTL_SET_COD_MAJOR_MINOR);
}
/*******************************************************************************
@ -662,8 +669,6 @@ void bta_jv_enable(tBTA_JV_MSG *p_data)
void bta_jv_disable (tBTA_JV_MSG *p_data)
{
UNUSED(p_data);
APPL_TRACE_ERROR("%s", __func__);
}

View file

@ -620,9 +620,18 @@
*/
#define BTA_DM_COD_LOUDSPEAKER {0x2C, 0x04, 0x14}
/*
* {SERVICE_CLASS, MAJOR_CLASS, MINOR_CLASS}
*
* SERVICE_CLASS:0x00 None
* MAJOR_CLASS:0x1f - Uncategorized: device code not specified
* MINOR_CLASS:0x00 - None
*/
#define BTA_DM_COD_UNCLASSIFIED {0x00, 0x1f, 0x00}
/* Default class of device */
#ifndef BTA_DM_COD
#define BTA_DM_COD BTA_DM_COD_LOUDSPEAKER
#define BTA_DM_COD BTA_DM_COD_UNCLASSIFIED
#endif
/* The number of SCO links. */