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);
}
}
#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 */
/* 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();
*******************************************************************************/
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);
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);
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 {
*******************************************************************************/
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);
}
/*******************************************************************************
void bta_jv_disable (tBTA_JV_MSG *p_data)
{
UNUSED(p_data);
-
- APPL_TRACE_ERROR("%s", __func__);
}
*/
#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. */