Select one of the symbols to view example projects that use it.
 
Outline
#include "esp_hidd.h"
#include "esp_private/esp_hidd_private.h"
#include "esp_event_base.h"
#include "ble_hidd.h"
#include "bt_hidd.h"
ESP_HIDD_EVENTS
esp_hidd_dev_init(const esp_hid_device_config_t *, esp_hid_transport_t, esp_event_handler_t, esp_hidd_dev_t **)
esp_hidd_dev_deinit(esp_hidd_dev_t *)
esp_hidd_dev_transport_get(esp_hidd_dev_t *)
esp_hidd_dev_connected(esp_hidd_dev_t *)
esp_hidd_dev_battery_set(esp_hidd_dev_t *, uint8_t)
esp_hidd_dev_input_set(esp_hidd_dev_t *, size_t, size_t, uint8_t *, size_t)
esp_hidd_dev_feature_set(esp_hidd_dev_t *, size_t, size_t, uint8_t *, size_t)
esp_hidd_dev_event_handler_register(esp_hidd_dev_t *, esp_event_handler_t, esp_hidd_event_t)
esp_hidd_dev_event_handler_unregister(esp_hidd_dev_t *, esp_event_handler_t, esp_hidd_event_t)
esp_hidd_process_event_data_handler(void *, esp_event_base_t, int32_t, void *)
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/esp_hid/src/esp_hidd.c
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include "esp_hidd.h" #include "esp_private/esp_hidd_private.h" #include "esp_event_base.h" #if CONFIG_GATTS_ENABLE || CONFIG_BT_NIMBLE_ENABLED #include "ble_hidd.h" #endif /* CONFIG_GATTS_ENABLE */ #if CONFIG_BT_HID_DEVICE_ENABLED #include "bt_hidd.h" #endif /* CONFIG_BT_HID_DEVICE_ENABLED */ ESP_EVENT_DEFINE_BASE(ESP_HIDD_EVENTS); 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_out) { esp_err_t ret = ESP_OK; esp_hidd_dev_t *dev = (esp_hidd_dev_t *)calloc(1, sizeof(esp_hidd_dev_t)); if (dev == NULL) { return ESP_FAIL; }{...} switch (transport) { #if CONFIG_GATTS_ENABLE || CONFIG_BT_NIMBLE_ENABLED case ESP_HID_TRANSPORT_BLE: ret = esp_ble_hidd_dev_init(dev, config, callback); break;/* ... */ #endif /* CONFIG_GATTS_ENABLE */ #if CONFIG_BT_HID_DEVICE_ENABLED case ESP_HID_TRANSPORT_BT: ret = esp_bt_hidd_dev_init(dev, config, callback); break;/* ... */ #endif /* CONFIG_BT_HID_DEVICE_ENABLED */ default: ret = ESP_FAIL; break;... }{...} if (ret != ESP_OK) { free(dev); return ret; }{...} dev->transport = transport; *dev_out = dev; return ret; }{ ... } esp_err_t esp_hidd_dev_deinit(esp_hidd_dev_t *dev) { if (dev == NULL) { return ESP_FAIL; }{...} esp_err_t ret = dev->deinit(dev->dev); if (ret != ESP_OK) { return ret; }{...} free(dev); return ret; }{ ... } esp_hid_transport_t esp_hidd_dev_transport_get(esp_hidd_dev_t *dev) { if (dev == NULL) { return ESP_HID_TRANSPORT_MAX; }{...} return dev->transport; }{ ... } bool esp_hidd_dev_connected(esp_hidd_dev_t *dev) { if (dev == NULL) { return false; }{...} return dev->connected(dev->dev); }{ ... } esp_err_t esp_hidd_dev_battery_set(esp_hidd_dev_t *dev, uint8_t level) { if (dev == NULL) { return ESP_FAIL; }{...} return dev->battery_set(dev->dev, 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) { if (dev == NULL) { return ESP_FAIL; }{...} return dev->input_set(dev->dev, map_index, report_id, data, 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) { if (dev == NULL) { return ESP_FAIL; }{...} return dev->feature_set(dev->dev, map_index, report_id, data, 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) { if (dev == NULL) { return ESP_FAIL; }{...} return dev->event_handler_register(dev->dev, callback, 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) { if (dev == NULL) { return ESP_FAIL; }{...} return dev->event_handler_unregister(dev->dev, callback, event); }{ ... } /** * The deep copy data append the end of the esp_hidd_event_data_t, move the data pointer to the correct address. This is * a workaround way, it's better to use flexiable array in the interface. *//* ... */ void esp_hidd_process_event_data_handler(void *event_handler_arg, esp_event_base_t event_base, int32_t event_id, void *event_data) { esp_hidd_event_t event = (esp_hidd_event_t)event_id; esp_hidd_event_data_t *param = (esp_hidd_event_data_t *)event_data; switch (event) { case ESP_HIDD_OUTPUT_EVENT: if (param->output.length && param->output.data) { param->output.data = (uint8_t *)param + sizeof(esp_hidd_event_data_t); }{...} break;... case ESP_HIDD_FEATURE_EVENT: if (param->feature.length && param->feature.data) { param->feature.data = (uint8_t *)param + sizeof(esp_hidd_event_data_t); }{...} break;... default: break;... }{...} }{ ... }
Details
Show:
from
Types: Columns:
This file uses the notable symbols shown below. Click anywhere in the file to view more details.