1 /* 2 * Copyright (c) 2022, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef USBD_HID_H 7 #define USBD_HID_H 8 9 #include "usb_hid.h" 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /* Init hid interface driver */ 16 struct usbd_interface *usbd_hid_init_intf(struct usbd_interface *intf, const uint8_t *desc, uint32_t desc_len); 17 18 /* Register desc api */ 19 void usbd_hid_descriptor_register(uint8_t intf_num, const uint8_t *desc); 20 void usbd_hid_report_descriptor_register(uint8_t intf_num, const uint8_t *desc, uint32_t desc_len); 21 22 /* Setup request command callback api */ 23 void usbd_hid_get_report(uint8_t intf, uint8_t report_id, uint8_t report_type, uint8_t **data, uint32_t *len); 24 uint8_t usbd_hid_get_idle(uint8_t intf, uint8_t report_id); 25 uint8_t usbd_hid_get_protocol(uint8_t intf); 26 void usbd_hid_set_report(uint8_t intf, uint8_t report_id, uint8_t report_type, uint8_t *report, uint32_t report_len); 27 void usbd_hid_set_idle(uint8_t intf, uint8_t report_id, uint8_t duration); 28 void usbd_hid_set_protocol(uint8_t intf, uint8_t protocol); 29 30 #ifdef __cplusplus 31 } 32 #endif 33 34 #endif /* USBD_HID_H */ 35