Home | History | Annotate | Download | only in include
      1 /******************************************************************************
      2  *
      3  *  Copyright (C) 2002-2012 Broadcom Corporation
      4  *
      5  *  Licensed under the Apache License, Version 2.0 (the "License");
      6  *  you may not use this file except in compliance with the License.
      7  *  You may obtain a copy of the License at:
      8  *
      9  *  http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  *
     17  ******************************************************************************/
     18 #ifndef HIDH_API_H
     19 #define HIDH_API_H
     20 
     21 #include "hiddefs.h"
     22 #include "sdp_api.h"
     23 
     24 /*****************************************************************************
     25 **  Constants
     26 *****************************************************************************/
     27 
     28 enum {
     29     HID_SDP_NO_SERV_UUID = (SDP_ILLEGAL_PARAMETER+1),
     30     HID_SDP_MANDATORY_MISSING
     31 };
     32 
     33 /* Attributes mask values to be used in HID_HostAddDev API */
     34 #define HID_VIRTUAL_CABLE        0x0001
     35 #define HID_NORMALLY_CONNECTABLE 0x0002
     36 #define HID_RECONN_INIT          0x0004
     37 #define HID_SDP_DISABLE          0x0008
     38 #define HID_BATTERY_POWER        0x0010
     39 #define HID_REMOTE_WAKE          0x0020
     40 #define HID_SUP_TOUT_AVLBL       0x0040
     41 #define HID_SSR_MAX_LATENCY      0x0080
     42 #define HID_SSR_MIN_TOUT         0x0100
     43 
     44 #define HID_SEC_REQUIRED         0x8000
     45 
     46 
     47 /*****************************************************************************
     48 **  Type Definitions
     49 *****************************************************************************/
     50 
     51 typedef void (tHID_HOST_SDP_CALLBACK) (UINT16 result, UINT16 attr_mask,
     52                                        tHID_DEV_SDP_INFO *sdp_rec );
     53 
     54 /* HID-HOST returns the events in the following table to the application via tHID_HOST_DEV_CALLBACK
     55 HID_HDEV_EVT_OPEN   Connected to device with Interrupt and Control Channels in OPEN state.
     56                                                         Data = NA
     57 HID_HDEV_EVT_CLOSE  Connection with device is closed.   Data=reason code.
     58 HID_HDEV_EVT_RETRYING   Lost connection is being re-connected.
     59                                                         Data=Retrial number
     60 HID_HDEV_EVT_IN_REPORT  Device sent an input report     Data=Report Type pdata= pointer to BT_HDR
     61                                                         (GKI buffer having report data.)
     62 HID_HDEV_EVT_HANDSHAKE  Device sent SET_REPORT          Data=Result-code pdata=NA.
     63 HID_HDEV_EVT_VC_UNPLUG  Device sent Virtual Unplug      Data=NA. pdata=NA.
     64 */
     65 
     66 enum
     67 {
     68     HID_HDEV_EVT_OPEN,
     69     HID_HDEV_EVT_CLOSE,
     70     HID_HDEV_EVT_RETRYING,
     71     HID_HDEV_EVT_INTR_DATA,
     72     HID_HDEV_EVT_INTR_DATC,
     73     HID_HDEV_EVT_CTRL_DATA,
     74     HID_HDEV_EVT_CTRL_DATC,
     75     HID_HDEV_EVT_HANDSHAKE,
     76     HID_HDEV_EVT_VC_UNPLUG
     77 };
     78 typedef void (tHID_HOST_DEV_CALLBACK) (UINT8 dev_handle,
     79                                        UINT8 event, /* Event from HID-DEVICE. */
     80                                        UINT32 data, /* Integer data corresponding to the event.*/
     81                                        BT_HDR *p_buf ); /* Pointer data corresponding to the event. */
     82 
     83 
     84 /*****************************************************************************
     85 **  External Function Declarations
     86 *****************************************************************************/
     87 #ifdef __cplusplus
     88 extern "C"
     89 {
     90 #endif
     91 
     92 /*******************************************************************************
     93 **
     94 ** Function         HID_HostGetSDPRecord
     95 **
     96 ** Description      This function reads the device SDP record.
     97 **
     98 ** Returns          tHID_STATUS
     99 **
    100 *******************************************************************************/
    101 HID_API extern tHID_STATUS HID_HostGetSDPRecord (BD_ADDR addr,
    102                                                  tSDP_DISCOVERY_DB *p_db,
    103                                                  UINT32 db_len,
    104                                                  tHID_HOST_SDP_CALLBACK *sdp_cback );
    105 
    106 /*******************************************************************************
    107 **
    108 ** Function         HID_HostRegister
    109 **
    110 ** Description      This function registers HID-Host with lower layers.
    111 **
    112 ** Returns          tHID_STATUS
    113 **
    114 *******************************************************************************/
    115 HID_API extern tHID_STATUS HID_HostRegister (tHID_HOST_DEV_CALLBACK *dev_cback);
    116 
    117 /*******************************************************************************
    118 **
    119 ** Function         HID_HostDeregister
    120 **
    121 ** Description      This function is called when the host is about power down.
    122 **
    123 ** Returns          tHID_STATUS
    124 **
    125 *******************************************************************************/
    126 HID_API extern tHID_STATUS HID_HostDeregister(void);
    127 
    128 /*******************************************************************************
    129 **
    130 ** Function         HID_HostAddDev
    131 **
    132 ** Description      This is called so HID-host may manage this device.
    133 **
    134 ** Returns          tHID_STATUS
    135 **
    136 *******************************************************************************/
    137 HID_API extern tHID_STATUS HID_HostAddDev (BD_ADDR addr, UINT16 attr_mask,
    138                                            UINT8 *handle );
    139 
    140 /*******************************************************************************
    141 **
    142 ** Function         HID_HostRemoveDev
    143 **
    144 ** Description      This removes the device from list devices that host has to manage.
    145 **
    146 ** Returns          tHID_STATUS
    147 **
    148 *******************************************************************************/
    149 HID_API extern tHID_STATUS HID_HostRemoveDev (UINT8 dev_handle );
    150 
    151 /*******************************************************************************
    152 **
    153 ** Function         HID_HostOpenDev
    154 **
    155 ** Description      This function is called when the user wants to initiate a
    156 **                  connection attempt to a device.
    157 **
    158 ** Returns          void
    159 **
    160 *******************************************************************************/
    161 HID_API extern tHID_STATUS HID_HostOpenDev (UINT8 dev_handle );
    162 
    163 /*******************************************************************************
    164 **
    165 ** Function         HID_HostWriteDev
    166 **
    167 ** Description      This function is called when the host has a report to send.
    168 **
    169 ** Returns          void
    170 **
    171 *******************************************************************************/
    172 HID_API extern tHID_STATUS HID_HostWriteDev(UINT8 dev_handle, UINT8 t_type,
    173                                             UINT8 param, UINT16 data,
    174                                             UINT8 report_id, BT_HDR *pbuf);
    175 
    176 /*******************************************************************************
    177 **
    178 ** Function         HID_HostCloseDev
    179 **
    180 ** Description      This function disconnects the device.
    181 **
    182 ** Returns          void
    183 **
    184 *******************************************************************************/
    185 HID_API extern tHID_STATUS HID_HostCloseDev(UINT8 dev_handle );
    186 
    187 /*******************************************************************************
    188 ** Function         HID_HostInit
    189 **
    190 ** Description      This function initializes the control block and trace variable
    191 **
    192 ** Returns          void
    193 *******************************************************************************/
    194 HID_API extern void HID_HostInit(void);
    195 
    196 /*******************************************************************************
    197 ** Function        HID_HostSetSecurityLevel
    198 **
    199 ** Description     This function sets the security level for the devices which
    200 **                 are marked by application as requiring security
    201 **
    202 ** Returns         tHID_STATUS
    203 *******************************************************************************/
    204 HID_API extern tHID_STATUS HID_HostSetSecurityLevel( char serv_name[], UINT8 sec_lvl );
    205 
    206 /*******************************************************************************
    207 **
    208 ** Function         HID_HostSetTraceLevel
    209 **
    210 ** Description      This function sets the trace level for HID Host. If called with
    211 **                  a value of 0xFF, it simply reads the current trace level.
    212 **
    213 ** Returns          the new (current) trace level
    214 **
    215 *******************************************************************************/
    216 HID_API extern UINT8 HID_HostSetTraceLevel (UINT8 new_level);
    217 
    218 #ifdef __cplusplus
    219 }
    220 #endif
    221 
    222 #endif  /* HIDH_API_H */
    223