📄 mfw_bt.c
字号:
}
switch(btibtp_reconf_profile_fax_req((T_BTI_DEVICE_TYPE)service,fax_config))
{ /* BTP_RECONF_PROFILE_REQ to BT */
case BTP_OK:
return MFW_BT_EXECUTE;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
return MFW_BT_FAIL;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE : bt_service_search|
+--------------------------------------------------------------------+
PURPOSE : request search of services and their service names
*/
T_MFW_BT_RESULT_BT bt_service_search(T_MFW_BT_SERVICE_TYPE service)
{
TRACE_FUNCTION ("bt_service_search()");
if((service EQ MFW_BT_HEADSET) OR
(service EQ MFW_BT_DIAL_UP) OR
(service EQ MFW_BT_FAX_GW) OR
(service EQ MFW_BT_OPP) OR
(service EQ MFW_BT_SYNC_CMD))
{/* start browsing procedure */
switch(btibtp_service_search_req((T_BTI_DEVICE_TYPE)service, SERVICE_SEARCH))
{
case BTP_OK:
return MFW_BT_EXECUTE;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
return MFW_BT_FAIL;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE : bt_device_search |
+--------------------------------------------------------------------+
PURPOSE : request search of devices and their service id's
*/
T_MFW_BT_RESULT_BT bt_device_search(void)
{
TRACE_FUNCTION ("bt_device_search()");
/* start browsing procedure */
switch(btibtp_device_search_req(DEVICE_SEARCH))
{
case BTP_OK:
return MFW_BT_EXECUTE;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE : bt_extended_search |
+--------------------------------------------------------------------+
PURPOSE : request search of devices and their service id's
*/
T_MFW_BT_RESULT_BT bt_extended_search(UINT8 inq_length,
UINT8 max_num_of_responses,
T_MFW_DEVICE_CLASS class_of_device[],
BOOLEAN need_device_name,
BOOLEAN need_services,
T_MFW_SERVICE_ID service_id)
{
TRACE_FUNCTION ("bt_extended_search()");
/* start browsing procedure */
switch(btibtp_extended_search_req(inq_length, max_num_of_responses,
class_of_device, need_device_name,
need_services, service_id))
{
case BTP_OK:
return MFW_BT_EXECUTE;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE : bt_search_abort |
+--------------------------------------------------------------------+
PURPOSE : start abort of browsing procedure
*/
T_MFW_BT_RESULT_BT bt_search_abort(void)
{
TRACE_FUNCTION ("bt_search_abort()");
switch(btibtp_search_abort())
{
case BTP_OK:
return MFW_BT_OK;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE : bt_connect_hsg |
+--------------------------------------------------------------------+
PURPOSE : request connection with the service headset
*/
T_MFW_BT_RESULT_BT bt_connect_hsg (T_MFW_BT_SERVICE_TYPE service,
T_MFW_BT_REQ_ID req_id,
T_MFW_BT_BD_ADDR bd_addr[], UINT8 mode)
{
TRACE_FUNCTION ("bt_connect_hsg()");
/*
*** if req_id equal MFW_BT_DEFAULT_HEADSET_ID: headset gateway will
automatically select a headset from the default headset list
if req_id equal MFW_BT_INVALID_HEADSET_ID: headset gateway will try to
connect to the headset whose BT headset address is in bd_addr
otherwise headset gateway will call the headset related to headset_id
in the default headset list
***
*/
/* BTP_CONNECT_DEVICE_REQ to BT */
if(service EQ MFW_BT_HEADSET)
{
switch(btibtp_connect_hsg_req(req_id, bd_addr, mode))
{
case BTP_OK:
return MFW_BT_EXECUTE;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_NOT_SUPP:
return MFW_BT_NO_SUPP;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
else
return MFW_BT_FAIL;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE :bt_get_auto_connect|
+--------------------------------------------------------------------+
PURPOSE : get state automatic connection on/off for headset gateway
*/
T_MFW_BT_RESULT_BT bt_get_auto_connect(T_MFW_BT_SERVICE_TYPE service,
T_MFW_BT_HSG_CLIENT_CONFIG *conf)
{
T_MFW_BT_HSG_CLIENT_CONFIG client_conf;
T_MFW_BT_HSG_SERVER_CONFIG server_conf;
T_MFW_BT_RESULT_BT result;
TRACE_FUNCTION ("bt_get_auto_connect()");
memset(&client_conf,0,sizeof(client_conf));
memset(&server_conf,0,sizeof(server_conf));
result = bt_get_config((T_BTI_DEVICE_TYPE)service,&client_conf,&server_conf);
if(result EQ MFW_BT_OK)
{
conf->config_mode = (T_MFW_BT_CONFIG_MODE)client_conf.config_mode;
}
return result;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE :bt_auto_connect |
+--------------------------------------------------------------------+
PURPOSE : set feature automatic connection on/off for headset gateway
*/
T_MFW_BT_RESULT_BT bt_auto_connect(T_MFW_BT_SERVICE_TYPE service,
T_MFW_BT_AUTO_CONNECT_STATE set_state)
{
T_MFW_BT_HSG_CLIENT_CONFIG client_conf;
T_MFW_BT_HSG_SERVER_CONFIG server_conf;
T_MFW_BT_RESULT_BT result;
TRACE_FUNCTION ("bt_auto_connect()");
memset(&client_conf,0,sizeof(client_conf));
memset(&server_conf,0,sizeof(server_conf));
if(set_state EQ MFW_BT_AUTO_CONNECT_ON OR
set_state EQ MFW_BT_AUTO_CONNECT_OFF)
{/* read state of config_mode */
result = bt_get_config((T_BTI_DEVICE_TYPE)service,&client_conf,&server_conf);
if(result NEQ MFW_BT_OK)
{
return result;
}
else
{
if(set_state EQ MFW_BT_AUTO_CONNECT_ON)
{
if(client_conf.config_mode NEQ MFW_BT_AUTO_OUTG_DEF_CONN_ON)
{/* connection with default pre-defined headset as soon as it receives a
RING command from GSM)*/
client_conf.config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_ON;
return (bt_reconfig_profile_hsg_cl(service,client_conf));
}
}
else
{
if(client_conf.config_mode EQ MFW_BT_AUTO_OUTG_DEF_CONN_ON)
{
client_conf.config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_OFF;
return (bt_reconfig_profile_hsg_cl(service,client_conf));
}
}
}
}
else
return MFW_BT_FAIL;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE :bt_set_pref_headset |
+--------------------------------------------------------------------+
PURPOSE : add preferred headset in default headset list
*/
T_MFW_BT_RESULT_BT bt_set_pref_headset(T_MFW_BT_SERVICE_TYPE service,
T_MFW_BT_BD_ADDR bd_addr[],
T_MFW_BT_HSG_NAME hsg_name[],
T_MFW_BT_PRIORITY priority,
BOOL rem_audio_ctr_supp_hsg,
T_MFW_BT_CNF_ID * headset_cnf_id)
{
T_MFW_BT_CNF_ID cnf_id = 0;
TRACE_FUNCTION ("bt_set_pref_service()");
if(service EQ MFW_BT_HEADSET)
{
if(priority <= MFW_HSG_HEADSET_MAX_PRIORITY)
{
switch(btibtp_set_default_headset(bd_addr,hsg_name,priority,rem_audio_ctr_supp_hsg,&cnf_id))
/* add headset in default headset list */
{
case BTP_OK:
*headset_cnf_id = cnf_id;
return MFW_BT_OK;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_HSG_ALREADY_STOR:
return MFW_BT_HSG_ALREADY_STORED;
case BTP_NOT_READY:
return MFW_BT_NOT_READY;
case BTP_INT_ERR:
return MFW_BT_INT_ERR;
case BTP_MEMORY_ERR:
return MFW_BT_MEM_ERR;
case BTP_NOK:
return MFW_BT_NOK;
}
}
else
return MFW_BT_INVALID_PARA;
}
else
return MFW_BT_FAIL;
}
/*
+--------------------------------------------------------------------+
| PROJECT : MMI-Framework (8445) MODULE : MFW_BT |
| STATE : code ROUTINE :bt_is_pref_headset |
+--------------------------------------------------------------------+
PURPOSE : check if preferred headset is in default headset list
*/
T_MFW_BT_RESULT_BT bt_is_pref_headset(T_MFW_BT_SERVICE_TYPE service,
T_MFW_BT_BD_ADDR bd_addr[],
T_MFW_BT_CNF_ID * headset_cnf_id)
{
T_MFW_BT_CNF_ID cnf_id = 0;
TRACE_FUNCTION ("bt_is_pref_headset()");
if(service EQ MFW_BT_HEADSET)
{
switch(btibtp_query_default_headset(bd_addr,&cnf_id))
/* add headset in default headset list */
{
case BTP_OK:
*headset_cnf_id = cnf_id;
return MFW_BT_OK;
case BTP_INVALID_PARAMETER:
return MFW_BT_INVALID_PARA;
case BTP_HSG_ALREADY_STOR:
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -