FreeCalypso > hg > fc-magnetite
view src/aci2/mfw/mfw_bte.h @ 597:f18b29e27be5
First attempt at MCSI voice path automatic switching
The function is implemented at the ACI level in both aci2 and aci3,
successfully avoids triggering the DSP bug on the first call,
but the shutdown of MCSI upon call completion is not working properly yet
in either version.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 27 Mar 2019 22:18:35 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/* +-------------------------------------------------------------------+ | PROJECT: MMI-Framework (8445) $Workfile:: mfw_bte.h $| | $Author:: NDH $Revision:: 1 $| | CREATED: 17.04.04 $Modtime:: 17.04.04 10:48 $| | STATE : code | +-------------------------------------------------------------------+ MODULE : MFW_BT PURPOSE : This module contains the definitions for MFW Bluetooth Management */ #ifndef DEF_MFW_BT_HEADER #define DEF_MFW_BT_HEADER #define BT_INTERFACE #include "bta_riviera.h" #include "target.h" #include "buildcfg.h" #include "bta_api.h" #include "mfw_mfw.h" #include "mfw_win.h" typedef enum { MFW_BT_UNKNOWN_DEVICE = -8, MFW_BT_DATA_BASE_FULL = -7, MFW_BT_NOT_INITIALISED = -6, MFW_BT_FAILED_TO_STORE_EVENT = -5, MFW_BT_INVALID_DATA = -4, MFW_BT_INVALID_EVENT = -3, MFW_BT_INVALID_ORIG = -2, MFW_BT_UNABLE_TO_CREATE_EVT_BUF = -1, MFW_BT_FAIL = 0, MFW_BT_SUCCESS = 1 } T_MFW_BT_STATUS; typedef enum { MFW_BT_DEFAULT_VIS = -1, MFW_BT_SHOWN = BTA_DM_GENERAL_DISC, MFW_BT_HIDDEN = BTA_DM_NON_DISC }T_MFW_STARTUP_VISIBILITY; /* ** Debug Macros : These will enable easy enabling/disabling of tracing within the Bluetooth environment */ #define MFW_BT_DEBUG 1 #ifdef MFW_BT_DEBUG #define MFW_BT_TRACE(a) TRACE_EVENT(a) #define MFW_BT_TRACE_P1(s, a) TRACE_EVENT_P1(s, a) #define MFW_BT_TRACE_P2(s, a, b) TRACE_EVENT_P2(s, a, b) #define MFW_BT_TRACE_P3(s, a, b, c) TRACE_EVENT_P3(s, a, b, c) #define MFW_BT_TRACE_P4(s, a, b, c, d) TRACE_EVENT_P4(s, a, b, c, d) #define MFW_BT_TRACE_P5(s, a, b, c, d, e) TRACE_EVENT_P5(s, a, b, c, d, e) #define MFW_BT_TRACE_P6(s, a, b, c, d, e, f) TRACE_EVENT_P6(s, a, b, c, d, e, f) #define MFW_BT_TRACE_P7(s, a, b, c, d, e, f, g) TRACE_EVENT_P7(s, a, b, c, d, e, f, g) #define MFW_BT_TRACE_P8(s, a, b, c, d, e, f, g, h) TRACE_EVENT_P8(s, a, b, c, d, e, f, g, h) #define MFW_BT_TRACE_P9(s, a, b, c, d, e, f, g, h, i) TRACE_EVENT_P9(s, a, b, c, d, e, f, g, h, i) #else #define MFW_BT_TRACE(a) #define MFW_BT_TRACE_P1(s, a) #define MFW_BT_TRACE_P2(s, a, b) #define MFW_BT_TRACE_P3(s, a, b, c) #define MFW_BT_TRACE_P4(s, a, b, c, d) #define MFW_BT_TRACE_P5(s, a, b, c, d, e) #define MFW_BT_TRACE_P6(s, a, b, c, d, e, f) #define MFW_BT_TRACE_P7(s, a, b, c, d, e, f, g) #define MFW_BT_TRACE_P8(s, a, b, c, d, e, f, g, h) #define MFW_BT_TRACE_P9(s, a, b, c, d, e, f, g, h, i) #endif /* ** Status return values : The Bluetooth module will use meaningful return values to the functions so the software ** can be engineered to react appropriately to specific events */ /********************************************************************************************** ** ** Mfw -> BMI Interface (Event related definitions) ** **********************************************************************************************/ /* * Events are organised as bitmaps */ #define E_BT_ENABLE_CMPL (T_MFW_EVENT)0x00000001 #define E_BT_DISABLE_CMPL (T_MFW_EVENT)0x00000002 #define E_BT_ALL_GENERIC_SERVICES (T_MFW_EVENT)0x0000000F #define E_BT_ALL_SERVICES ( (T_MFW_EVENT)(E_BT_ALL_GENERIC_SERVICES) \ | (T_MFW_EVENT)(E_BT_ALL_DM_SERVICES)) /*#if 0 Not Implemented yet | (T_MFW_EVENT)(E_BT_ALL_DG_SERVICES) \ | (T_MFW_EVENT)(E_BT_ALL_AG_SERVICES) \ | (T_MFW_EVENT)(E_BT_ALL_OP_SERVICES) \ | (T_MFW_EVENT)(E_BT_ALL_FT_SERVICES) \ #endif */ /* ** Signal Parameter Structure Definitions */ typedef struct { BOOL Success; } T_MFW_BT_ENABLE_CMPL; #include "mfw_bt_dm.h" #include "mfw_bt_dg.h" #include "mfw_bt_ag.h" #include "mfw_bt_op.h" #include "mfw_bt_ft.h" /* * BT Mfw -> BMI signal parameter */ typedef union { /* ** Generic Service Signal Parameters */ T_MFW_BT_ENABLE_CMPL enable_cmpl; /* ** Device Manager Signal Parameters */ T_MFW_BT_DM_LINK_UP link_up; T_MFW_BT_DM_LINK_DOWN link_down; T_MFW_BT_DM_INQ_RES inq_res; T_MFW_BT_DM_INQ_CMPL inq_cmpl; T_MFW_BT_DM_DISC_RES disc_res; T_MFW_BT_DM_PIN_REQ pin_req; T_MFW_BT_DM_AUTH_CMPL auth_cmpl; T_MFW_BT_DM_AUTHORIZE_REQ authorize_req; T_MFW_BT_DM_SIG_STRENGTH_IND sig_strength_ind; } T_MFW_BT_PARA; /* * BT Control Block */ typedef struct { T_MFW_EVENT emask; /* events of interest */ T_MFW_EVENT event; /* current event */ T_MFW_CB handler; T_MFW_BT_PARA para; } T_MFW_BT; void mfw_bt_signal(T_MFW_EVENT event, void *para); /******************************************************************************* $Function: mfw_bt_enable $Description: This function will start the whole process of enabling Bluetooth. $Returns: MFW_BT_FAIL if the chip is not stopped or if the generic event handler doesn't start correctly. $Arguments: Specify the visibility parameter at start-up. MFW_BT_DEFAULT => use value in flash MFW_BT_SHOWN => device will be visible ( that doesn't update the flash ) MFW_BT_HIDDEN => device will be hidden ( ... ) *******************************************************************************/ T_MFW_BT_STATUS mfw_bt_enable(T_MFW_STARTUP_VISIBILITY startup_visibility ); /* */ /******************************************************************************* $Function: mfw_bt_enable_cb $Description: mfw_bt_enable will cause a BTA_DM_SYS_START_EVT to be sent. At this moment we call BTA_EnableBluetooth. When we receive BTA_DM_ENABLE_EVT, we call this function. $Returns: Will send a BMI signal if there is no default name. If the user cancels the input, BT will then be stopped. Will send a E_BT_ENABLE_CMPL event when the initialization is done. $Arguments: none *******************************************************************************/ void mfw_bt_enable_cb(void); /******************************************************************************* $Function: mfw_bt_disable $Description: This function stops the BT system. $Returns: None $Arguments: *******************************************************************************/ void mfw_bt_disable(void); /******************************************************************************* $Function: mfw_bt_init $Description: This function initialises the Mfw Bluetooth Persistent Data on Power Up. $Returns: None $Arguments: None *******************************************************************************/ void mfw_bt_init(void); /******************************************************************************* $Function: mfw_bt_exit $Description: This function will tidy up any resources used by the Mfw Bluetooth Module on Power Down $Returns: None $Arguments: None *******************************************************************************/ void mfw_bt_exit(void); /******************************************************************************* $Function: mfw_bt_create $Description: This function initialises an Mfw Bluetooth entity and adds it to the Window Stack $Returns: T_MFW_HND : A handle for the entity $Arguments: T_MFW_HND : Parent Window Handle T_MFW_EVENT : Event Mask of the events to be handled T_MFW_CB : Callback function to handle the events *******************************************************************************/ T_MFW_HND mfw_bt_create(T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc); /******************************************************************************* $Function: mfw_bt_delete $Description: This function clears down an Mfw Bluetooth entity and removes it from the Window Stack $Returns: T_MFW_RES : The result of the function $Arguments: T_MFW_HND : The Handle of the entity to be removed *******************************************************************************/ T_MFW_RES mfw_bt_delete(T_MFW_HND hnd); /******************************************************************************* $Function: mfw_bt_signal $Description: This function sends the Mfw Bluetooth events from the Mfw to the BMI. $Returns: None $Arguments: T_MFW_EVENT : The event to be sent to the BMI void * : Pointer to the Event data *******************************************************************************/ void mfw_bt_signal(T_MFW_EVENT event, void *para); /******************************************************************************* $Function: mfw_bt_sign_exec $Description: This function sends the Mfw Bluetooth events from the Mfw to the BMI. $Returns: None $Arguments: None *******************************************************************************/ BOOL mfw_bt_sign_exec (T_MFW_HDR * cur_elem, T_MFW_EVENT event, T_MFW_BT_PARA * para); #endif