15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Copyright (C) 2005-2012 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  This is the interface file for hid host call-out functions.
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef BTA_HH_CO_H
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define BTA_HH_CO_H
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bta_hh_api.h"
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
29433fe016392c7ae003033530f1b3994f2ddad313Chaojing Suntypedef struct
30433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun{
31433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun    UINT16              rpt_uuid;
32433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun    UINT8               rpt_id;
33433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun    tBTA_HH_RPT_TYPE    rpt_type;
34433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun    UINT8               inst_id;
35433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun    UINT8               prop;
36433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun}tBTA_HH_RPT_CACHE_ENTRY;
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_hh_co_data
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by HH when data is received
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  in interupt channel.
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_hh_co_data(UINT8 dev_handle, UINT8 *p_rpt, UINT16 len,
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   tBTA_HH_PROTO_MODE  mode, UINT8 sub_class,
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   UINT8 ctry_code, BD_ADDR peer_addr, UINT8 app_id);
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_hh_co_open
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by HH when connection is
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  opened, and application may do some device specific
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  initialization.
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_hh_co_open(UINT8 dev_handle, UINT8 sub_class,
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                   UINT16 attr_mask, UINT8 app_id);
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*******************************************************************************
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Function         bta_hh_co_close
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Description      This callout function is executed by HH when connection is
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**                  closed, and device specific finalizatio nmay be needed.
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Returns          void.
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************************************************/
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectBTA_API extern void bta_hh_co_close(UINT8 dev_handle, UINT8 app_id);
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
79433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun#if (BLE_INCLUDED == TRUE && BTA_HH_LE_INCLUDED == TRUE)
80433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun/*******************************************************************************
81433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
82433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Function         bta_hh_le_co_rpt_info
83433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
84433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Description      This callout function is to convey the report information on
85433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  a HOGP device to the application. Application can save this
86433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  information in NV if device is bonded and load it back when
87433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  stack reboot.
88433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
89433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Parameters       remote_bda  - remote device address
90433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  p_entry     - report entry pointer
91433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  app_id      - application id
92433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
93433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Returns          void.
94433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
95433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun*******************************************************************************/
96433fe016392c7ae003033530f1b3994f2ddad313Chaojing SunBTA_API extern void bta_hh_le_co_rpt_info(BD_ADDR remote_bda,
97433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun                                          tBTA_HH_RPT_CACHE_ENTRY *p_entry,
98433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun                                          UINT8 app_id);
99433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun
100433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun/*******************************************************************************
101433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
102433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Function         bta_hh_le_co_cache_load
103433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
104433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Description      This callout function is to request the application to load the
105433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  cached HOGP report if there is any. When cache reading is completed,
106433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  bta_hh_le_ci_cache_load() is called by the application.
107433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
108433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Parameters       remote_bda  - remote device address
109433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  p_num_rpt: number of cached report
110433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**                  app_id      - application id
111433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
112433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Returns          the acched report array
113433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
114433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun*******************************************************************************/
115433fe016392c7ae003033530f1b3994f2ddad313Chaojing SunBTA_API extern tBTA_HH_RPT_CACHE_ENTRY *bta_hh_le_co_cache_load (BD_ADDR remote_bda,
116433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun                                                                 UINT8 *p_num_rpt,
117433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun                                                                 UINT8 app_id);
118433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun
119433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun/*******************************************************************************
120433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
121433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Function         bta_hh_le_co_reset_rpt_cache
122433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
123433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Description      This callout function is to reset the HOGP device cache.
124433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
125433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Parameters       remote_bda  - remote device address
126433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
127433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun** Returns          none
128433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun**
129433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun*******************************************************************************/
130433fe016392c7ae003033530f1b3994f2ddad313Chaojing SunBTA_API extern void bta_hh_le_co_reset_rpt_cache (BD_ADDR remote_bda, UINT8 app_id);
131433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun
132433fe016392c7ae003033530f1b3994f2ddad313Chaojing Sun#endif /* #if (BLE_INCLUDED == TRUE && BTA_HH_LE_INCLUDED == TRUE) */
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTA_HH_CO_H */
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
135