view src/ui/mfw/mfw_BtipsBmg.h @ 78:c632896652ba

mfw/ti1_key.c: properly initialize notified_keys array The code in this ti1_key.c layer needs to call kpd_subscribe() and kpd_define_key_notification() functions in order to register with the KPD driver. The original code passed KPD_NB_PHYSICAL_KEYS in nb_notified_keys - this constant is defined to 24 in kpd_cfg.h on all platforms of interest to us - but it only filled the first 23 slots in the notified_keys array, resulting in stack garbage being passed to KPD API functions. The fix consists of initializing the last missed array slot to KPD_KEY_RECORD, the key ID for the right side button on the D-Sample handset. On our current hw targets this "Record" button exists as the EXTRA button on our Luna keypad board and as the camera button on the Pirelli DP-L10. There is no support whatsoever for this button in current BMI+MFW, we have no plans of doing anything with Pirelli's camera button even if we do get our UI fw running on that phone, and the Mother's dream of building our own FreeCalypso handset with the same button arrangement as D-Sample (including the right side button) is currently very nebulous - but let us nonetheless handle the full set of buttons on the KPD to MFW interface, and let upper layers weed out unsupported buttons.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Oct 2020 23:41:01 +0000
parents 67bfe9f274f6
children
line wrap: on
line source

#ifndef DEF_MFW_BTIPS_BMG
#define DEF_MFW_BTIPS_BMG
/* =========================================================
*             Texas Instruments OMAP(TM) Platform Software
*  (c) Copyright Texas Instruments, Incorporated.  All Rights Reserved.
*
*  Use of this software is controlled by the terms and conditions found
*  in the license agreement under which this software has been supplied.
* ========================================================== */
/*
 $Project name: Basic Bluetooth MMI
 $Project code:
 $Module:   Bluetooth BMG MFW
 $File:       Mfw_BtipsBmg.h
 $Revision:   1.0
 $Author:   Texas Instruments
 $Date:       26/06/07

********************************************************************************

 Description:

    This module provides the BTIPS BMG APPlication functionality.

********************************************************************************
 $History: Mfw_BtipsBmg.h

  26/06/07 Sasken original version

 $End

*******************************************************************************/


#define BT_MAX_DEVICE_LIST		10
#define MAX_RESPONSES   	10	//limit the number of Inquiry responses to 10

#include <me.h>
#include <Bttypes.h>

typedef struct _Bmg_DeviceList
{
	U8				myIndex;
	BD_ADDR 		bdAddr;
	UBYTE 			name[BT_MAX_REM_DEV_NAME];
}Bmg_DeviceList;

typedef struct _Bmg_ConnectedDeviceList
{
	U8				myIndex;
	BD_ADDR 		bdAddr;
	UBYTE 			name[BT_MAX_REM_DEV_NAME];
	U32   			ServiceId;
}Bmg_ConnectedDeviceList ;

typedef enum {
	BTIPS_GENERIC_DEVICE_SEARCH=0,
	BTIPS_A2DP_DEVICE_SEARCH,
	BTIPS_OPP_DEVICE_SEARCH,
	BTIPS_HSHF_DEVICE_SEARCH,
	BTIPS_DEVICE_SERVICES_SEARCH,
	BTIPS_CONNECTED_DEVICES_SEARCH	
}BTIPS_SEARCH_TYPES;

typedef enum{

	BTIPS_SDP_SERVICE_FTPS=0,
	BTIPS_SDP_SERVICE_OPPC,
	BTIPS_SDP_SERVICE_OPPS,
	BTIPS_SDP_SERVICE_VG,
	BTIPS_SDP_SERVICE_A2DP,
	  BTIPS_MAX_PROFILE_COUNT,

}BTIPS_SERVICE_TYPES;

BOOL mfw_btips_bmgDeviceDelete(const BD_ADDR *bdAddr);
BOOL mfw_btips_bmgSetPhoneVisibility(BOOL status);
BOOL mfw_btips_bmgGetPhoneVisibility(void);
BOOL mfw_btips_bmgSendPin (const BD_ADDR	*bdAddr, 
								const U8 				*pin,
								const U8 				len);
BOOL mfw_btips_bmgBond(const BD_ADDR 		*bdAddr,
							const U8 				*pin, 
							const U8 				len);

BOOL mfw_btips_bmgSetLocalDeviceName (U8 *name);
BOOL mfw_btips_bmgGetLocalDeviceName(U8 *name);
BOOL mfw_btips_bmgSetRemoteDeviceName( const BD_ADDR 	*bdAddr, U8 *name);
BOOL mfw_btips_bmgSetDeviceRecord( const BD_ADDR 	*bdAddr, U32 sdpSericesMask);
BOOL mfw_btips_bmg_getPairedDevices(Bmg_DeviceList *pairedDeviceList, U32 *count);
BOOL mfw_btips_bmg_getConnectedDevices(Bmg_ConnectedDeviceList *pairedDeviceList, U32 *count);
U32 mfw_btips_bmg_getConnectedDevicesCount(void);
BOOL mfw_btips_bmg_getConnectedDevicesForProfile(U32 profile_num, BD_ADDR 	*bdAddr,U8 *name, U32 *ServiceId);
BOOL mfw_btips_bmgDeviceSetConnectPermissionAllow(const BD_ADDR 	*bdAddr,BOOL permission);
BOOL mfw_btips_bmgDeviceSetConnectPermissionAsk(const BD_ADDR 	*bdAddr,BOOL permission);
U32 mfw_btips_bmgDeviceGetServices(const BD_ADDR 	*bdAddr);
BOOL mfw_btips_ftpsGetConnectedDevice (BD_ADDR *bdAddr, U8 *name);
BOOL mfw_btips_bmgGetDeviceState (const BD_ADDR *bdAddr, BtRemDevState *state);
BOOL mfw_btips_bmgSetDeviceNameInRecord(const BD_ADDR *bdAddr, UBYTE *name);
BOOL mfw_btips_bmg_DiscoverServices(const BD_ADDR 	*bdAddr, SdpServicesMask sdpServicesMask);


#endif