#ifndef USBD_DINPUT_H
#define USBD_DINPUT_H

#ifdef __cplusplus
extern "C" {
#endif

#include "usbd_core.h"

#define DINPUT_GAMEPAD_EPIN_ADDR       0x81U
#define DINPUT_SETUP_EPIN_ADDR         0x82U
#define DINPUT_SETUP_EPOUT_ADDR        0x02U
#define DINPUT_RAW_EPIN_ADDR           0x83U
#define DINPUT_EP_SIZE                 64U
#define DINPUT_REPORT_SIZE             9U
#define USB_DINPUT_CONFIG_DESC_SIZ     91U

extern USBD_ClassTypeDef USBD_DINPUT;

uint8_t USBD_DINPUT_SendReport(USBD_HandleTypeDef *pdev,
                               uint8_t *report,
                               uint16_t len);

#ifdef __cplusplus
}
#endif

#endif /* USBD_DINPUT_H */
