#ifndef _USB_HID_H
#define _USB_HID_H

typedef struct _udh_t {
    epcb_t *int_in;
    epcb_t *int_out;
    bool    valid;
} udh_t;


void usb_hid_init(void);
void usb_hid_deinit(void);
bool usb_hid_buffer_push(uint8_t *buf, uint32_t size);
bool usb_hid_buffer_push_check(void);
void udh_init(void);
void usb_int_ep_reset(void);
void ude_hid_setvalid(bool valid);
void usb_hid_receive_callback(uint8_t *buf, uint32_t size);
void usb_hid_send_prepare(uint8_t *buf, uint32_t *size);
void usb_hid_send_kick(void);
void usb_hid_suspend_callback(bool suspend);
void usb_sof_hid_isr(void);
void usb_hid_process(void);

#endif // _USB_HID_H
