diff src/ui3/mfw/mfw_bt_api.h @ 420:e8ddbb0837ed

src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Jan 2018 03:09:00 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ui3/mfw/mfw_bt_api.h	Sun Jan 21 03:09:00 2018 +0000
@@ -0,0 +1,156 @@
+/*******************************************************************************\
+*                                                                           	*
+*  TEXAS INSTRUMENTS ISRAEL PROPRIETARY AND CONFIDENTIAL INFORMATION			*
+*																				*
+*  LEGAL NOTE: THE TRANSFER OF THE TECHNICAL INFORMATION IS BEING MADE			*
+*	UNDER AN EXPORT LICENSE ISSUED BY THE ISRAELI GOVERNMENT AND THAT THE		*
+*	APPLICABLE EXPORT LICENSE DOES NOT ALLOW THE TECHNICAL INFORMATION TO		*
+*	BE USED FOR THE MODIFICATION OF THE BT ENCRYPTION OR THE DEVELOPMENT		*
+*	OF ANY NEW ENCRYPTION. THE INFORMATION CAN BE USED FOR THE INTERNAL			*
+*	DESIGN AND MANUFACTURE OF TI PRODUCTS THAT WILL CONTAIN THE BT IC.			*
+*																				*
+\*******************************************************************************/
+/*******************************************************************************\
+*
+*   FILE NAME:      mfw_bt_api.h
+*
+*   DESCRIPTION:	This file defines the API between BMI (MMI) and BT applications
+*
+*   AUTHOR:         Uzi Doron
+*
+*	Rev 0.2
+*
+\*******************************************************************************/
+
+
+#ifndef __MFW_BT_API
+#define __MFW_BT_API
+/**********************************************/
+/*                                            */
+/*                                            */
+/*    from here on - events from BMI to BT    */
+/*                                            */
+/*                                            */
+/**********************************************/
+
+/*-------------------------------------------------------------------------------
+ * BmiAvEvent type
+ *
+ *     Defines Audio/Video events initiated by MMI side.
+ *     These events will be sent from BMI to BT
+ *
+ */
+typedef enum
+{
+BMI_EVENT_USER_PLAY = 0x0001, /* user pressed Play   on handset */
+BMI_EVENT_USER_STOP,               /* user pressed Stop   on handset */
+BMI_EVENT_USER_PAUSE,            /* user pressed Pause  on handset */
+BMI_EVENT_USER_RESUME,         /* user pressed Resume  on handset */ 
+BMI_EVENT_TRACK_START,         /* a track is starting to play */
+BMI_EVENT_TRACK_END              /* a track ended playing */
+}BmiAvEvent;
+
+/*-------------------------------------------------------------------------------
+ * BmiEventCallback type
+ *
+ *     A callback function, implemented at BT application, that will be called by
+ *     BMI to send events (of type BmiAvEvent) to BT. BMI will be able to send events
+ *     after BT has registered such an event callback function
+ *
+ *     At BT side the function prototype will look like:
+ *     void BT_NotifyBmiEvent(BmiAvEvent event);
+ *
+ *     NOTE: Since the callback is called from BMI context, the BT application should
+ *     not spend considerable time in this function. In case significant processing 
+ *     time and/or asynchronous activity is required as a result of calling this function,
+ *     the BT application should switch to its own context to perform this activity.
+ *     It must not block the BMI application.
+*/
+typedef void (*BmiEventCallback)(BmiAvEvent event);
+
+/*-------------------------------------------------------------------------------
+ * BMI_RegisterEventCallback()
+ *
+ *		BT application will call this function to register an event callback
+ *      function with BMI.
+ *
+ * Parameters:
+ *		eventCallback [in] - pointer of the callback function. if this parameter is
+ *                           NULL (0), BMI should not try to make callbacks.
+ *
+ * Returns:
+ *      void
+ *
+ */
+void BMI_RegisterEventCallback(BmiEventCallback eventCallback);
+
+
+
+/**********************************************/
+/*                                            */
+/*                                            */
+/*    from here on - events from BT to BMI    */
+/*                                            */
+/*                                            */
+/**********************************************/
+
+/*-------------------------------------------------------------------------------
+ * BtAppEvent type
+ *
+ *     Defines events initiated by BT side.
+ *     These events will be sent from BT to BMI
+ */
+typedef enum 
+{
+BT_EVENT_USER_PLAY = 0x0044,    /* user pressed Play   on BT headset */
+BT_EVENT_USER_STOP,                   /* user pressed Stop   on BT headset */
+BT_EVENT_USER_PAUSE                 /* user pressed Pause  on BT headset */
+}BtAppEvent;
+
+/*-------------------------------------------------------------------------------
+ * BMI_NotifyBtEvent()
+ *
+ *		Notify the BMI about an A/V event initiated at BT side.
+ *      This function is implemented in the BMI application and used by the BT application.
+ *
+ *      NOTE: Since it is called from BT context, the BMI application should not spend
+ *      considerable time in this function. In case significant processing time and/or 
+ *      asynchronous activity is required as a result of calling this function, the BMI
+ *      application should switch to its own context to perform this activity. It must
+ *      not block the BT application.
+ *
+ * Parameters:
+ *		event [in] - the reported event
+ *
+ * Returns:
+ *      void
+ *
+ */
+void BMI_NotifyBtEvent(BtAppEvent event);
+
+/*-------------------------------------------------------------------------------
+ * BMI_SwitchAudioToBtHeadset()
+ *
+ *		Connect or disconnect the audio output to BT headset.
+ *      BT will call this function to let BMI know an A2DP link to a wireless headset
+ *      has been connected (and is in Open state), or disconnected. 
+ * 
+ *      When link is connected, BMI will decide whether it wants to 
+ *      direct the audio output to the wireless headset.
+ *
+ * Parameters:
+ *		connected [in] - whether the link has just been connected or disconnected:
+ *                       TRUE - connected
+ *                       FALSE - disconnected
+ *
+ * Returns:
+ *      when connect parameter is TRUE:
+ *		- return TRUE when BMI approves and will use A2DP headset as the audio output
+ *		- return FALSE when BMI rejects using A2DP headset as the audio output
+ *
+ *      when connect parameter is FALSE - returned value is ignored
+ *
+ */
+BOOL BMI_SwitchAudioToBtHeadset(BOOL connected);
+#endif /* __MFWE_BT_API */
+