aboutsummaryrefslogtreecommitdiff
path: root/bta/include/bta_hh_co.h
blob: 44e5a9f6847c63c551f5c9f9da13ce396a83440f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/******************************************************************************
 *
 *  Copyright 2005-2012 Broadcom Corporation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 ******************************************************************************/

/******************************************************************************
 *
 *  This is the interface file for hid host call-out functions.
 *
 ******************************************************************************/
#ifndef BTA_HH_CO_H
#define BTA_HH_CO_H

#include "bta_hh_api.h"

typedef struct {
  uint16_t rpt_uuid;
  uint8_t rpt_id;
  tBTA_HH_RPT_TYPE rpt_type;
  uint8_t srvc_inst_id;
  uint8_t char_inst_id;
} tBTA_HH_RPT_CACHE_ENTRY;

/*******************************************************************************
 *
 * Function         bta_hh_co_data
 *
 * Description      This callout function is executed by HH when data is
 *                  received
 *                  in interupt channel.
 *
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_co_data(uint8_t dev_handle, uint8_t* p_rpt, uint16_t len,
                           tBTA_HH_PROTO_MODE mode, uint8_t sub_class,
                           uint8_t ctry_code, const RawAddress& peer_addr,
                           uint8_t app_id);

/*******************************************************************************
 *
 * Function         bta_hh_co_open
 *
 * Description      This callout function is executed by HH when connection is
 *                  opened, and application may do some device specific
 *                  initialization.
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_co_open(uint8_t dev_handle, uint8_t sub_class,
                           uint16_t attr_mask, uint8_t app_id);

/*******************************************************************************
 *
 * Function         bta_hh_co_close
 *
 * Description      This callout function is executed by HH when connection is
 *                  closed, and device specific finalizatio nmay be needed.
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_co_close(uint8_t dev_handle, uint8_t app_id);

/*******************************************************************************
 *
 * Function         bta_hh_co_set_rpt_rsp
 *
 * Description      This callout function is executed by HH when Set Report
 *                  Response is received on Control Channel.
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_co_set_rpt_rsp(uint8_t dev_handle, uint8_t status);

/*******************************************************************************
 *
 * Function         bta_hh_co_get_rpt_rsp
 *
 * Description      This callout function is executed by HH when Get Report
 *                  Response is received on Control Channel.
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_co_get_rpt_rsp(uint8_t dev_handle, uint8_t status,
                                  uint8_t* p_rpt, uint16_t len);

#if (BTA_HH_LE_INCLUDED == TRUE)
/*******************************************************************************
 *
 * Function         bta_hh_le_co_rpt_info
 *
 * Description      This callout function is to convey the report information on
 *                  a HOGP device to the application. Application can save this
 *                  information in NV if device is bonded and load it back when
 *                  stack reboot.
 *
 * Parameters       remote_bda  - remote device address
 *                  p_entry     - report entry pointer
 *                  app_id      - application id
 *
 * Returns          void.
 *
 ******************************************************************************/
extern void bta_hh_le_co_rpt_info(const RawAddress& remote_bda,
                                  tBTA_HH_RPT_CACHE_ENTRY* p_entry,
                                  uint8_t app_id);

/*******************************************************************************
 *
 * Function         bta_hh_le_co_cache_load
 *
 * Description      This callout function is to request the application to load
 *                  the cached HOGP report if there is any. When cache reading
 *                  is completed, bta_hh_le_ci_cache_load() is called by the
 *                  application.
 *
 * Parameters       remote_bda  - remote device address
 *                  p_num_rpt: number of cached report
 *                  app_id      - application id
 *
 * Returns          the acched report array
 *
 ******************************************************************************/
extern tBTA_HH_RPT_CACHE_ENTRY* bta_hh_le_co_cache_load(
    const RawAddress& remote_bda, uint8_t* p_num_rpt, uint8_t app_id);

/*******************************************************************************
 *
 * Function         bta_hh_le_co_reset_rpt_cache
 *
 * Description      This callout function is to reset the HOGP device cache.
 *
 * Parameters       remote_bda  - remote device address
 *
 * Returns          none
 *
 ******************************************************************************/
extern void bta_hh_le_co_reset_rpt_cache(const RawAddress& remote_bda,
                                         uint8_t app_id);

#endif /* #if (BTA_HH_LE_INCLUDED == TRUE) */

#endif /* BTA_HH_CO_H */