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
+ −