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