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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
49
50
51
52
55
56
60
63
64
68
71
72
75
79
80
83
88
89
92
100
101
104
105
106
107
108
109
110
111
112
113
114
115
118
123
124
127
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
153
154
155
161
162
163
169
170
171
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
#pragma once
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_event.h"
#include "esp_hid_common.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "esp_hidd_transport.h"
ESP_EVENT_DECLARE_BASE(ESP_HIDD_EVENTS);
/* ... */
typedef enum {
ESP_HIDD_ANY_EVENT = ESP_EVENT_ANY_ID,
ESP_HIDD_START_EVENT = 0,
ESP_HIDD_CONNECT_EVENT,
ESP_HIDD_PROTOCOL_MODE_EVENT,
ESP_HIDD_CONTROL_EVENT,
ESP_HIDD_OUTPUT_EVENT,
ESP_HIDD_FEATURE_EVENT,
ESP_HIDD_DISCONNECT_EVENT,
ESP_HIDD_STOP_EVENT,
ESP_HIDD_MAX_EVENT,
}{ ... } esp_hidd_event_t;
/* ... */
struct esp_hidd_dev_s;
typedef struct esp_hidd_dev_s esp_hidd_dev_t;
/* ... */
typedef union {
/* ... */
struct {
esp_err_t status;
}{ ... } start;
/* ... */
struct {
esp_err_t status;
}{ ... } stop;
/* ... */
struct {
esp_hidd_dev_t *dev;
esp_err_t status;
}{ ... } connect;
/* ... */
struct {
esp_hidd_dev_t *dev;
int reason;
esp_err_t status;
}{ ... } disconnect;
/* ... */
struct {
esp_hidd_dev_t *dev;
esp_hid_usage_t usage;
uint16_t report_id;
uint16_t length;
uint8_t *data;
uint8_t map_index;
}{ ... } output;
/* ... */
struct {
esp_hidd_dev_t *dev;
esp_hid_usage_t usage;
uint16_t report_id;
uint16_t length;
uint8_t *data;
uint8_t map_index;
uint8_t trans_type;
uint8_t report_type;
}{ ... } feature;
/* ... */
struct {
esp_hidd_dev_t *dev;
uint8_t protocol_mode;
uint8_t map_index;
}{ ... } protocol_mode;
/* ... */
struct {
esp_hidd_dev_t *dev;
uint8_t control;
uint8_t map_index;
}{ ... } control;
}{ ... } esp_hidd_event_data_t;
/* ... */
esp_err_t esp_hidd_dev_init(const esp_hid_device_config_t *config, esp_hid_transport_t transport, esp_event_handler_t callback, esp_hidd_dev_t **dev);
/* ... */
esp_err_t esp_hidd_dev_deinit(esp_hidd_dev_t *dev);
/* ... */
esp_hid_transport_t esp_hidd_dev_transport_get(esp_hidd_dev_t *dev);
/* ... */
bool esp_hidd_dev_connected(esp_hidd_dev_t *dev);
/* ... */
esp_err_t esp_hidd_dev_battery_set(esp_hidd_dev_t *dev, uint8_t level);
/* ... */
esp_err_t esp_hidd_dev_input_set(esp_hidd_dev_t *dev, size_t map_index, size_t report_id, uint8_t *data, size_t length);
/* ... */
esp_err_t esp_hidd_dev_feature_set(esp_hidd_dev_t *dev, size_t map_index, size_t report_id, uint8_t *data, size_t length);
/* ... */
esp_err_t esp_hidd_dev_event_handler_register(esp_hidd_dev_t *dev, esp_event_handler_t callback, esp_hidd_event_t event);
/* ... */
esp_err_t esp_hidd_dev_event_handler_unregister(esp_hidd_dev_t *dev, esp_event_handler_t callback, esp_hidd_event_t event);
#ifdef __cplusplus
}{...}
#endif