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