www.pudn.com > BlueSoleil_SDK1.0.0.zip > Btsdk_API.h, change:2008-03-25,size:12172b


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
* 
* Copyright (c) 1999-2007 IVT Corporation 
* 
* All rights reserved. 
*  
---------------------------------------------------------------------------*/ 
  
///////////////////////////////////////////////////////////////////////////// 
// Module Name: 
//     SDK_API.h 
// Abstract: 
//     This module defines exported BlueSoleil SDK API prototypes.  
// Usage: 
//     #include "SDK_API.h" 
//  
// Author://      
//      
// Revision History: 
//     2007-12-25		Created 
//  
///////////////////////////////////////////////////////////////////////////// 
 
 
 
#ifndef _BTSDK_API_H 
#define _BTSDK_API_H 
 
 
 
/*************** Function Prototype ******************/ 
 
/* Initialization and Termination */ 
typedef void Func_ReceiveBluetoothStatusInfo(ULONG usMsgType, ULONG pulData, ULONG param, BTUINT8 *arg); 
BTINT32 Btsdk_Init(void); 
BTINT32 Btsdk_Done(void); 
BTBOOL Btsdk_IsSDKInitialized(void); 
BTBOOL Btsdk_IsServerConnected(); 
BTINT32	Btsdk_RegisterGetStatusInfoCB4ThirdParty(Func_ReceiveBluetoothStatusInfo* statusCBK); 
BTINT32 Btsdk_RegisterCallback4ThirdParty(BtSdkCallbackStru* call_back); 
BTINT32	Btsdk_SetStatusInfoFlag(USHORT usMsgType); 
 
 
/* Memory Management */ 
void *Btsdk_MallocMemory(BTUINT32 size); 
void Btsdk_FreeMemory(void *memblock); 
 
/* Local Bluetooth Device Initialization */ 
BTINT32 Btsdk_StartBluetooth(void); 
BTINT32 Btsdk_StopBluetooth(void); 
BTBOOL Btsdk_IsBluetoothReady(void); 
BTBOOL Btsdk_IsBluetoothHardwareExisted(); 
 
/* Local Device Mode */ 
BTINT32 Btsdk_SetDiscoveryMode(BTUINT16 mode); 
BTINT32 Btsdk_GetDiscoveryMode(BTUINT16 *mode); 
 
/* Local Device Information */ 
BTINT32 Btsdk_GetLocalDeviceAddress(BTUINT8 *bd_addr); 
BTINT32 Btsdk_SetLocalName(BTUINT8* name, BTUINT16 len); 
BTINT32 Btsdk_GetLocalName(BTUINT8* name, BTUINT16 *len); 
BTINT32 Btsdk_SetLocalDeviceClass(BTUINT32 device_class); 
BTINT32 Btsdk_GetLocalDeviceClass(BTUINT32 *device_class); 
BTINT32 Btsdk_GetLocalLMPInfo(BtSdkLocalLMPInfoStru *lmp_info); 
 
/* Local Device Application Extension */ 
BTINT32 Btsdk_VendorCommand(BTUINT32 ev_flag, PBtSdkVendorCmdStru in_cmd, PBtSdkEventParamStru out_ev); 
BTUINT32 Btsdk_EnumAVDriver(); 
void Btsdk_DeEnumAVDriver(); 
 
/* Remote Device Discovery */ 
FUNC_EXPORT BTINT32 Btsdk_StartDeviceDiscovery(BTUINT32 device_class, BTUINT16 max_num, BTUINT16 max_seconds); 
typedef void  (Btsdk_Inquiry_Result_Ind_Func)(BTDEVHDL dev_hdl); 
typedef void  (Btsdk_Inquiry_Complete_Ind_Func)(void); 
FUNC_EXPORT BTINT32 Btsdk_StopDeviceDiscovery(void); 
FUNC_EXPORT BTINT32 Btsdk_UpdateRemoteDeviceName(BTDEVHDL dev_hdl, BTUINT8 *name, BTUINT16 *plen); 
FUNC_EXPORT BTINT32 Btsdk_CancelUpdateRemoteDeviceName(BTDEVHDL dev_hdl); 
 
/* Device Pairing */ 
FUNC_EXPORT BTINT32 Btsdk_IsDevicePaired(BTDEVHDL dev_hdl, BTBOOL *pis_paired); 
FUNC_EXPORT BTINT32 Btsdk_PairDevice(BTDEVHDL dev_hdl); 
FUNC_EXPORT BTINT32 Btsdk_UnPairDevice(BTDEVHDL dev_hdl); 
 
/* Link Management */ 
FUNC_EXPORT BTBOOL Btsdk_IsDeviceConnected(BTDEVHDL dev_hdl); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteDeviceRole(BTDEVHDL dev_hdl, BTUINT16 *prole); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteLMPInfo(BTDEVHDL dev_hdl, BtSdkRemoteLMPInfoStru *info); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteRSSI(BTDEVHDL dev_hdl, BTINT8* prssi); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteLinkQuality(BTDEVHDL dev_hdl, BTUINT16 *plink_quality); 
FUNC_EXPORT BTINT32 Btsdk_GetSupervisionTimeout(BTDEVHDL dev_hdl, BTUINT16 *ptimeout); 
FUNC_EXPORT BTINT32 Btsdk_SetSupervisionTimeout(BTDEVHDL dev_hdl, BTUINT16 timeout); 
FUNC_EXPORT BTINT32 Btsdk_ChangeConnectionPacketType(BTDEVHDL dev_hdl, BTUINT16 packet_type); 
 
/* Remote Device Database Management */ 
FUNC_EXPORT BTDEVHDL Btsdk_GetRemoteDeviceHandle(BTUINT8 *bd_addr); 
FUNC_EXPORT BTDEVHDL Btsdk_AddRemoteDevice(BTUINT8 *bd_addr); 
FUNC_EXPORT BTINT32 Btsdk_DeleteRemoteDeviceByHandle(BTDEVHDL dev_hdl); 
FUNC_EXPORT BTINT32 Btsdk_DeleteUnpairedDevicesByClass(BTUINT32 device_class); 
FUNC_EXPORT BTUINT32 Btsdk_GetStoredDevicesByClass(BTUINT32 dev_class, BTDEVHDL *pdev_hdl, BTUINT32 max_dev_num); 
FUNC_EXPORT BTUINT32 Btsdk_GetInquiredDevices(BTDEVHDL *pdev_hdl, BTUINT32 max_dev_num); 
FUNC_EXPORT BTUINT32 Btsdk_GetPairedDevices(BTDEVHDL *pdev_hdl, BTUINT32 max_dev_num); 
FUNC_EXPORT BTSDKHANDLE Btsdk_StartEnumRemoteDevice(BTUINT32 flag, BTUINT32 dev_class); 
FUNC_EXPORT BTDEVHDL Btsdk_EnumRemoteDevice(BTSDKHANDLE enum_handle, PBtSdkRemoteDevicePropertyStru rmt_dev_prop); 
FUNC_EXPORT BTINT32 Btsdk_EndEnumRemoteDevice(BTSDKHANDLE enum_handle); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteDeviceAddress(BTDEVHDL dev_hdl, BTUINT8 *bd_addr); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteDeviceName(BTDEVHDL dev_hdl, BTUINT8 *name, BTUINT16 *plen); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteDeviceClass(BTDEVHDL dev_hdl, BTUINT32 *pdevice_class); 
FUNC_EXPORT BTINT32 Btsdk_GetRemoteDeviceProperty(BTDEVHDL dev_hdl, PBtSdkRemoteDevicePropertyStru rmt_dev_prop); 
FUNC_EXPORT BTINT32 Btsdk_RemoteDeviceFlowStatistic(BTDEVHDL dev_hdl, BTUINT32* rx_bytes, BTUINT32* tx_bytes); 
 
/* Service Discovery */ 
BTINT32 Btsdk_BrowseRemoteServicesEx(BTDEVHDL dev_hdl, PBtSdkSDPSearchPatternStru psch_ptn, BTUINT32 ptn_num, BTSVCHDL *svc_hdl, BTUINT32 *svc_count); 
BTINT32 Btsdk_BrowseRemoteServices(BTDEVHDL dev_hdl, BTSVCHDL *svc_hdl, BTUINT32 *svc_count); 
BTINT32 Btsdk_RefreshRemoteServiceAttributes(BTSVCHDL svc_hdl, BtSdkRemoteServiceAttrStru *attribute); 
BTINT32 Btsdk_GetRemoteServicesEx(BTDEVHDL dev_hdl, PBtSdkSDPSearchPatternStru psch_ptn, BTUINT32 ptn_num, BTSVCHDL *svc_hdl, BTUINT32 *svc_count); 
BTINT32 Btsdk_GetRemoteServices(BTDEVHDL dev_hdl, BTSVCHDL *svc_hdl, BTUINT32 *svc_count); 
BTINT32 Btsdk_GetRemoteServiceAttributes(BTSVCHDL svc_hdl, BtSdkRemoteServiceAttrStru *attribute); 
BTSDKHANDLE Btsdk_StartEnumRemoteService(BTDEVHDL dev_hdl); 
BTSVCHDL Btsdk_EnumRemoteService(BTSDKHANDLE enum_handle, PBtSdkRemoteServiceAttrStru attribute); 
BTINT32 Btsdk_EndEnumRemoteService(BTSDKHANDLE enum_handle); 
 
/* Connection Management Application Extension */ 
BTINT32 Btsdk_SetRemoteServiceParam(BTSVCHDL svc_hdl, BTUINT32 app_param); 
BTINT32 Btsdk_GetRemoteServiceParam(BTSVCHDL svc_hdl, BTUINT32 *papp_param); 
 
/* Connection Establishment */ 
FUNC_EXPORT BTINT32 Btsdk_Connect(BTSVCHDL svc_hdl, BTUINT32 lParam, BTCONNHDL *conn_hdl); 
FUNC_EXPORT BTINT32 Btsdk_ConnectEx(BTDEVHDL dev_hdl, BTUINT16 service_class, BTUINT32 lParam, BTCONNHDL *conn_hdl); 
typedef void  (Btsdk_Connection_Event_Ind_Func)(BTCONNHDL conn_hdl, BTUINT16 event, BTUINT8 *arg); 
 
/* Connection Database Management */ 
FUNC_EXPORT BTINT32 Btsdk_GetConnectionProperty(BTCONNHDL conn_hdl, PBtSdkConnectionPropertyStru conn_prop); 
FUNC_EXPORT BTSDKHANDLE Btsdk_StartEnumConnection(void); 
FUNC_EXPORT BTCONNHDL Btsdk_EnumConnection(BTSDKHANDLE enum_handle, PBtSdkConnectionPropertyStru conn_prop); 
FUNC_EXPORT BTINT32 Btsdk_EndEnumConnection(BTSDKHANDLE enum_handle); 
 
/* Connection Release */ 
FUNC_EXPORT BTINT32 Btsdk_Disconnect(BTCONNHDL handle); 
 
/* BlueSoleil Extend APIs */ 
BTUINT32 Btsdk_VDIInstallDev(BTINT8 *HardwareID,  BTINT8 *COMName); 
BTUINT32 Btsdk_VDIDelModem( BTINT8 *COMName); 
 
 
/*  
		File Transfer Profile  
*/ 
 
/*Register a function for transfering file status 
	first:		[in]first callback flag  
	last:		[in]last callback flag  
	filename:	[in]file name, only valid when first flag is set. 
	filesize:	[in]total transfer file size, only valid when first flag is set. 
	cursize:	[in]current transfer size 
*/ 
typedef void  (Btsdk_FTP_STATUS_INFO_CB)(BTUINT8 first, BTUINT8 last, BTUINT8* filename, BTUINT32 filesize, BTUINT32 cursize); 
void Btsdk_FTPRegisterStatusCallback4ThirdParty(BTCONNHDL conn_hdl, Btsdk_FTP_STATUS_INFO_CB *func); 
 
 
/* FTP Server */ 
typedef BTBOOL (BTSDK_FTP_UIDealReceiveFile)(PBtSdkFileTransferReqStru pFileInfo); 
void Btsdk_FTPRegisterDealReceiveFileCB4ThirdParty(BTSDK_FTP_UIDealReceiveFile* func); 
 
 
/* FTP Client */ 
typedef void (BTSDK_FTP_UIShowBrowseFile)(BTUINT8* SYS_FIND_DATA); 
BTINT32 Btsdk_FTPBrowseFolder(BTCONNHDL conn_hdl, BTUINT8 *szPath, BTSDK_FTP_UIShowBrowseFile* pShowFunc, BTUINT8 op_type); 
BTINT32 Btsdk_FTPSetRmtDir(BTCONNHDL conn_hdl,BTUINT8 *szDir);	 
BTINT32 Btsdk_FTPGetRmtDir(BTCONNHDL conn_hdl,BTUINT8 *szDir); 
BTINT32 Btsdk_FTPCreateDir(BTCONNHDL conn_hdl,BTINT8 *szDir); 
BTINT32 Btsdk_FTPDeleteDir(BTCONNHDL conn_hdl,BTINT8 *szDir); 
BTINT32 Btsdk_FTPDeleteFile(BTCONNHDL conn_hdl,BTINT8 *szDir); 
BTINT32 Btsdk_FTPCancelTransfer(BTCONNHDL conn_hdl); 
BTINT32 Btsdk_FTPPutDir(BTCONNHDL conn_hdl, BTUINT8 *loc_dir, BTUINT8 *new_dir); 
BTINT32 Btsdk_FTPPutFile(BTCONNHDL conn_hdl, BTUINT8 *loc_file, BTUINT8 *new_file); 
BTINT32 Btsdk_FTPGetDir(BTCONNHDL conn_hdl, BTUINT8 *rem_dir, BTUINT8 *new_dir); 
BTINT32 Btsdk_FTPGetFile(BTCONNHDL conn_hdl, BTUINT8 *rem_file, BTUINT8 *new_file); 
BTBOOL Btsdk_FTPBackDir(BTCONNHDL conn_hdl); 
 
 
/*  
		Object Push Profile  
*/ 
typedef void (Btsdk_OPP_STATUS_INFO_CB)(BTUINT8 first, BTUINT8 last, BTUINT8* filename, BTUINT32 filesize, BTUINT32 cursize); 
void Btsdk_OPPRegisterStatusCallback4ThirdParty(BTCONNHDL conn_hdl, Btsdk_OPP_STATUS_INFO_CB *func); 
 
/* Register a function for transfering file status 
	first:		[in]first callback flag  
	last:		[in]last callback flag  
	filename:	[in]file name, only valid when first flag is setted. 
	filesize:	[in]total transfer file size, only valid when first flag is setted. 
	cursize:	[in]current transfer size 
*/ 
 
/* OPP Server */ 
typedef BTBOOL (BTSDK_OPP_UIDealReceiveFile)(PBtSdkFileTransferReqStru pFileInfo); 
void Btsdk_OPPRegisterDealReceiveFileCB4ThirdParty(BTSDK_OPP_UIDealReceiveFile* func); 
 
/* Register a function for uploading file request from remote device. 
   pFileInfo	[in/out] Specify the information of the file uploaded or to be uploaded. 
				When input pFileInfo->flag is set to BTSDK_ER_CONTINUE, following operation is allowed: 
				(1)If the application wants to save the file using a different name, copy the  
				new file name to pFileInfo->file_name. 
				(2)If the application wants to reject the file uploading request, change pFileInfo->flag 
				to one of OBEX error code except for BTSDK_ER_CONTINUE and BTSDK_ER_SUCCESS. 
				(3)If the application allow to save the file, just keep pFileInfo->flag unchanged. 
 
	return value is ignored. 
*/ 
 
/* OPP Client */ 
BTINT32 Btsdk_OPPCancelTransfer(BTCONNHDL conn_hdl); 
BTINT32 Btsdk_OPPPushObj(BTCONNHDL conn_hdl,BTUINT8 *szPushFilePath); 
BTINT32 Btsdk_OPPPullObj(BTCONNHDL conn_hdl,BTUINT8 *szPullFilePath); 
BTINT32 Btsdk_OPPExchangeObj(BTCONNHDL conn_hdl,BTUINT8 *szPushFilePath,BTUINT8 *szPullFilePath,BTINT32 *npushError, BTINT32 *npullError); 
 
/* Personal Area Networking Profile */ 
typedef void (Btsdk_PAN_Event_Ind_Func)(BTUINT16 event, BTUINT16 len, BTUINT8 *param); 
void Btsdk_PAN_RegIndCbk4ThirdParty(Btsdk_PAN_Event_Ind_Func *pfunc); 
 
 
/*  
		Audio/Video Remote Control Profile  
*/ 
/*AVRCP pass through cmd process callback function type*/ 
typedef void (Btsdk_AVRCP_PassThr_Cmd_Func)(BTUINT8 op_id, BTUINT8 state_flag); 
/* AVRCP Target (TG) */ 
void Btsdk_AVRCP_RegPassThrCmdCbk4ThirdParty(Btsdk_AVRCP_PassThr_Cmd_Func *pfunc); 
/* AVRCP event processing callback function type */ 
typedef void (Btsdk_AVRCP_Event_Ind_Func)(BTUINT16 event, BTUINT8 *param); 
void Btsdk_AVRCP_RegIndCbk4ThirdParty(Btsdk_AVRCP_Event_Ind_Func * pfunc); 
 
 
/*  
		Serial Port Profile  
*/ 
BTINT32 Btsdk_InitCommObj(BTUINT8 com_idx, BTUINT16 svc_class); 
BTINT32 Btsdk_DeinitCommObj(BTUINT8 com_idx); 
FUNC_EXPORT BTINT16 Btsdk_GetClientPort(BTCONNHDL conn_hdl); 
BTUINT8 Btsdk_GetAvailableExtSPPCOMPort(); 
BTUINT32 Btsdk_SearchAppExtSPPService(BTDEVHDL dev_hdl, PBtSdkAppExtSPPAttrStru psvc); 
BTUINT32 Btsdk_ConnectAppExtSPPService(BTDEVHDL dev_hdl, PBtSdkAppExtSPPAttrStru psvc, BTCONNHDL *conn_hdl); 
 
BTUINT32 Btsdk_CommNumToSerialNum(int comportNum); 
void Btsdk_PlugOutVComm(UINT serialNum, ULONG flag); 
BOOL Btsdk_PlugInVComm(UINT serialNum, ULONG *comportNumber, UINT usageType, ULONG flag, DWORD dwTimeout); 
BTUINT32 Btsdk_GetASerialNum(); 
 
 
#endif