tinyusb
hid_host.h
Go to the documentation of this file.
1 /**************************************************************************/
37 /**************************************************************************/
38 
42 #ifndef _TUSB_HID_HOST_H_
43 #define _TUSB_HID_HOST_H_
44 
45 #include "common/common.h"
46 #include "host/usbh.h"
47 #include "hid.h"
48 
49 #ifdef __cplusplus
50  extern "C" {
51 #endif
52 
53 //--------------------------------------------------------------------+
54 // KEYBOARD Application API
55 //--------------------------------------------------------------------+
63 extern uint8_t const hid_keycode_to_ascii_tbl[2][128]; // TODO used weak attr if build failed without KEYBOARD enabled
64 
71 
80 
91 tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, void * p_report) /*ATTR_WARN_UNUSED_RESULT*/;
92 
93 //------------- Application Callback -------------//
103 void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event);
104 
109 void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr);
110 
115 void tusbh_hid_keyboard_unmounted_cb(uint8_t dev_addr);
116  // Keyboard_Host // ClassDriver_HID_Keyboard
119 
120 //--------------------------------------------------------------------+
121 // MOUSE Application API
122 //--------------------------------------------------------------------+
136 
145 
156 tusb_error_t tusbh_hid_mouse_get_report(uint8_t dev_addr, void* p_report) /*ATTR_WARN_UNUSED_RESULT*/;
157 
158 //------------- Application Callback -------------//
168 void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event);
169 
174 void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr);
175 
180 void tusbh_hid_mouse_unmounted_cb(uint8_t dev_addr);
181  // Mouse_Host // ClassDriver_HID_Mouse
184 
185 //--------------------------------------------------------------------+
186 // GENERIC Application API
187 //--------------------------------------------------------------------+
195 bool tusbh_hid_generic_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT;
196 tusb_error_t tusbh_hid_generic_get_report(uint8_t dev_addr, void* p_report, bool int_on_complete) ATTR_WARN_UNUSED_RESULT;
197 tusb_error_t tusbh_hid_generic_set_report(uint8_t dev_addr, void* p_report, bool int_on_complete) ATTR_WARN_UNUSED_RESULT;
198 tusb_interface_status_t tusbh_hid_generic_get_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
199 tusb_interface_status_t tusbh_hid_generic_set_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT;
200 
201 //------------- Application Callback -------------//
202 void tusbh_hid_generic_isr(uint8_t dev_addr, tusb_event_t event);
203  // Generic_Host // ClassDriver_HID_Generic
206 
207 //--------------------------------------------------------------------+
208 // USBH-CLASS DRIVER API
209 //--------------------------------------------------------------------+
210 #ifdef _TINY_USB_SOURCE_FILE_
211 
212 typedef struct {
213  pipe_handle_t pipe_hdl;
214  uint16_t report_size;
215  uint8_t interface_number;
216 }hidh_interface_info_t;
217 
218 void hidh_init(void);
219 tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT;
220 void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event, uint32_t xferred_bytes);
221 void hidh_close(uint8_t dev_addr);
222 
223 #endif
224 
225 #ifdef __cplusplus
226 }
227 #endif
228 
229 #endif /* _TUSB_HID_HOST_H_ */
230  // ClassDriver_HID
USB Standard Interface Descriptor (section 9.6.1 table 9-12)
Definition: std_descriptors.h:90
void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event)
Callback function that is invoked when an transferring event occurred.
#define ATTR_WARN_UNUSED_RESULT
The warn_unused_result attribute causes a warning to be emitted if a caller of the function with this...
Definition: compiler_gcc.h:118
void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr)
Callback function that will be invoked when a device with Mouse interface is mounted.
Definition: hcd.h:55
tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, void *p_report)
Perform a get report from Keyboard interface.
void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr)
Callback function that will be invoked when a device with Keyboard interface is mounted.
#define ATTR_PURE
Many functions have no effects except the return value and their return value depends only on the par...
Definition: compiler_gcc.h:96
void tusbh_hid_keyboard_unmounted_cb(uint8_t dev_addr)
Callback function that will be invoked when a device with Keyboard interface is unmounted.
enum tusb_interface_status_ tusb_interface_status_t
bool tusbh_hid_keyboard_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT
Check if device supports Keyboard interface or not.
bool tusbh_hid_mouse_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT
Check if device supports Mouse interface or not.
bool tusbh_hid_mouse_is_busy(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT
Check if the interface is currently busy or not.
tusb_error_t
Error Code returned.
Definition: tusb_errors.h:100
tusb_error_t tusbh_hid_mouse_get_report(uint8_t dev_addr, void *p_report)
Perform a get report from Mouse interface.
bool tusbh_hid_keyboard_is_busy(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT
Check if the interface is currently busy or not.
void tusbh_hid_mouse_unmounted_cb(uint8_t dev_addr)
Callback function that will be invoked when a device with Mouse interface is unmounted.
void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event)
Callback function that is invoked when an transferring event occurred.